C++的opencv里怎么读取Mat图像中特定坐标的灰度值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++的opencv里怎么读取Mat图像中特定坐标的灰度值?相关的知识,希望对你有一定的参考价值。

刚开始学opencv,最近想判定几个特定区域是白还是黑,但是不知道怎么选定每个单独像素的方法.
是像img(i,j) 或者 img.at(i,j)之类的写法么?

参考技术A Mat imgHSV;
Vec3b HsvPointData;
HsvPointData = imgHSV.at<Vec3b>(i, j);本回答被提问者采纳

如何用opencv提取一张图片的像素矩阵

操作单个像素方法:
at(int y, int x)
cv::mat的成员函数: at(int y, int x)可以用来存取图像中对应坐标为(x,y)的元素坐标。但是在使用它时要注意,在编译期必须要已知图像的数据类型,这是因为cv::mat可以存放任意数据类型的元素。因此at方法的实现是用模板函数来实现的。
使用方法:假设提前已知一幅图像img的数据类型为 unsigned char型灰度图(单通道),要对坐标为(10,12)的像素重新赋值为128,则对应操作如下
img.at<uchar>(12,10) = 128;
参考技术A 矩阵是像素的集合,通道是指每个像素用几种基色(不知道这样描述准不准确)组成,一般由RGB组成,有的带有a(alpha)。可以用cvSplit函数将3/4通道的图像的追问

然后呢?

参考技术B 从imageData中取,BGR顺序存的,每WidthStep换行本回答被提问者采纳 参考技术C 矩阵是像素的集合,通道是指每个像素用几种基色(不知道这样描述准不准确)组成,一般由RGB组成,有的带有a(alpha)。可以用cvSplit函数将3/4通道的图像的RGB(假设是RGB颜色空间)分离成只有R的图片、只有G的图片和只有B的图片!

以上是关于C++的opencv里怎么读取Mat图像中特定坐标的灰度值?的主要内容,如果未能解决你的问题,请参考以下文章

opencv中Mat数据怎么保存为JPG格式的图片

opencv显示图片的问题

在matlab中调用时无法在C++中使用opencv读取图像

如何用opencv提取一张图片的像素矩阵

无法同时显示五个 Mat 图像(C++、OpenCV)

Opencv和Qt QImage格式转Mat