簡體   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