【问题标题】:Python openCv contoursPython openCv 轮廓
【发布时间】:2016-01-06 07:02:17
【问题描述】:

我正在尝试根据this one 和文档等教程了解findContours 的输出。我想知道为什么我会得到我得到的输出。 我有一个 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)

现在我的图片中心有一个正方形,边框为 6 像素。 它的外边界大致在 (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]]]

我不明白为什么这些输出是这样的,也没有在文档中找到任何关于我为什么会获得完整文档大小的信息。

这是我使用的图片

【问题讨论】:

    标签: python opencv


    【解决方案1】:

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

    只是第一场比赛(全图)

    就第二个(外方)

    还有最后一个(内方)

    【讨论】:

      猜你喜欢
      • 2017-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-13
      • 2014-07-27
      • 2019-01-25
      • 2016-09-25
      相关资源
      最近更新 更多