我如何解决从图像中识别和提取矩形的问题,如下图所示.
请注意,我的矩形可能不完整,并且缺少一些边,而某些边可能是部分线.
谢谢 !
解决方法:
可以使用morphological操作(例如eroding and dilating)来解决.这两个操作将有助于创建闭合的矩形.
之后,您可以使用page中的教程来检测简单的形状,例如矩形.
我实现了一个快速演示,该演示适用于您提供的图像.
main.py:
import cv2
import numpy as np
from shapeDetector import ShapeDetector
import imutils
img = cv2.imread('t.png')
kernel = np.ones((5,5),np.uint8)
erosion = cv2.erode(img,kernel,iterations = 10)
dilate = cv2.dilate(erosion,kernel,iterations = 10)
腐蚀会使所有线条变粗,因此要恢复正常宽度,我们需要在腐蚀后进行扩张.我建议对扩张操作进行一次评论,以了解侵蚀的工作原理,反之亦然.
此操作将像这样改变您的图像
我使用的检测算法期望在黑色背景上出现白线.
这就是为什么我们需要反转图像.
cv2.bitwise_not ( dilate, di