识别图像中黑色部分的位置

时间:2015-12-14 11:29:39

标签: python-2.7 opencv image-processing

我需要知道黑色部分的位置,如下图所示 enter image description here

到目前为止,我可以通过here给出的代码获得图像中最大轮廓的坐标,即没有黑色部分的图像。

例如,第一张图像的坐标(1598 x 1288):

(请注意**cv2.approxPolyDP()**输出的坐标为(y,x),与惯例相反)

[column# row#]

[[[ 1 358]]

[[ 1 1288]]

[[ 1598 1288]]

[[1598 1]]

[[677 1]]

[[677 358]]

在这种情况下,我可以找到黑色补丁的坐标,如下所示:

1)由于补丁位于左上方(假设我们知道这一点),因此必须有2对坐标,如[min.col.# , row#]。在这里,[1 358] and [1 1288]。从中获取最小行#(here 358)。这将是黑色补丁的最大行#。 (假设左上角是[1 1]而非[0 0]

2)搜索[some_col.# 358]之类的坐标(从上一步中提取的行#)。在这里,我们得到[677 358]。因此677是黑色补丁的最大列#。

3)黑色补丁的点数变为[1 1], [1 358], [677 358], [677 1]

这当然是一种非常笨拙的确定坐标的方法,还需要了解补丁的位置(左上,右上,右下,左下)。

确定轮廓后,应该很容易知道黑色斑块的坐标。

你有什么建议?

除了查找轮廓和边界矩形外,还有其他在图像中查找黑色斑点的方法,如链接中所示?

0 个答案:

没有答案