Python编程:图像相似度均值哈希算法实现

Python编程:图像相似度均值哈希算法实现

在计算机视觉领域,图像相似度是一个很重要的概念。图像相似度指的是两幅图像之间的相似程度,从而可以用于图像检索、图像分类等任务中。其中,哈希算法是一种比较常用的方法之一。本文将介绍一种基于均值哈希算法实现的图像相似度计算方法,并提供完整的Python源代码。

  1. 均值哈希算法简介

均值哈希算法(Mean Hash)是一种基于平均灰度值的哈希算法。具体来说,均值哈希算法包括以下几个步骤:

(1) 将原始图像缩小为8x8大小的图片。

(2) 将缩小后的图片转换为灰度图像,并计算所有像素点的灰度平均值mean。

(3) 遍历每个像素点,如果像素点的灰度值大于平均值mean,则将该像素点的二值化结果设为1,否则设为0。

(4) 将所有像素点的二值化结果串联起来,得到一个64位的哈希值。

  1. 图像相似度计算方法

得到两幅图像的哈希值后,可以通过比较它们的汉明距离来计算它们之间的相似度。具体来说,汉明距离指的是两个等长字符串之间对应位置上不同字符的个数。如果两个字符串完全一致,则它们的汉明距离为0;如果两个字符串完全不同,则它们的汉明距离为字符串长度。

根据汉明距离计算公式,图像相似度score可以通过以下方式计算:

score = (64 - hamming_distance) / 64

其中,hamming_distance为两幅图像的哈希值的汉明距离。

  1. 完整代码实现

下面是基于Python实现的图

Python 基于哈希和直方图的视频图像处理 图像处理 一、导入库 import cv2 import numpy as np import matplotlib.pyplot as plt import os from PIL import Image os.chdir('视频所在位置') 二、均值哈希算法处理图像 def aHash(img): plt.imshow(img) plt.axis('off') plt.show() img=cv2.resize(img,(8,8)) plt.imsh 阅读详情

相关推荐

灰度直方图图像相似度原理与工程避坑指南

图像相似度是计算机视觉的基础能力,但其本质常被误解为‘内容一致’,实则多为‘统计分布接近’。灰度直方图作为最轻量的像素级统计特征,通过量化0–255灰度级的像素频次,实现对平移、旋转的鲁棒性,却天然丢失空间结构信息——这正是语义鸿沟的根源。其核心价值在于快速粗筛、资源受限场景和UI回归测试中的大框架比对,而非细粒度识别或语义理解。归一化方式、插值策略、灰度转换公式(如加权Y=0.299R+0.587G+0.114B)等工程细节,直接决定结果可信度。本文聚焦直方图这一经典方法,结合C#实操,揭示从原理到落地的

baochuanying9531的博客 505

用CLIP和GAN实现文本语义引导的生成与优化闭环

在图像生成与多模态内容创作中,如何让模型真正理解文本描述并生成匹配的画面,是提升可控性的关键。CLIP作为图文对齐模型,能将图像与文本映射到同一语义空间;而GAN则擅长从潜在向量合成逼真图像。将两者结合,相当于给生成器加装了一个能听懂语言反馈的语义控制器:通过CLIP计算图文相似度并作为优化目标,迭代更新潜变量,即可在不重训大模型的前提下实现文本引导的图像编辑与风格化。这种语义引导机制不仅广泛用于图像生成、多模态检索、模型评测,也为低成本接入现有生成器提供了工程路径。理解CLIP-GAN的闭环协作,正是搭建

weixin_34054866的博客 397

基于CLIP与FAISS的语义图像搜索实战

语义图像搜索是一种将自然语言描述与视觉内容跨模态对齐的检索技术,其核心在于利用视觉语言模型(如CLIP)生成统一嵌入空间,并通过高效向量检索引擎(如FAISS)实现毫秒级相似性匹配。该技术摆脱了传统关键词或人工标签依赖,具备零样本泛化能力,可精准捕捉‘氛围’‘情绪’‘风格’等抽象语义。典型应用场景包括数字资产管理、设计素材库构建、电商图文检索及AIGC内容组织。本文聚焦CLIP文本-图像联合嵌入与FAISS近似最近邻搜索的工程落地,详解预处理规范、提示工程技巧及索引优化策略,助力开发者快速构建高可用、低延迟

weixin_30825581的博客 436

2018网易CV算法岗笔试复盘:考点拆解与备考路线图

计算机视觉算法工程师的校招笔试,历来是考察数学基础与工程能力的试金石。机器学习与深度学习核心原理的掌握程度,往往决定了候选人在大厂筛选中的起跑线。从经典图像处理算法到卷积神经网络,从公式推导到代码落地,一套高质量的笔试卷不仅检验知识储备,更暴露思维盲区。理解SVM对偶推导、Canny边缘检测流程、反向传播矩阵形式等基础概念,是应对技术面试的基本功。在实际业务场景中,目标检测精度与速度的权衡、数据规模与模型选择的关系,都要求候选人具备系统化的分析框架。针对2018年网易校招计算机视觉岗位笔试卷的详细拆解,覆盖

weixin_30788619的博客 431

BFS最小步数模型:无权图最短路径的工程实践

在算法工程中,'最短路径'常被泛化理解为带权图优化问题,但当所有操作代价相等时——即构成无权图——BFS成为唯一能严格保证最少步数的确定性搜索方法。其核心原理源于图论中的层序遍历与状态空间建模,通过系统性扩展确保首次抵达即最优。这一技术不仅支撑迷宫求解、单词接龙等经典场景,更广泛应用于AGV调度、游戏AI寻路和工业缺陷定位等真实系统,提供可验证的性能下界与强确定性保障。结合状态表示、哈希去重与双向优化等工程细节,BFS从教学模板升维为可落地的底层思维工具。

weixin_30411819的博客 407

视频封面与标题跨模态对齐:构建用户注意力驱动的推荐系统

跨模态推荐系统是现代内容平台的核心技术,其本质在于解决视觉与文本两种异构信号的语义对齐问题。图像作为像素矩阵关注局部显著性,标题作为离散词序列强调语义完整性,二者天然存在表征鸿沟。通过双塔架构与交叉注意力机制,可在毫秒级实现图-文联合表征,使模型理解‘用户看到封面+标题组合时最先激活的认知节点’。该技术显著提升冷启动能力、抗噪声鲁棒性与结果可解释性,广泛应用于短视频、在线教育、电商主图推荐等场景。本文聚焦YouTube风格的缩略图与标题协同建模,提供从预处理、特征加权、模态对齐到服务部署的端到端实践路径。

weixin_30430169的博客 460

云从科技2020校招算法笔试:考点拆解与备战策略

算法笔试是AI公司筛选算法工程师的重要环节,其考察内容通常覆盖数据结构、机器学习、深度学习与数学基础。从KMP字符串匹配到动态规划,从KNN、SVM到交叉熵损失函数,这些基础知识点背后体现的是模型设计、特征处理与工程实现的综合能力。理解算法原理比记忆代码更重要,例如KMP的next数组计算、快排的退化条件、softmax的数值稳定性,都是笔试与面试中的高频考点。对于准备云从科技等AI公司校招的候选人,掌握这些核心知识并熟悉任务调度等典型编程题,能有效提升笔试通过率。本文围绕云从科技2020校招算法笔试题,系

weixin_33884611的博客 421

AI工程化三大支柱:记忆设计、Agent架构与多模态对齐

大语言模型已从‘能回答’迈向‘可信赖’阶段,其核心瓶颈不再在于参数规模,而在于能否构建具备时间感知的记忆系统、状态可控的智能体(Agent)框架,以及视觉与语言语义空间深度对齐的多模态理解能力。记忆不是简单缓存,而是分层、可编程、带时效约束的结构化存储;Agent不是Prompt链式调用,而是受契约约束、可观测、可回溯的状态机系统;多模态亦非特征拼接,需通过知识图谱与跨模态嵌入实现拓扑级语义对齐。这些技术共同支撑金融、医疗、工业等高可靠性场景下的AI落地——尤其在用户上下文保持、复杂流程编排与图文联合推理等

chouchijiao8952的博客 417

星图识别算法工程实践:从三角形匹配到鲁棒姿态解算

星图识别是计算机视觉与模式识别领域的一个经典问题,其核心原理是通过提取星点间的几何特征(如角距),与预先构建的导航星库进行匹配,从而确定观测载体在惯性空间中的姿态。这项技术的核心价值在于为航天器、无人机等平台提供不依赖外界信号、自主可靠的高精度姿态基准,是深空探测与自主导航系统的关键环节。其典型应用场景包括卫星姿态确定、航天器自主导航以及天文观测设备的指向校准。在实际工程中,算法的鲁棒性与实时性面临严峻挑战,例如需要处理星点提取误差、星等测量噪声以及宇宙射线干扰等。本文以全国研究生数学建模竞赛题为引,深入探

weixin_34160277的博客 424

Python:实现图像相似度平均值哈希算法(附完整源码)

Python:实现图像相似度平均值哈希算法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 535

Python如何比较两张图片的相似度

现在比较图片3.jpg和图片4.jpg的相似度,我们人为的去评判这两张图肯定是存在巨大差异的,现在交给算法来进行相似度比较,结果会怎么样呢?而本文要介绍的方法,使用python对比两张图片,以均值哈希算法,差值哈希算法,感知哈希算法,三直方图算法以及单通道的直方图,从这几个相似度纬度来进行相似度比较,更全面的比较两张图片的相似度。文中提到的方法,解决图片之间的相似度,还是可以轻松应对的。利用多纬度的相似度算法得到的结果和预期的一样,3.jpg和4.jpg还是存在差异的。

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 4436

Python 感知哈希算法详解及源码

它通过将输入的图像或音频转化成一个固定大小的哈希值(通常是一个二进制串或十六进制数),以实现对输入的内容进行相似度比较。它通过将输入的图像或音频转化成一个固定大小的哈希值(通常是一个二进制串或十六进制数),以实现对输入的内容进行相似度比较。它通过将输入的图像或音频转化成一个固定大小的哈希值(通常是一个二进制串或十六进制数),以实现对输入的内容进行相似度比较。它通过将输入的图像或音频转化成一个固定大小的哈希值(通常是一个二进制串或十六进制数),以实现对输入的内容进行相似度比较。

希望我的博客,能帮上你解决学习中工作中所遇到的问题 623

【信息科学与工程学】【数据科学】数据科学领域-第十一篇 数据集成算法01

​​降低维护成本​​:通过抽象通用流程(如),当需要修改故障注入逻辑(如更换混沌工具)时,只需修改一处代码,无需修改所有测试用例;​​提升扩展性​​:通过参数化故障场景(如),可快速生成新的故障用例(如针对新服务的延迟故障),适应系统迭代需求;​​增强场景真实性​​:通过组合混沌操作(如),模拟真实生产环境中的复杂故障链(如“网络延迟+服务宕机”),更准确地验证系统韧性;​​提高分析效率​​:通过自动化结果分析(如),快速获取MTTR、错误率等关键指标,减少人工分析时间。

weixin_49199313的博客 953

Qt上位机实战:5步搞定STM32 IAP固件升级(附拖拽文件处理技巧)

本文详细介绍了如何使用Qt开发STM32 IAP固件升级上位机。通过五个核心步骤,包括理解IAP机制、搭建Qt环境、实现拖拽文件加载、封装串口通信以及设计可靠通信协议,帮助开发者快速构建一个稳定、易用且支持图形化操作的固件升级工具,显著提升嵌入式产品开发与维护效率。

ss78901的博客 1079

告别云端依赖:手把手教你在Windows 10/11上离线部署WhisperDesktop(含模型下载避坑指南)

本文详细介绍了如何在Windows 10/11上离线部署WhisperDesktop,包括硬件要求、模型下载、环境配置和实战应用。通过本地部署,用户可以实现高效的语音转文字功能,无需依赖云端服务,特别适合注重数据隐私和需要离线工作的场景。

weixin_33736048的博客 322

手把手教你用示波器抓取MIPI D-PHY波形:从LP11到HS Burst的完整信号解析

本文详细介绍了使用示波器精准捕获MIPI D-PHY信号的关键技巧,包括探头选择、示波器参数设置、信号状态解析及高级触发配置。通过实战案例和波形分析,帮助工程师快速识别从LP11到HS Burst的各种信号状态,解决常见的信号完整性问题,提升调试效率。

weixin_30471561的博客 561

Windows服务器SSL漏洞修复实战:如何一键禁用TLS 1.0/1.1避免SWEET32攻击

本文提供了Windows服务器修复SWEET32漏洞的实战指南。通过组策略编辑器,详细讲解如何一键禁用不安全的TLS 1.0/1.1协议,并优化密码套件顺序,以消除由3DES等弱加密算法带来的安全风险。文章还涵盖了应对SQL Server等应用兼容性挑战的解决方案,以及企业级批量部署的脚本化方法,帮助管理员系统性地提升服务器TLS/SSL安全配置。

weixin_29310631的博客 246

代号OneNET02 STM32+ESP8266 WIFI系列-第2节-STM32单片机通过ESP8266连接WIFI访问OneNET OTA服务器实现SOTA远程程序升级

第2节-STM32单片机通过ESP8266连接WIFI访问OneNET OTA服务器实现SOTA远程程序升级,这一节主要是实现通过OneNET OTA服务器将需要更新的程序远程下载到STM32单片机,这一节主要是引导程序和应用程序的讲解。

weixin_44862509的博客 1904

仓储控制系统(WCS)设计

WCS系统设计方法

cetclyb的博客 2万+

SAP_SD模块深度解析SAP信用检查中的“未清数量”取值逻辑

确认数量 vs 订单数量:如果系统配置了可用性检查(ATP),并且订单只确认了部分数量,信用检查通常只占用已确认数量的额度(具体取决于信用组的配置)。在SAP中,未清订单数量的计算并非简单读取订单行项目的目标数量(VBAK-KWMENG),而是基于**计划行(Schedule Lines)**层级来汇总的。状态的转换点:当交货单创建(VL01N)并保存时,这部分数量对应订单的“未清订单数量”减少,“未清交货数量”增加。业务人员眼中的未清数量很简单:“我卖了100个,发了30个,未清就是70个”。

我小时候很黑的博客 313

【RT-DETR有效改进】为什么YOLO版本的RT-DETR训练模型不收敛精度差的问题

本文的内容同样为本专栏的前期预热文章,文章主要解释一下为什么有的人跑ultralytics仓库的RT-DETR精度很差,模型不收敛,mAP异常的情况。为了验证这一情况我也是跑了多个实验,从多个数据集出发,100-500的数据集我跑了大概5个数据集,1000的我跑了二个,2000的我跑了一个,4000的跑了一个,同时其中一些版本我也用了不同的batch_size来出发验证精度异常的情况。

Snu77的博客 9763

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: Python实战:整合多列日期数据为单一数据列
下一篇: 使用GAIN模型进行缺失数据填充(Python实现)
普通网友
博客等级 码龄4年 1009粉丝 1545原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值