查找cv2.findContours()的区域(Python,OpenCV)

时间:2017-09-29 15:00:59

标签: python opencv

我想在下一张图片中找到/计算轮廓区域:

contour

目标是删除您在图像中可以看到的所有点,因此斑点轮廓的区域小于我给出的值。

removal

我该如何设置?

这是我用过的代码 ......

import cv2

im = cv2.imread('source.png')
imgray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(imgray,127,255,0)
image, contours, hierarchy = cv2.findContours(thresh,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)

img = cv2.drawContours(im, contours, -1, (0,255,0), 1)

cv2.imshow('contour',img)
cv2.waitKey(0)
cv2.imwrite('contour.png',img)

...这是来源图片:

origin

谢谢

2 个答案:

答案 0 :(得分:1)

有多种方法可以做到这一点。一种方法是找到边界矩形的区域。

for contour in contours:
   rect = cv2.boundingRect(contour)
   area = rect[2] * rect[3]

答案 1 :(得分:1)

您可以使用cv2.contourArea()来决定绘制哪个:

for contour in contours:
    if cv2.contourArea(contour) < 80:
        cv2.drawContours(im, contour, -1, (255, 255, 255), 3)