Python openCv轮廓

时间:2016-01-05 14:32:56

标签: python opencv

我正在尝试根据findContours等教程和docs来理解this one的输出。我想知道为什么我得到的输出。 我有一个jpeg img,中心有一个正方形,我的目标是找到方形和颜色(只是为了更好地理解openCv的轮廓功能)。 我正在加载它:

# Load a colored image
img = cv2.imread('test_image.jpg')
#Make it gray
imgray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
#reducing noise
ret,thresh = cv2.threshold(imgray,127,255,0)
#RETR_TREE make nested contours
#CHAIN_APPROX_SIMPLE    compresses horizontal, vertical, and diagonal segments and leaves only their end points.
contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

现在我的图像中间有一个正方形,边框为6px。 它的外边界大致上是(970,634),(1658,634),(1658,1328),(970,1328)

我的问题是返回的轮廓是以下3:

第一个似乎是整个图像尺寸

[[[1 1]]

[[1 3506]]

[[2478 3506]]

[[2478 1]]]

这个似乎有方形坐标但每个点都有一个重复的1px差异

[[[970 635]]

[[971 634]]

[[1658 634]]

[[1659 635]]

[[1659 1328]]

[[1658 1329]]

[[971 1329]]

[[970 1328]]]

最后一个有内部轮廓似乎

[[[977 641]]

[[977 1322]]

[[1652 1322]]

[[1652 641]]]

我不明白为什么这些输出是这样的,并且在文档中没有找到关于为什么我会获得完整文档大小的例子。

以下是我使用的图片enter image description here

1 个答案:

答案 0 :(得分:0)

基本上第一个是图像内容,似乎总是给出,第二个是外形(不知道为什么这么多点和小变化,但可能是由于找到等高线( 第三个是内部形状,由柜台包围的形状。 基本上这是一个完整的正方形图像

enter image description here

只是第一场比赛(完整图片)

enter image description here

只是第二个(外部广场)

enter image description here

最后一个(内部广场)

enter image description here