当前位置: 首页 > news >正文

ImageHash - Python 图像哈希库

文章目录

    • 一、关于 ImageHash
      • 1、项目概览
      • 2、相关链接资源
    • 二、技术原理
    • 三、安装配置
    • 四、基础用法
    • 五、算法示例
      • 1、图标数据集测试
      • 2、艺术品数据集测试
    • 六、哈希存储与检索
      • 1、字符串转换
      • 2、数据库优化方案
    • 七、参考资源
      • 算法文献
      • 同类项目


一、关于 ImageHash

1、项目概览

Python 实现的图像哈希计算库,支持检测视觉相似图像。

与加密哈希(如 MD5/SHA-1)不同,当图像内容轻微变化时,生成的哈希值仍保持相似。

支持算法:

  • 均值哈希(Average hashing)
  • 感知哈希(Perceptual hashing)
  • 差分哈希(Difference hashing)
  • 小波哈希(Wavelet hashing)
  • HSV 色彩哈希(colorhash)
  • 抗裁剪哈希(Crop-resistant hashing)

2、相关链接资源

  • GitHub:https://github.com/JohannesBuchner/imagehash
  • PyPI:https://pypi.python.org/pypi/ImageHash
  • 作者:JohannesBuchner

二、技术原理

图像哈希通过分析图像结构特征生成指纹:

  • 亮度分析算法(均值/感知/差分/小波哈希):基于灰度信息
  • 色彩哈希算法:分析颜色分布和黑白比例(忽略位置信息)

三、安装配置

pip install imagehash

依赖库:Pillow、numpy、scipy.fftpack


四、基础用法

from PIL import Image
import imagehash# 生成哈希
hash1 = imagehash.average_hash(Image.open('test.png'))
hash2 = imagehash.average_hash(Image.open('peppers.png'))# 比较哈希
print(hash1 == hash2)  # False
print(hash1 - hash2)   # 汉明距离 33  

可通过调整 hashsize 参数提高敏感度,示例脚本 find_similar_images 可查找相似图片。


五、算法示例

1、图标数据集测试

7441 个 GitHub 图标测试结果:

  • phash 结果
  • dhash 结果
  • colorhash 结果
  • average_hash 结果

2、艺术品数据集测试

109259 件艺术品测试结果:

  • phash 结果
  • dhash 结果
  • colorhash 结果
  • average_hash 结果

六、哈希存储与检索

1、字符串转换

# 序列化与反序列化
hash_str = str(imagehash.phash(Image.open('test.png')))
restored_hash = imagehash.hex_to_hash(hash_str)

2、数据库优化方案

推荐使用 PostgreSQL + pg-spgist_hamming 扩展,教程见:imagehash-reverse-image-search-tutorial


七、参考资源

算法文献

  • aHash 算法
  • dHash 算法
  • wHash 算法
  • 抗裁剪哈希论文

同类项目

  • blockhash-python
  • OpenCV img_hash

伊织 xAI 2025-09-18(四)

http://www.dtcms.com/a/414985.html

相关文章:

  • 初识 Vue
  • 做网站销售水果上海建设安全协会网站
  • 正能量视频素材免费下载网站现代营销手段有哪些
  • Prj11-8088单板机C语言大综合(一)
  • 44.网络层
  • 肇庆网站制作软件郑州企业网络推广公司
  • ALLaM - 专为阿拉伯语设计的AI大语言模型
  • Docker Compose 停止命令对比
  • 北京网站推广优化更改wordpress端口
  • 优势的seo网站优化排名网站内容质量
  • Transformer 能做什么?—— 多领域应用全景
  • 认识RAG
  • 网站人员队伍建设薄弱怎么在自己做的网站上发视频教程
  • 摄影网站设计说明书东莞招聘信息最新招聘官方网
  • bevformer 安装 环境配置
  • 华为手机鸿蒙系统 4.2 / 4.3 安装谷歌框架的详细教程
  • 南昌网站开发爱网站长尾
  • 工业摄像头是应用于工业现场的高性能数字图像采集设备
  • 【08】VisionMaster入门到精通——卡尺工具和边缘查找
  • RRateLimiter的使用
  • 做网站html整合资源加强全市网站建设
  • 使用opencv来识别信用卡的号码
  • 【rabbitmq 高级特性】全面详解RabbitMQ重试机制
  • 在飞腾D2000/8平台下ubuntu内核添加WX1860和WX1820的驱动
  • docker相关进程的作用
  • 建设的网站如何让用户注册宁波发布最新通报
  • [LVGL] 中国象棋
  • 通过XShell使用Git三板斧
  • 【Git】远程操作 + 给命令配置别名 + 标签管理
  • 教学网站建设计划免费ppt下载网站