java查找图片_用java查找图片中的图片?

本文探讨了在Java中查找图像中相同或相似图片的方法,包括使用强力方法进行像素比对以及使用互相关和特征描述符。介绍了如何通过欧氏距离计算颜色差异,并提供了比较图像和寻找子图像的代码示例。
摘要由CSDN通过智能技术生成

这个问题一般很难回答,因为人们通常对于重要的图像匹配有不同的要求。有些人可能想要搜索一个可能具有与它们提供的模板图像不同的大小或方向的图像,在这种情况下,需要缩放或旋转不变的方法。有各种选择,例如寻找类似的纹理,特征或形状,但我将专注于只寻找与模板图像完全相同位置的相似颜色的像素的方法。这似乎最适合您的例子,似乎属于

template matching类别。

可能的方法

在这种情况下,问题与cross-correlation和convolution的信号处理概念密切相关,cross-correlation和convolution通常使用FFT实现,因为它非常快(它的名字!)。这是您在linked到的方法中使用的,FFTW库可能在尝试这样的实现时可以使用,因为它具有用于Java的包装。使用互相关工作相当好,如this问题以及着名的waldo问题。

另一个选择是不要使用所有像素进行比较,而只是使用更容易找到的特征,更有可能是唯一的。这将需要像SIFT,SURF或许多others之一的特征描述符。您将需要查找两个图像中的所有功能,然后查找与模板图像中具有相似位置的功能。有了这个方法,我建议你使用JavaCV。

您提到的随机猜测方法可以在有可能的情况下快速运行,但不幸的是它通常不适用,因为它只对某些在正确位置附近产生紧密匹配的图像组合有用。

除非您使用外部库,否则Java中最简单的方法将是我称之为强力方法,尽管它有点慢。强力方法只需要搜索整个图像,使其与正在寻找的图像最匹配的子区域。我会进一步解释这个方法。首先,您需要定义如何确定两个相等大小的图像之间的相似度。这可以通过对要对RGB值之间的差异进行定义的像素颜色之间的差异相加来完成。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值