如何使用Opencv 2.3从灰度图像中更改像素值? [英] How can i change a pixel value from a grayscaled image using Opencv 2.3?

查看:915
本文介绍了如何使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆