我有一个模板图像,上面有白色背景和黑色形状。我也有一个形状相似但旋转和比例不同的图像,图像中也有一些噪点。就像下面的图片一样!{ {0}}我想使用rotateRect来获取包含模板形状的Rect,并使用模板查找包含目标sharp的rotateRect。我知道matchTemplate()在场景中旋转或缩放对象时效果不佳。所以我尝试使用matchShapes()函数。但是matchShapes()函数用于比较两个轮廓。所以可以看到目标图像中的形状,形状与噪点blob混合,我不能分割目标形状和噪音。我想得到一个只包含目标形状而不是噪点blob的rotateRect。但是当我在目标图像中使用findContours时,我发现的轮廓将包括目标形状和噪音。因此我无法选择 找到目标形状。如何使用模板rotateRect来查找目标 在opencv中的rotateRect?你能分享你的想法。谢谢你的进步!!
答案 0 :(得分:1)
考虑到这种情况,您可以尝试根据颜色分割图像,因为您感兴趣的对象是黑色,噪点是蓝色。然后,您可以继续使用基于轮廓的方法来查找目标。您可以参考此链接以了解实施OpenCV:Watershed algorithm
您也可以参考此SO链接Coca-Cola can shape recognition。