图片识别——差异哈希算法

dHash算法是一种图片识别的感知哈希算法,通过比较图片像素的亮度差异生成指纹,对缩放、亮度等变化具有鲁棒性。文章介绍了算法步骤,包括尺寸缩小、简化色彩、计算差异值和获取指纹,并指出其在处理图片梯度变化上的优势。提供了一种简单的Java实现方式。
摘要由CSDN通过智能技术生成

    差异哈希算法(Different Hash Algorithms,dHash),像aHash和pHash一样,dHash易于实现,相比于它的简单,其实它的识别更为准确。作为一种感知算法的实现,dHash比aHash相近,但比aHash效果更好。aHash关注于平均值,pHash关注频率模式,dHash则基于渐变。下面介绍下dHash算法的工作原理。

算法步骤

  1. 缩小尺寸。最快速去掉高频和细节的办法就是缩小民族教育。在这里,收缩到9*8的大小,以便它有72的像素点(之后会解释为什么这样)。通过忽略尺寸和纵横比,不管图片如何伸缩,该hash都能匹配相似的图片。
  2. 简化色彩。转化为灰度图。把缩放后的图片转化为256阶的灰度图。将72个像素转变为72个颜色(为达到最佳效果,可以在缩放尺寸前简化色彩,或者缩放和简化色彩同时进行)
  3. 计算差异值。dHash算法工作在相邻像素之间,这标识了相对的渐变方向。这样每行9个像素之间产生了8个不同的差异,一共8行,则产生了64个差异值。
  4. 获取指纹。如果左边的像素比右边的更亮,则记录为1,否则为0(这里用1代表p[x]<p[x+1],设置位从左及右,从上及下的大边)
    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值