Как передать данные в Mat, используя указатель данных изображения
В моем коде я не хочу читать данные из маршрутов изображений, таких как
cv::Mat img_1 = imread("F:\1.tif");
Вместо этого я хочу прочитать данные из указателя:
float* srcImage;//pointer to image data
cv::Mat img_1(height, width, CV_32FC1, srcImage);
Тем не менее, я обнаружил, что, таким образом, когда я использовал img_1 в следующей функции ORB, он не работал
cv::ORB orb;
vector<cv::KeyPoint> keyPoints_1;
cv::Mat descriptors_1;
orb(img_1, cv::Mat(), keyPoints_1, descriptors_1);
Как я могу передать данные в Mat от указателя? Есть ли разница между функцией imread() и передачей данных из указателя? Или есть специальный запрос в функции cv::ORB?
Спасибо большое! Я не знаком с OpenCV, я просто начинаю использовать его в течение нескольких недель, мне просто нужно решить эту проблему, а остальная часть моего кода зависит от результатов этой части.
1 ответ
Решение
orb хочет 8-битное изображение в градациях серого в качестве входных данных, а не CV_32FC1