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