首页 > 解决方案 > 建立哈里斯角检测器输出的连接图

问题描述

我的最终意图是基于此构建一些东西:https ://www.researchgate.net/publication/308194022_Tifinagh_Character_Recognition_using_Harris_Corner_Detector_and_Graph_Representation

我被困在第 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 x 189。

但是我怎样才能确定哪个与哪个相关?我尝试从一个角落“走”图像阵列,直到遇到另一个,但这不包括有多个的情况,比如那里的 A 中的中心点。我还考虑了如何遍历每个角落并查看是否可以连接到其他角落,但由于它们是同一轮廓的一部分,它们将始终能够连接。

任何建议表示赞赏。

标签: pythonopencv

解决方案


推荐阅读