python - 建筑平面图中的门检测
问题描述
我正在研究平面图图像中的房间检测项目,目前我能够从图像中提取墙壁但卡在门检测中。我尝试使用电弧检测,但结果并不好。有人可以提出更好的方法。
def door_detection(r_img):
gray =cv2.cvtColor(r_img,cv2.COLOR_BGR2GRAY)
kernel = np.ones((5,5),np.uint8)
erosion = cv2.erode(r_img, kernel, iterations=3)
dilated = cv2.dilate(erosion,kernel,iterations = 3)
blurred = cv2.medianBlur(dilated,5)
canny = cv2.Canny(blurred,100,200)
contours,hierarchy=cv2.findContours(canny,cv2.RETR_TREE,
cv2.CHAIN_APPROX_SIMPLE)
contour_list=[]
for contour in contours:
approx = cv2.approxPolyDP(contour,0.01*cv2.arcLength(contour,True),True)
area = cv2.contourArea(contour)
if ((len(approx) > 10 & (area > 100) ):
contour_list.append(contour)
cv2.drawContours(r_img, contour_list, -1, (255,0,0), 2)
cv2.imshow('dilated',dilated)
cv2.imshow('Objects Detected',r_img)
cv2.imwrite('arcs.jpg',r_img)
if cv2.waitKey(0) & 0xff == 27:
cv2.destroyAllWindows()
解决方案
推荐阅读
- assembly - 不使用寄存器调用已知地址
- batch-file - 为什么这个简单的批处理脚本不起作用?
- python - 我无法在 python3.6 中导入 requests_html
- node.js - 我可以设置只允许特定来源传递 cookie (Node.js) 的动态 cors 策略吗?
- ios - 此类与键 currentLetter 的键值编码不兼容
- python - 如何最好地创建一个新列,其中每个值都由当前行和其他行确定?
- java - 我无法使用地理位置 API
- typescript - 如何在扩展中触发打字稿重新编译?
- node.js - 在电报或电报 api 中使用机器人创建新频道
- javascript - 在隐藏的 DIV 上渲染 Chartjs