繁体   English   中英

如何获取 cv::Mat.data 的指针?

[英]How to get pointer of cv::Mat.data?

我读了一张图片。 然后,我想访问图像的第 39 个元素。

cv::Mat img = cv::imread( "lena.png",cv::IMREAD_GRAYSCALE);
float * ptr = (float*)refImage.data;

printf(" %d \n", refImage.data[39]);
printf(" %f \n", *(ptr + 39));

Output如下图:

110 
274415818481933370785792.000000 

我读过我们可以使用浮点指针访问。 你能告诉我哪里出了问题吗?

我发现它并不总是浮动指针:

根据矩阵类型,指针会有不同的模板。

对于 CV_8UC1:uchar* ptr = image.ptr(r);
对于 CV_8UC3: cv::Vec3b* ptr = image.ptr<cv::Vec3b>(r);
对于 CV_32FC1:float* ptr = image.ptr(r);
对于 CV_32FC3: cv::Vec3f* ptr = image.ptr<cv::Vec3f>(r);

你可以阅读更多。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM