我试图在图像中获得特定的坐标。我在图像上手动标记了点和矩形(图2)在几个位置,向您展示我想要获得的坐标(白色点表示墙壁,窗口为粉红色圆点,列为矩形).我使用python和opencv来做这件事,但我不确定我是否在正确的轨道上。(图1). figure 1figure 2这是我的第一次尝试:
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]
字符串
First attemp的
编辑:- 我要恢复除门窗区域外的墙中心线。Here is an image for that-对于门窗,我要考虑以下事项:Doors/windows
1条答案
按热度按时间qq24tv8q1#
代码需要一些调整添加了一个步骤,在原始图像上绘制绿色圆圈,以直观地标记检测到的角点,并根据其响应强度对角点进行排序,这使得更容易识别最重要的角点,并调整了Harris角点检测的参数,以更好地适应您的特定图像和应用程序。
更新示例:
字符串