如何识别一些基本(通常是旋转的)形状:
- 圆圈,
- “空”圈,
- 叉,
- 空三角形,
使用OpenCV
?最直接的方法是什么?如果用户能够以某种方式“定义”他自己的形状(可能加载模板图像),那就太好了。
我想将每个识别的形状映射到它的类型(圆形、三角形等)和它的中心位置。(如果可能的话,它的轮换)。
HoughCircles
可以使用圆形(在这种情况下也没有旋转)。但是其他人呢?模板匹配不支持旋转和缩放,对吧?...
这是输入:
如何识别一些基本(通常是旋转的)形状:
使用OpenCV
?最直接的方法是什么?如果用户能够以某种方式“定义”他自己的形状(可能加载模板图像),那就太好了。
我想将每个识别的形状映射到它的类型(圆形、三角形等)和它的中心位置。(如果可能的话,它的轮换)。
HoughCircles
可以使用圆形(在这种情况下也没有旋转)。但是其他人呢?模板匹配不支持旋转和缩放,对吧?...
这是输入:
你是对的,常规模板匹配不是旋转、比例不变的。看看 OpenCV 的matchShapes
. 在内部,它使用HuMoments
. 您将需要使用findContours
来查找每个单独的对象。现在一旦你这样做了,你可能会发现matchShapes
无法区分 Circle 和 Ring。解决此问题的一种简单方法是使用findContours
. 如果圆圈内有一个洞(足够大),那可能是一个环。