如何在此图中找到三个六边形的交点?

How can I find intersections of three hexagons on this figure?

我有一个像这样的图 我想找到三个六边形的所有交点的坐标。

我该怎么做?我应该使用 OpenCV 吗?

您可以尝试使用 Harris corner detector 找到这些特征。

同时检查 findContours 对结果交集的分析是否可以为您提供有用的信息。

我仍在考虑 faster/better 方法,但我认为以下方法应该可行:

  • 将您的图像限制为纯黑色和白色
  • 生成并保存所有黑色像素的列表供以后使用
  • 标记您的图像,以便每个白色六边形都有效地填充了独特的颜色(或灰色阴影)-有些人称之为 "labelling",有些人叫它"Blob Analysis",有人叫它"Connected Component Analysis"。不管它叫什么,你都会得到这样的东西:

  • 现在查看您在第二步中保存的列表中的每个黑色像素,并计算周围 9x9 或 15x15 区域中除黑色以外的其他颜色的数量。如果是三个,则可能是您正在寻找的十字路口。

当然有一些变化 - 例如,您可以在顶部实现 "minimum distance from other intersection"。或者一个"black line thinning first"。或者扩大每个斑点以侵蚀黑线并使三种颜色靠得更近。您可以在标记后缩小图像(小心使用 NEAREST_NEIGHBOUR 而不是插值)以减少处理时间 - 如果重要的话。