gpt4 book ai didi

c++ - Mat 二值图像的最佳访问像素值方法?

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:31 28 4
gpt4 key购买 nike

我想问一个问题:我必须逐次检查二进制阈值 OpenCV Mat 图像中像素 (X,Y) 的值。

我必须检查我要验证的 X、Y 像素是黑色还是白色(0 或 255)...做这件事的最佳方法是什么?

我已经搜索并阅读了有关直接方法 (Get2D) 或使用指针的信息..但对我来说不是很清楚...图像是二进制的、阈值化和侵 eclipse /膨胀之前...

有人可以给我发一个我必须用来做这件事的函数代码示例吗?

最佳答案

如果您一直检查同一个像素,请按照@Xale 所说的去做:

mat.at<unsigned char>(x,y) // assuming your type is CV_8U

如果您必须对几个像素执行此操作,请先获取行的偏移量,然后再访问列:

unsigned char *row = mat.ptr<unsigned char>(y);
// access now row[x1], row[x2]...

还有一个选项仅在您只需要一个像素并且图像上的所有操作都在相同分配的内存上完成时才有效(这取决于您的代码和您调用的 opencv 函数)。在这种情况下,您可以获得一次指向该像素的指针,并在需要时访问它:

unsigned char *px = mat.ptr<unsigned char>(y) + x;
...
unsigned char current_value = *px;

关于c++ - Mat 二值图像的最佳访问像素值方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20238182/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com