【问题标题】:How to eliminate small contour areas using opencv如何使用opencv消除小轮廓区域
【发布时间】:2020-07-11 11:44:28
【问题描述】:

我尝试使用KNearestNeighbors 作为插值方法在 python 中创建一个有故障的等高线图。但是,该图返回多个小轮廓区域,我想消除这些区域:

我尝试使用OpenCV找到所有封闭的轮廓线并设置一个边界值作为最大区域,然后消除所有小于边界值的区域。

但是,我使用findContours 方法似乎失败了,因为它只能找到断层周围的轮廓。所有其他轮廓均未呈现。结果图和我的代码如下:

img = cv2.imread('contor_line.jpg')
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)  
ret, binary = cv2.threshold(gray,127,255,cv2.THRESH_BINARY)  
contours, hierarchy = cv2.findContours(binary,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)  
cv2.drawContours(gray,contours,-1,(0,0,255),1)  
cv2.imshow("gray", gray)  
cv2.waitKey(0)

这是我第一次使用 OpenCV,非常感谢您的帮助。

【问题讨论】:

    标签: python opencv image-processing contour


    【解决方案1】:

    在找到轮廓之前尝试使用 canny,或对图像设置阈值,这将使寻找轮廓更容易、更好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-24
      • 1970-01-01
      • 1970-01-01
      • 2012-11-09
      • 2019-12-07
      • 2018-05-15
      • 2012-01-12
      相关资源
      最近更新 更多