如何将特定 ID 分配给 OpenCV 中的特定轮廓 python
How to assign specific IDs to specific contours in OpenCV python
我正在尝试识别棋盘上的方块并为它们分配一个 ID,该 ID 将是它们的平方数,例如 a1、a2、h1、...h8。我在棋盘的图像上应用了轮廓检测,并进行了一些预编辑,例如首先将其转换为灰度,然后进行精明的边缘检测以及 houghlines。这是我得到的结果。
Image with contours detected.
我成功获得了所需的 64 个轮廓,但我无法像这样为它们分配各自的 ID:
Chess Squares Notations 我尝试遍历轮廓,但每次都以不同的方式排列。
如何为 64 个等高线分配 ID(基本上是国际象棋方格符号)?
你可以做的是永远计算它的质心轮廓并给那个点一些 id ,现在当你遍历新的一组轮廓时计算它们的质心。
现在你为质心设置了 2 个,previous_c
和 current_c
,你已经为每个 previous_c
分配了一个给定的 id,现在为那个 previous_c
找到最接近的 current_c
(您可以使用欧几里德距离或曼哈顿距离)并为其分配相同的 ID。所以基本上你是在做对象跟踪,但轮廓。
我正在尝试识别棋盘上的方块并为它们分配一个 ID,该 ID 将是它们的平方数,例如 a1、a2、h1、...h8。我在棋盘的图像上应用了轮廓检测,并进行了一些预编辑,例如首先将其转换为灰度,然后进行精明的边缘检测以及 houghlines。这是我得到的结果。 Image with contours detected.
我成功获得了所需的 64 个轮廓,但我无法像这样为它们分配各自的 ID: Chess Squares Notations 我尝试遍历轮廓,但每次都以不同的方式排列。
如何为 64 个等高线分配 ID(基本上是国际象棋方格符号)?
你可以做的是永远计算它的质心轮廓并给那个点一些 id ,现在当你遍历新的一组轮廓时计算它们的质心。
现在你为质心设置了 2 个,previous_c
和 current_c
,你已经为每个 previous_c
分配了一个给定的 id,现在为那个 previous_c
找到最接近的 current_c
(您可以使用欧几里德距离或曼哈顿距离)并为其分配相同的 ID。所以基本上你是在做对象跟踪,但轮廓。