我想比较ORB,SIFT,BRISK,AKAZE等,以找出最适合我的特定图像集的图像。我对图像的最终对齐很感兴趣。
有标准的方法吗?
我正在考虑这种解决方案:采用每种算法,提取特征,计算单应性并转换图像。
现在,我需要检查哪个变形图像更接近目标模板。
也许我可以对目标模板和变换后的图像重复该过程,并寻找最接近于身份的单应性矩阵,但是我不确定如何准确地计算出这种接近度。我不确定应该使用哪种算法进行检查,我想应该是固定的。
或者我可以使用感知差异哈希(dHash)在图像之间进行一些像素级比较。但是我怀疑下面的汉明距离对于将几乎相同的图像可能不是很好。
我可以模糊它们并做一个简单的减法,但是听起来很弱。
谢谢您的建议。
编辑:我有数千张图像要测试。这些是真实世界的图片。图像是不同类型的文档,其中一些具有很多图形,其他大多数是几何图形。我大约有30种不同的模板。我怀疑不同的模板在不同的算法下效果最佳(我事先知道模板,所以我可以选择最好的模板)。
现在,我使用cv2.matchTemplate在转换后的图像中找到一些参考色块,并将它们的位置与参考色块进行比较。它可以工作,但是我想对此进行改进。
答案 0 :(得分:0)
从您的问题来看,似乎任务不是要比较特征提取器本身,而是要找出哪种类型的特征提取器可以实现最佳对齐。
为此,您需要做两件事:
您建议的算法是进行对齐的好方法。要检查准确性,您需要知道什么是好的对齐方式。
您可以从已知的对齐方式开始。知道两个图像之间对齐的最简单方法是您自己进行逆运算。例如,从一张图像开始,将其旋转一定量,平移/裁剪/缩放或组合所有这些操作。知道如何获取图像后,就可以获得理想的对齐方式(撤消操作的对齐方式)。
然后,具有理想的对齐方式和算法生成的对齐方式,您可以使用一个度量标准来评估其准确性,具体取决于您对“良好对齐方式”的定义。