Python实现图像哈希算法——感知哈希算法

208 篇文章 ¥39.90 ¥99.00
本文介绍了Python实现感知哈希算法的过程,包括加载图片、转换为灰度图、计算平均灰度、生成哈希值以及计算汉明距离以评估图像相似度。该算法适用于图像处理、搜索和去重。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Python实现图像哈希算法——感知哈希算法

感知哈希算法(Perceptual Hash Algorithm)是一种可以对图像进行哈希操作的算法,简称为pHash。该算法通过将图片压缩、缩小再转化为灰度图,然后计算出每个像素点的灰度平均值,得到一个64位的哈希值,表示了该图片的特征信息。通过比较两幅图片的哈希值之间的汉明距离来确定图片的相似程度。

下面我们就来实现这个算法,让它可以应用于实际的图片处理中。

代码实现:

首先,需要导入所需的库:cv2、numpy、hashlib等。

import cv2
import numpy as np
import hashlib

接下来,我们定义一个函数phash,该函数用于实现感知哈希算法。该函数接收一个图片路径作为输入,并返回该图片的64位哈希值。

def phash(img_path):
# 1. 加载图片
img = cv2.imread(img_path)
# 2. 缩小图片并转换为灰度图
img = cv2.resize(img, (8, 8))
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 3. 计算灰度平均值
avg_gray = np.mean(gray)
# 4. 比较像素灰度值与平均值,生成哈希值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值