[英]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.