如何使用Opencv 2.3从灰度图像中更改像素值? [英] How can i change a pixel value from a grayscaled image using Opencv 2.3?
本文介绍了如何使用Opencv 2.3从灰度图像中更改像素值?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
当我使用例如Opencv 2.3读取灰度图像时:
When i read a grayscaled image using for example in Opencv 2.3:
Mat src = imread("44.png" ,0);
如何访问其像素值?
我知道它的RGB i是否可以使用:
I know if its RGB i can use:
std::cout << src.at<cv::Vec3b>(i,j)[0].
提前感谢。
推荐答案
由于灰度图像只包含一个组件而不是3,所以生成的矩阵/图像的类型为 CV_8UC1
,而不是 CV_8UC3
。这又意味着每个像素不是字节的三个向量( cv :: Vec3b
),而只是单个字节( unsigned char
或OpenCV的
uchar
)。因此,您只需使用:
Since a grayscale image contains only one component instead of 3, the resulting matrix/image is of type CV_8UC1
instead of CV_8UC3
. And this in turn means, that individual pixels are not 3-vectors of bytes (cv::Vec3b
) but just single bytes (unsigned char
or OpenCV's uchar
). So you can just use:
src.at<unsigned char>(i, j)
这篇关于如何使用Opencv 2.3从灰度图像中更改像素值?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文