如何识别一些基本(通常是旋转的)形状:
- 圆圈,
- “空”圈,
- 叉,
- 空三角形,
使用OpenCV?最直接的方法是什么?如果用户能够以某种方式“定义”他自己的形状(可能加载模板图像),那就太好了。
我想将每个识别的形状映射到它的类型(圆形、三角形等)和它的中心位置。(如果可能的话,它的轮换)。
HoughCircles可以使用圆形(在这种情况下也没有旋转)。但是其他人呢?模板匹配不支持旋转和缩放,对吧?...
这是输入:


如何识别一些基本(通常是旋转的)形状:
使用OpenCV?最直接的方法是什么?如果用户能够以某种方式“定义”他自己的形状(可能加载模板图像),那就太好了。
我想将每个识别的形状映射到它的类型(圆形、三角形等)和它的中心位置。(如果可能的话,它的轮换)。
HoughCircles可以使用圆形(在这种情况下也没有旋转)。但是其他人呢?模板匹配不支持旋转和缩放,对吧?...
这是输入:


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