如何在OpenCV python中为特定轮廓指定特定ID

2024-05-15 04:03:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图识别棋盘上的方块,并给它们分配一个ID,这将是它们的方块号,如a1、a2、h1、…h8。我在棋盘图像上应用了轮廓检测,并进行了一些预编辑,比如首先将图像转换为灰度,然后进行canny边缘检测和houghlines。这是我得到的结果。 Image with contours detected.

我成功地获得了所需的64个轮廓,但我无法将其各自的ID分配给它们,如下所示: Chess Squares Notations我试着在轮廓上迭代,但每次的排列都不一样

如何将ID(基本上是棋盘格符号)分配给64个等高线


Tags: 图像imageida2编辑棋盘a1h1
1条回答
网友
1楼 · 发布于 2024-05-15 04:03:51

你能做的就是永远计算轮廓的质心,给那个点一些id,现在当你迭代新的轮廓集时,计算它们的质心。 现在有两个质心集,previous_ccurrent_c,您已经为每个previous_c指定了一个给定的id,现在为该previous_c找到最近的current_c(您可以使用欧几里德距离或曼哈顿距离)并为其指定相同的id。因此,基本上您正在进行对象跟踪,但不针对轮廓

相关问题 更多 >

    热门问题