Java库来比较图像的相似性

F.P*_*F.P 52 java comparison image similarity

我花了很多时间研究一个允许我用Java比较图像的库.

我真的没有找到任何有用的东西,也许我的GoogleSearch技能不够高,所以我想我会问你们,如果你能指出我可以找到类似这样的方向.

基本上我想要做的是将两个图像相互比较,得到两个相似的值.像一个百分比左右.

我希望你们有一些我可以使用的东西,我不知道怎么写自己这样的东西......

PS:它不一定是Java,只是我的应用程序将运行的环境.

G. *_*ach 30

你可以看看关于SO本身的两个答案:这个是关于图像比较本身,提供C++中的东西的链接(如果我正确阅读),而这个提供了更广泛的方法的链接,一个在C中.

我建议从第二个链接开始,因为该讨论的链接将导致一些相关技术的实现代码,您可以自己"转换"为Java.

这是我的谷歌技能所能做到的最好,但没有Java - 抱歉.我希望这是一个很好的起点!

编辑: 这是你的问题的人用Java编写自己的比较类.我没有读过源代码.他明确表示他也找不到这个目的的Java库,所以这就是他自己写的原因.

哦,关于SO的这个问题可能是最好的链接,所有关于图像处理的Java库.希望其中有一个可以比较图像的相似性.

好的,最后编辑: Java Image Processing Cookbook显示了一个基本算法的Java实现,以确定两个图片之间的差异.它还有一封电子邮件,可以联系撰写该文章的人以及一系列参考文献.虽然没有图书馆.

阅读你的问题评论后编辑:除非你已经检查了上述所有链接,因为你想要的似乎是检查两个图像是否相等,我建议从Java Image Processing Cookbook开始(因为它有一个在Java中实现一个算法来检查相同的图像)和SO问题的最后一个链接.另外,检查PerceptualImageDiff和该项目的源代码(C++); 它听起来真的很漂亮 - 显然应该检查两个图像是否与人类视觉系统相同.


dar*_*mos 8

就在我的脑海中,OpenCV是一个很棒的图像处理库,但如果您只是想比较图像可能会有点过头了.如果是这样的话,我会选择ImageJ.

有人已经在这里使用OpenCV询问了如何做到这一点.

我会使用C++这一点,但如果你必须使用Java,还有这使得对OpenCV的Java包装,一个项目在这里.


İsm*_*kan 7

我使用此链接中的类来比较两个产品图像,结果很酷.实现它只是为了比较两个图像并不是很难,你只需要删除JAI和Swing等等.它将图像大小调整为300x300并返回差值,例如"1234".最大差值接近"11041",在链接中说明.做分工,你可以简单地得到百分比.如果有兴趣,我可以稍后在此发布修改后的代码.

结果很酷,但我仍然得到"数码相机照片",检测到类似于"电视照片".所以,我使用ImageJ来检测图片中的边缘.使用检测边缘操作,ImageJ将图像转换为边缘检测到的灰度图像.比我将两个边缘检测图像放在同一比较器中并将两个值相乘.结果变得更加准确.

获取边缘检测到的图像形式


归档时间:

查看次数:

71985 次

最近记录:

8 年 前