相关疑难解决方法(0)

OpenCV C++:如何通过uchar数据指针访问像素值CV_32F

简而言之,我想知道是否可以通过Mat成员"uchar*data"直接访问CV_32F Mat的像素值.

如果Mat是CV_8U,我可以毫无问题地做到这一点,例如:

// a matrix 5 columns and 6 rows, values in [0,255], all elements initialised at 12
cv:Mat A;
A.create(5,6, CV_8UC1);
A = cv::Scalar(12);

//here I successfully access to pixel [4,5]
uchar *p = A.data;
int value = (uchar) p[4*A.step + 5];
Run Code Online (Sandbox Code Playgroud)

问题是当我尝试使用以下矩阵执行相同的操作时,

// a matrix 5 columns, 6 rows, values in [0.0, 1.0], all elements initialised at 1.2
cv::Mat B;
B.create(5,6, CV_32FC1);
B = cv::Scalar(1.2);

//this clearly does not work, no syntax error but erroneous value reported! …
Run Code Online (Sandbox Code Playgroud)

opencv

8
推荐指数
2
解决办法
2万
查看次数

OpenCV Mat阵列访问,最快的方法是哪种?为什么?

我想知道OpenCV中Mat中访问数据的方式。如您所知,我们可以通过多种方式获取数据。我想在Mat中存储图像(宽x高x 1深度)并循环访问图像中的每个像素。最好的方法是使用ptr <>(irow)获取行像素,然后访问行中的每一列。或使用at <>(irow,jcol)最好?还是使用index = irow * Width + jrow直接计算索引是最好的?任何人都知道原因。

提前致谢

c++ opencv image image-processing mat

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

opencv ×2

c++ ×1

image ×1

image-processing ×1

mat ×1