2

如何识别一些基本(通常是旋转的)形状:

  • 圆圈,
  • “空”圈,
  • 叉,
  • 空三角形,

使用OpenCV?最直接的方法是什么?如果用户能够以某种方式“定义”他自己的形状(可能加载模板图像),那就太好了。

我想将每个识别的形状映射到它的类型(圆形、三角形等)和它的中心位置。(如果可能的话,它的轮换)。

HoughCircles可以使用圆形(在这种情况下也没有旋转)。但是其他人呢?模板匹配不支持旋转和缩放,对吧?...

这是输入:

空三角形,空圆圈,圆圈

空三角形,空圆圈,交叉

4

1 回答 1

4

你是对的,常规模板匹配不是旋转、比例不变的。看看 OpenCV 的matchShapes. 在内部,它使用HuMoments. 您将需要使用findContours来查找每个单独的对象。现在一旦你这样做了,你可能会发现matchShapes无法区分 Circle 和 Ring。解决此问题的一种简单方法是使用findContours. 如果圆圈内有一个洞(足够大),那可能是一个环。

于 2013-06-07T00:34:45.430 回答