如何使用python opencv获取图像中特定灰度值的所有补丁的顶部和底部坐标?

时间:2014-01-07 23:42:59

标签: python opencv

我有一张灰度图片。它包含不同灰度值的补丁。

图像中不同位置可能存在具有相同灰度值的不同斑块。

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

上限是指该补丁的y坐标的最高值,与x坐标无关。

低于I表示该补丁的y坐标的最低值,与x坐标无关。

对于特定灰度级的所有补丁,我需要这样的(x,y)对。

由于

1 个答案:

答案 0 :(得分:1)

我没有使用过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,但我不确定那个)