我有一个灰度图像。它包含具有不同灰度值的色块。

在图像的不同位置可能会有不同的色块,它们具有相同的灰度值。

我想获取特定灰度值的所有色块的上下坐标。

“上”是指该面片的y坐标的最大值,而不管x坐标如何。

“低”是指该补丁的y坐标的最小值,而不管x坐标如何。

对于特定灰度的所有色块,我都需要这样的(x,y)对。

谢谢

最佳答案

我没有使用过OpenCV的Python版本,但是基本上,您想要做的是(使用C++语法):

cv::Mat labels = image == gray_value;

这将创建一个BW图像,其中所有灰度值为== gray_value的色块的值为255,其余色块均设置为0;
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
findContours( labels, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);

这将找到每个补丁周围的轮廓。

最后,您需要遍历轮廓,并为每个轮廓查找y_miny_max(因为我认为轮廓是实际补丁的外部,我认为您需要从max中减去一个,并将min加一个,但是我对此不确定)

关于python - 如何使用python opencv获取图像中特定灰度值的所有色块的顶部和底部坐标?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20984305/

10-11 07:34