如何使用Opencv 2.3更改灰度图像的像素值?

时间:2012-02-01 23:18:22

标签: c++ image opencv

当我使用例如在Opencv 2.3中读取灰度图像时:

Mat src = imread("44.png" ,0);

如何访问它的像素值?

我知道它的RGB是否可以使用:

std::cout << src.at<cv::Vec3b>(i,j)[0].

提前致谢。

1 个答案:

答案 0 :(得分:4)

由于灰度图像仅包含一个组件而不是3,因此生成的矩阵/图像的类型为CV_8UC1而不是CV_8UC3。而这又意味着,单个像素不是3个字节向量(cv::Vec3b),而只是单个字节(unsigned char或OpenCV的uchar)。所以你可以使用:

src.at<unsigned char>(i, j)