PHash算法即感知哈希算法/Perceptual Hash algorithm,计算基于低频的均值哈希.对每张图像生成一个指纹字符串,通过对该字符串比较可以判断图像间的相似度.
PHash算法原理
将图像转为灰度图,然后将图片大小调整为32*32像素并通过DCT变换,取左上角的8*8像素区域。然后计算这64个像素的灰度值的均值。将每个像素的灰度值与均值对比,大于均值记为1,小于均值记为0,得到64位哈希值。
PHash算法实现
将图片转为灰度值
将图片尺寸缩小为32*32
resize(src, src, Size(32, 32));
DCT变换
Mat srcDCT;
dct(sr
2023-01-05 13:12:46
122KB
AS
c
c++
1