我试图在OpenCV中拍摄两张图片,两张图片都是用MS Paint或简单的绘图应用程序绘制的,并衡量它们之间的相似度。我已经熟悉了一些OpenCV图像处理方法,但到目前为止我尝试过的方法还没有效果。
我到目前为止所做的一直是:
- 最简单的方法 - 逐个像素地比较两个图像。这很容易编码,但缩放/旋转不变。解决方案需要能够识别不完美的版本
- 豪斯多夫距离。这似乎是针对这个问题做好的,我读了几个关于使用它的堆栈溢出帖子,但它采用了轮廓,我不知道如何从一个图像中提取轮廓并将它们与另一个图像中的轮廓相匹配。其中一张图片可能是空的,或者它们可能完全不同。
- 特征提取/匹配 - 到目前为止,我尝试过的方法是使用特征检测器(ORB,AKAZE)与基于Flann的匹配器配对,到目前为止已经得到了极差的结果。我目前正在将此更改为SIFT / SURF和蛮力,但看起来效果并不好。
我可以尝试哪些其他可能的计算机视觉算法?我附上了两个代表我想要比较的样本图像(我在处理前对图像进行了灰度处理,因此颜色不是一个因素)。
谢谢!