【PHash】更懂人眼的感知哈希

PHash是一种用于重复图识别的低复杂度算法,它利用DCT变换去掉高频信息并进行二值化处理。通过只保留低频信息,PHash能够实现对肉眼看似相同的图片进行有效识别。DCT变换将图像转化为频谱图,其中低频信息对应连续色块,高频信息对应色块边界。二值化过程中,中值作为基准值通常比均值更鲁棒,能确保0和1分布均匀,提高特征空间的有效性。
摘要由CSDN通过智能技术生成

转载请标名出处

背景

在重复图识别领域,对于识别肉眼相同图片,PHash是很有用的,而且算法复杂度很低。它抓住了 ” 人眼对于细节信息不是很敏感 “ 的特性,利用DCT变换把高频信息去掉,再加上合适&简单的二值化方式,使得算法效果比较鲁棒。

PHash算法

  • 流程图如下:
    在这里插入图片描述

  • 附上python代码:

 def phash(image, hash_size=8, highfreq_factor=4):
     import scipy.fftpack
     img_size = hash_size * highfreq_factor
     image = image.convert("L").resize((img_size, img_size), Image.ANTIALIAS)// 1、【预处理】转灰度图,resize
     pixels = numpy.asarray(image)
     dct = scipy.fftpack.dct(scipy.fftpack.dct(pixels, axis=
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值