首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >len(轮廓)是什么意思?

len(轮廓)是什么意思?
EN

Stack Overflow用户
提问于 2016-03-31 18:57:09
回答 2查看 3.6K关注 0票数 0

我一直在细菌的图像下工作,并希望从图像中获取细菌的数量,还需要对特定形状和大小的细菌进行分类。我正在使用opencv python。现在我使用轮廓线方法。

代码语言:javascript
复制
    contours,hierarchy = cv2.findContours(dst,1,2)
    cnt = contours[0]
    l = len(contours)
    print l
    li = list(contours)
    print li

这给出了l= 115和li=一些数组值的输出。这是什么意思??

请帮我找出下面的answer..e.coli镜像:

EN

回答 2

Stack Overflow用户

发布于 2016-03-31 19:04:22

轮廓连接连续点,并将所有这些点放入一个数组中。因此,这个阵列中的每个元素可能对应于不同的细菌(或错误检测,由于连接的颜色组是阴影等)。

当您说len(contours)时,您将获得此数组中元素的数量。因此,你可以粗略估计出细菌的数量。

在你的案例中,有115种细菌,或者颜色与周围环境不同,这可能是也可能不是细菌。当您为它们定义一个列表并打印该列表时,您将获得该列表中每个元素的属性,因此您将获得每个“连接点编组”或每个“可能是细菌的对象”的属性。一切都很简单,真的。

如果你意识到这里有很多错误的检测,你会这么做:

  • :一组出现在一起的细菌:

设置图像阈值(将其转换为黑白图像),然后首先使用erode函数。然后使用dilate函数删除它们的连接。然后再一次使用findContours

被检测为细菌的

  • 染色:

让你的阈值只覆盖细菌的颜色范围,这样其他的一切都会被忽略。

请参阅下面的资源,它们可能会有所帮助:

http://docs.opencv.org/2.4/doc/tutorials/imgproc/shapedescriptors/find_contours/find_contours.html

http://docs.opencv.org/trunk/d4/d73/tutorial_py_contours_begin.html#gsc.tab=0

票数 2
EN

Stack Overflow用户

发布于 2016-03-31 19:01:04

cv2.findCountours返回一个等高线列表,其中每个等高线都是一个点数组( x,y坐标为2列)。len(foo)为list foo的长度。所以在你的例子中,它找到了115个轮廓,而你的li只是contours列表的一个副本。

您可以使用drawContours function轻松地检查等高线。

代码语言:javascript
复制
# draws contours in white color, outlines only (not filled)
cv2.drawContours(dst, contours, -1, (255,))

cv2.imshow("result", dst)
cv2.waitKey(-1)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36331427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档