繁体   English   中英

使用opencv查找图像中的所有轮廓

[英]Using opencv to find all contours in an image

应用程序的图像

未应用程序的图像

有人可以帮我找出我的代码中的问题吗,我试图找到图像中的所有轮廓,然后用灰边框覆盖它,但它似乎只覆盖了一些轮廓。 '''

image_find_goal = "/absolutePathWays.img"
kernel = np.ones((5,5),np.uint8)
#findGoal(image_find_goal)
img1 = cv.imread(image_find_goal,cv.IMREAD_GRAYSCALE)
ret,mask = cv.threshold(img1, 125, 255, cv.THRESH_BINARY_INV)
contours, hierarchy = cv.findContours(mask,cv.RETR_TREE,cv.CHAIN_APPROX_NONE)
for cnt in contours:
    approx = cv.approxPolyDP(cnt,0.01*cv.arcLength(cnt,True),True)
    if len(approx) == 4:
        cv.drawContours(mask,cnt,-1,(119,256,51),5)
mask3 = cv.resize(mask,(640,640))
cv.imshow('IMAGE', mask3)
cv.waitKey(0)
cv.destroyWindow(mask3)

'''

  • 我尝试打印 len(approx) 的值,很少有值等于 4,检测到的轮廓可能有轻微的不准确,因此可能会出现意外结果。
  • 我尝试改变
if len(approx) == 4:

if len(approx) >= 4:

结果图像

  • 您也可以尝试完全删除该条件或根据您的要求对其进行编辑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM