如何使用opencv消除小的轮廓区域

问题描述 投票:0回答:1

我尝试使用KNearestNeighbors作为插值方法在python中创建具有错误的轮廓图。但是,该图如下所示,但有多个我想消除的小轮廓区域。contour map generated

我试图使用opencv查找所有封闭的轮廓线,并将边界值设置为最大面积,然后消除所有小于边界值的区域。

但是,我似乎无法使用findContours方法,因为它只能在断层周围找到轮廓。所有其他轮廓都无法显示。结果图和我的代码如下。 findContours result

'''
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个回答
0
投票

[在找到轮廓之前先尝试使用Canny,或对图像进行阈值处理,这将使轮廓更容易和更好。

© www.soinside.com 2019 - 2024. All rights reserved.