我停留在第3.2部分中,为拐角建立邻接矩阵。下图是为了帮助使我想要实现的目标生动化。
说我拍摄A的图像并将其应用于Harris,然后使用此代码
# define the criteria to stop and refine the corners
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)
#print corners
for i in range(1, len(corners)):
print(corners[i])
我得到一个漂亮的角坐标列表,如下所示:
[51.70207 62.5541 ]
[ 37.04742 100.78287]
[ 66.707726 100.73132 ]
[ 29.685337 119.28638 ]
[ 75.62286 119.49719]
作为参考,图像为106 x189。
但是我如何确定哪个连接到哪个?我尝试从一个角“遍历”图像阵列,直到碰到另一个,但这并没有涵盖存在多个像A的中心点的情况。我还考虑过如何遍历每个角,看看是否可以连接到其他角,但是由于它们是同一轮廓的一部分,因此它们将始终能够连接。
任何建议都值得赞赏。