java 图片相似度算法 那种跟准确_图片相似度判断-差异值哈希算法JAVA版

该博客介绍了如何使用Java实现差异值哈希算法(dHash)来判断图片的相似度。首先将图片缩放并灰度化,接着计算每行相邻像素的差值生成哈希值,最后通过计算两个哈希值的海明距离来评估图片的相似度。博主提供了完整的Java代码示例,并指出当海明距离小于5时,可认为图片相同。
摘要由CSDN通过智能技术生成

在网上找了好久都没有找到判断图片相似度的差异值哈希算法的JAVA版正确实现,自己手写了一个,提供给大家参考。

差异值哈希算法的流程(dHash)

图片缩放为9*8大小

将图片灰度化

差异值计算(每行相邻像素的差值,这样会生成8*8的差值,前一个像素大于后一个像素则为1,否则为0)

生成哈希值

package com.example.demo.hello;

import javax.imageio.ImageIO;

import java.awt.*;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.IOException;

/**

* 差异哈希算法

*/

public class DHashUtil {

/**

* 计算dHash方法

*

* @param file 文件

* @return hash

*/

private static String getDHash(File file) {

//读取文件

BufferedImage srcImage;

try {

srcImage = ImageIO.read(file);

} catch (IOException e) {

e.printStackTrace();

return null;

}

//文件转成9*8像素,为算法比较通

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值