感知哈希算法——找出相似的图片

简介:

参考Neal Krawetz博士的这篇文章, 实现这种功能的关键技术叫做"感知哈希算法"(Perceptual Hash Algorithm), 意思是为图片生成一个指纹(字符串格式), 两张图片的指纹越相似, 说明两张图片就越相似. 但关键是如何根据图片计算出"指纹"呢? 下面用最简单的步骤来说明一下原理:

第一步 缩小图片尺寸

        将图片缩小到8x8的尺寸, 总共64个像素. 这一步的作用是去除各种图片尺寸和图片比例的差异, 只保留结构、明暗等基本信息.

        

第二步 转为灰度图片

         将缩小后的图片, 转为64级灰度图片.

        

第三步 计算灰度平均值

         计算图片中所有像素的灰度平均值

第四步 比较像素的灰度

        将每个像素的灰度与平均值进行比较, 如果大于或等于平均值记为1, 小于平均值记为0.

第五步 计算哈希值

         将上一步的比较结果, 组合在一起, 就构成了一个64位的二进制整数, 这就是这张图片的指纹.

第六步 对比图片指纹

        得到图片的指纹后, 就可以对比不同的图片的指纹, 计算出64位中有多少位是不一样的. 如果不相同的数据位数不超过5, 就说明两张图片很相似, 如果大于10, 说明它们是两张不同的图片.

http://www.cnblogs.com/technology/archive/2012/07/12/Perceptual-Hash-Algorithm.html



本文转自 stock0991 51CTO博客,原文链接:http://blog.51cto.com/qing0991/1909259


相关文章
|
6月前
|
算法 测试技术 定位技术
滴滴出行 地图感知算法 面经
滴滴出行 地图感知算法 面经
35 0
|
6天前
|
机器学习/深度学习 算法 计算机视觉
蔚来感知算法岗面经
蔚来感知算法岗面经
53 0
|
6天前
|
JavaScript 算法 前端开发
JS懒加载 -- 适用于商城主页商品懒加载、图片懒加载,算法简单、易于理解、萌新福音
JS懒加载 -- 适用于商城主页商品懒加载、图片懒加载,算法简单、易于理解、萌新福音
24 0
|
机器学习/深度学习 传感器 编解码
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
以视觉为中心的俯视图(BEV)感知最近受到了广泛的关注,因其可以自然地呈现自然场景且对融合更友好。随着深度学习的快速发展,许多新颖的方法尝试解决以视觉为中心的BEV感知,但是目前还缺乏对该领域的综述类文章。本文对以视觉为中心的BEV感知及其扩展的方法进行了全面的综述调研,并提供了深入的分析和结果比较,进一步思考未来可能的研究方向。如下图所示,目前的工作可以根据视角变换分为两大类,即基于几何变换和基于网络变换。前者利用相机的物理原理,以可解释性的方式转换视图。后者则使用神经网络将透视图(PV)投影到BEV上。
史上最全 | BEV感知算法综述(基于图像/Lidar/多模态数据的3D检测与分割任务)
|
9月前
|
机器学习/深度学习 编解码 算法
【阿里云OpenVI-视觉生产系列之图片上色】照片真实感上色算法DDColor ICCV2023论文深入解读
图像上色是老照片修复的一个关键步骤,本文介绍发表在 ICCV 2023 上的最新上色论文 DDColor
2027 10
【阿里云OpenVI-视觉生产系列之图片上色】照片真实感上色算法DDColor ICCV2023论文深入解读
|
12月前
|
资源调度 算法
基于压缩感知和KSVD的图像去噪算法matlab仿真
基于压缩感知和KSVD的图像去噪算法matlab仿真
148 0
|
机器学习/深度学习 传感器 算法
基于压缩感知理论的窄带信号DOA估计算法研究附matlab代码
基于压缩感知理论的窄带信号DOA估计算法研究附matlab代码
|
传感器 Rust 算法
HaaS Python 2.1 版本更新上线 在线热更新+智能行为感知算法+更多开发板/API+精彩开发者活动 快来体验
HaaS Python 2.1 版本更新上线 在线热更新+智能行为感知算法+更多开发板/API+精彩开发者活动 快来体验
132 0
|
算法
基于临近图片相似性分析的图片碎片拼接算法matlab仿真
基于临近图片相似性分析的图片碎片拼接算法matlab仿真
265 0
基于临近图片相似性分析的图片碎片拼接算法matlab仿真
|
存储 缓存 算法
m基于DCAR编码感知的网络路由发现算法matlab仿真
m基于DCAR编码感知的网络路由发现算法matlab仿真
149 0
m基于DCAR编码感知的网络路由发现算法matlab仿真