如何使用 Opencv 2.3 更改灰度图像的像素值?
当我使用 Opencv 2.3 中的示例读取灰度图像时:
Mat src = imread("44.png" ,0);
如何访问它的像素值?
我知道我是否可以使用它的 RGB:
std::cout << src.at<cv::Vec3b>(i,j)[0].
提前致谢。
When i read a grayscaled image using for example in Opencv 2.3:
Mat src = imread("44.png" ,0);
How can i access the pixel value of it?
I know if its RGB i can use:
std::cout << src.at<cv::Vec3b>(i,j)[0].
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于灰度图像仅包含一个分量而不是 3 个分量,因此生成的矩阵/图像的类型为
CV_8UC1
而不是CV_8UC3
。这反过来意味着,各个像素不是 3 个字节向量 (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 ofCV_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'suchar
). So you can just use: