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

发布于 2025-01-01 08:30:55 字数 229 浏览 0 评论 0原文

当我使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

哭泣的笑容 2025-01-08 08:30:55

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

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

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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文