如何使用图像数据的指针将数据传递到Mat

时间:2013-08-13 01:40:36

标签: opencv sift orb

在我的代码中,我不想从图像的路径中读取数据,例如

    cv::Mat img_1 = imread("F:\1.tif");

相反,我想从指针读取数据:

    float* srcImage;//pointer to image data
    cv::Mat img_1(height, width, CV_32FC1, srcImage);

然而,我发现,通过这种方式,当我在以下ORB函数中使用img_1时,它没有工作

    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 个答案:

答案 0 :(得分:1)

orb想要一个8位灰度图像作为输入,而不是CV_32FC1