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++); 它听起来真的很漂亮 - 显然应该检查两个图像是否与人类视觉系统相同.
我使用此链接中的类来比较两个产品图像,结果很酷.实现它只是为了比较两个图像并不是很难,你只需要删除JAI和Swing等等.它将图像大小调整为300x300并返回差值,例如"1234".最大差值接近"11041",在链接中说明.做分工,你可以简单地得到百分比.如果有兴趣,我可以稍后在此发布修改后的代码.
结果很酷,但我仍然得到"数码相机照片",检测到类似于"电视照片".所以,我使用ImageJ来检测图片中的边缘.使用检测边缘操作,ImageJ将图像转换为边缘检测到的灰度图像.比我将两个边缘检测图像放在同一比较器中并将两个值相乘.结果变得更加准确.
归档时间: |
|
查看次数: |
71985 次 |
最近记录: |