如何比较Java中的两个图像?

时间:2011-07-21 07:22:51

标签: java image-processing

我在程序中默认有5个图像,我将允许用户从桌面选择图像。程序将确定5个图像之间的哪个图像是最接近用户图像的图像。

任何人都可以帮助我,让我开始这个想法吗?

1 个答案:

答案 0 :(得分:4)

您可以尝试使用SIFTSURF等功能提取算法。然后将提​​取的功能与数据库进行比较。您可以根据正确匹配的数量选择最佳匹配图像。

通常SIFT适用于2D对象,如标签图片或广告牌。如果您使用SIFT,在2D平面或比例上旋转不会有任何影响。 SURF应该是对SIFT的改进,但我没有太多的经验。

据说这些算法有点沉重。无论如何,如果你只匹配5个图像,那就不会有什么问题。(或者你可以先手动计算图像的描述符(特征)并存储它们。然后在运行时你所要做的就是得到描述符用户图像并进行比较)但是,如果您尝试匹配基本形状(如方形和圆形)的图像,使用方形检测或圆形检测可能是高效的性能。