Java中的图形相似度的算法

笔者前几天公司给我说让我做图形比对,一开始我打算调用C#的dll,因为java这方面是弱项。后来项目经理说不用那么麻烦,只是给个参考而已,最终的判断是交给客户进行最终判定的。我就改用使用java中简单对比。因为要使用多种方法进行判定,尽可能给用户多一点参考条件,所以将他打包成jar包。先说说各个方法把,

1.直接算像素比觉得算起来太慢了,然后做个判断几个点是否一样,如果不一样,就没有对比的必要了。缺点也很多:效率很低,当你图片变变颜色,极有可能会得出完全不相似的结果

2.之后参考网上的算汉明距离,编写算法后发现,如果是两面差不多的图片,基本可以识别了,像素不一样,但不能旋转,旋转勒也不相似,但如果给人物换个背景,颜色依旧识别不出来,相对于像素比来说已经是非常快了

3.之后莫名的想用MD5去做一下,发现根本不靠谱!!!!!!也就是一样的图片可以这么玩剩下都是差评

4之后用了下直方图滤波,给个好评,这是相对于其他方法,较为精确的一种计算,如果你们只是需要一个工具类的话可以参考我写的这个 

5.还用一种就是指纹算法,咋说那,只能说一般,但还行,

最后得出一个结论,java图片对比真的很弱,如果要用c++估计早弄好了,关键是还算的不咋准确,这是最蛋疼,如果要用精确的,大家还是考虑下跨语言开发做图形对比吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值