如何用Python+OpenCV获取图像中墙、窗、柱的特定点坐标?
建筑平面图坐标提取需求与实现尝试
需求概述
我需要从建筑平面图图像中提取特定坐标,已手动标记参考图(白点代表墙、粉点代表窗户、矩形代表柱子)来明确所需标注的位置。目前使用Python结合OpenCV开发,但不确定当前技术方向是否正确。
相关图像说明
- 图1:原始建筑平面图
- 图2:手动标记后的坐标参考图
- 首次尝试结果图:CornerHarris角点检测后的输出效果
首次尝试代码
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) gray = np.float32(gray) cv2_imshow(gray) dst = cv2.cornerHarris(gray,5,3,0.04) ret, dst = cv2.threshold(dst,0.1*dst.max(),255,0) dst = np.uint8(dst) ret, labels, stats, centroids = cv2.connectedComponentsWithStats(dst) criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 100, 0.001) corners = cv2.cornerSubPix(gray,np.float32(centroids),(5,5),(-1,-1),criteria) for i in range(1, len(corners)): print(corners[i]) img[dst>0.1*dst.max()]=[255,255,255]
补充需求细节
- 需提取除门窗区域外的墙体中心线(对应参考示例图)
- 门窗区域需满足:
- 窗户:标注出窗户的轮廓坐标
- 门:标注出门的轮廓坐标(对应门窗参考示例图)
内容的提问来源于stack exchange,提问作者user14874585
相关产品推荐
相关产品推荐

