我有一个灰度图像。它包含具有不同灰度值的色块。
在图像的不同位置可能会有不同的色块,它们具有相同的灰度值。
我想获取特定灰度值的所有色块的上下坐标。
“上”是指该面片的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_min
和y_max
(因为我认为轮廓是实际补丁的外部,我认为您需要从max中减去一个,并将min加一个,但是我对此不确定)关于python - 如何使用python opencv获取图像中特定灰度值的所有色块的顶部和底部坐标?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20984305/