答案 0 :(得分:0)
您将要识别线段端点的(x,y)。
在源图像上运行Sobel或sepFilter2D以分别拾取垂直边缘和水平边缘。您也可以使用HoughCircles定位和消除门弧。过滤器会将三条平行线变成一条粗线肯定会帮助您处理窗户。
给出一组具有(大约)x,y标签的线段,标识接近于共线并且具有与门对应的适当大小的间隙的线段对。合并它们,填补空白。将片段渲染到空白图像或原始图像的褪色版本上。
答案 1 :(得分:0)
我没有首先将其发布为答案,因为我认为它不是完整的,但是正如您在注释中要求输入代码的地方一样,
import cv2
import numpy as np
img = cv2.imread("room.png", 0)
cv2.imshow("original", img)
kernel = np.ones((4,4),np.uint8)
dilation = cv2.dilate(img,kernel,iterations = 1)
cv2.imshow("dilated", dilation)
ret, thresh = cv2.threshold(dilation, 150, 255, cv2.THRESH_BINARY)
cv2.imshow("thresholded", thresh)
这只是基本的扩张,它利用了稀释的黑色细线会变成灰色的事实,因此我可以应用阈值。
当然,您可以稍微调整一下参数,以获得更好的结果,但是用这种方式不会获得预期的结果。