区分圆形,矩形和正方形

时间:2020-05-14 07:00:36

标签: python opencv opencv-contour

给出此图片

,如何找到圆形,矩形和正方形的管道数量? 我现在正在使用以下过滤器来获取管道的边缘。给定这些边缘,我使用了Hough Circles和findContours来计算圆形和矩形计数。但是问题在于该算法在矩形管道内部找到了圆,反之亦然。我该如何解决这个问题?

blur_hor = cv2.filter2D(
    img_bw[:, :, 0], cv2.CV_32F, kernel=np.ones((11, 1, 1), np.float32) / 11.0,
    borderType=cv2.BORDER_CONSTANT
)
blur_vert = cv2.filter2D(
    img_bw[:, :, 0], cv2.CV_32F, kernel=np.ones((1, 11, 1), np.float32) / 11.0,
    borderType=cv2.BORDER_CONSTANT
)
mask = (
    (img_bw[:, :, 0] > blur_hor * 1.2) | (img_bw[:, :, 0] > blur_vert * 1.2)
).astype(np.uint8) * 255

这是应用滤镜/蒙版后图像的外观:

0 个答案:

没有答案
相关问题