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

腾讯云网站建设视频教程西亚网站建设科技

腾讯云网站建设视频教程,西亚网站建设科技,福建省建设执业资格注册中心网站,江门网站推广技巧方法图像相似度比较哈希算法: 什么是哈希#xff08;Hash#xff09;#xff1f; • 散列函数#xff08;或散列算法#xff0c;又称哈希函数#xff0c;英语#xff1a;Hash Function#xff09;是一种从任何一种数据中创建小 的数字“指纹”的方法。散列函数把消息或数…图像相似度比较哈希算法: 什么是哈希Hash • 散列函数或散列算法又称哈希函数英语Hash Function是一种从任何一种数据中创建小 的数字“指纹”的方法。散列函数把消息或数据压缩成摘要使得数据量变小将数据的格式固定 下来。该函数将数据打乱混合重新创建一个叫做散列值hash valueshash codeshash sums 或hashes的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。 • 通过哈希算法得到的任意长度的二进制值映射为较短的固定长度的二进制值即哈希值。此外 哈希值是一段数据唯一且极其紧凑的数值表示形式如果通过哈希一段明文得到哈希值哪怕只 更改该段明文中的任意一个字母随后得到的哈希值都将不同。 • 哈希算法是一个函数能够把几乎所有的数字文件都转换成一串由数字和字母构成的看似乱码的 字符串。 哈希函数的特点 哈希函数作为一种加密函数其拥有两个最重要特点 不可逆性。输入信息得出输出的那个看似乱码的字符串哈希值非常容易但是从输出的字符 串反推出输入的结果却是却非常非常难。输出值唯一性和不可预测性。只要输入的信息有一点点区别那么根据哈希算法得出来的输出值 也相差甚远。 哈希算法的种类 哈希算法是一类算法的总称共有三种 均值哈希算法aHash差值哈希算法dHash感知哈希算法pHash 汉明距离 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。 均值哈希算法 步骤 缩放图片缩放为8*8保留结构除去细节。灰度化转换为灰度图。求平均值计算灰度图所有像素的平均值。比较像素值大于平均值记作1相反记作0总共64位。生成hash将上述步骤生成的1和0按顺序组合起来既是图片的指纹hash。对比指纹将两幅图的指纹对比计算汉明距离即两个64位的hash值有多少位是不一样的不 相同位数越少图片越相似。 差值哈希算法 差值哈希算法相较于均值哈希算法前期和后期基本相同只有中间比较hash有变化。 步骤 缩放图片缩放为8*9保留结构除去细节。灰度化转换为灰度图。求平均值计算灰度图所有像素的平均值。比较像素值大于后一个像素值记作1相反记作0。本行不与下一行对比每行9个像素 八个差值有8行总共64位生成hash将上述步骤生成的1和0按顺序组合起来既是图片的指纹hash。对比指纹将两幅图的指纹对比计算汉明距离即两个64位的hash值有多少位是不一样 的不相同位数越少图片越相似。 感知哈希算法 均值哈希算法过于严格不够精确更适合搜索缩略图为了获得更精确的结果可以选择感知哈希 算法它采用的是DCT离散余弦变换来降低频率的方法。 步骤 缩小图片32 * 32是一个较好的大小这样方便DCT计算转化为灰度图把缩放后的图片转化为灰度图。计算DCT:DCT把图片分离成分率的集合缩小DCTDCT计算后的矩阵是32 * 32保留左上角的8 * 8这些代表图片的最低频率。计算平均值计算缩小DCT后的所有像素点的平均值。进一步减小DCT大于平均值记录为1反之记录为0.得到信息指纹组合64个信息位顺序随意保持一致性。最后比对两张图片的指纹获得汉明距离即可。 代码实现均值哈希算法和差值哈希算法 import cv2 import numpy as np#均值哈希算法 def aHash(img):#缩放为8*8imgcv2.resize(img,(8,8),interpolationcv2.INTER_CUBIC)#转换为灰度图graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)#s为像素和初值为0hash_str为hash值初值为s0hash_str#遍历累加求像素和for i in range(8):for j in range(8):ssgray[i,j]#求平均灰度avgs/64#灰度大于平均值为1相反为0生成图片的hash值for i in range(8):for j in range(8):if gray[i,j]avg:hash_strhash_str1else:hash_strhash_str0 return hash_str#差值感知算法 def dHash(img):#缩放8*9imgcv2.resize(img,(9,8),interpolationcv2.INTER_CUBIC)#转换灰度图graycv2.cvtColor(img,cv2.COLOR_BGR2GRAY)hash_str#每行前一个像素大于后一个像素为1相反为0生成哈希for i in range(8):for j in range(8):if gray[i,j]gray[i,j1]:hash_strhash_str1else:hash_strhash_str0return hash_str#Hash值对比 def cmpHash(hash1,hash2):n0#hash长度不同则返回-1代表传参出错if len(hash1)!len(hash2):return -1#遍历判断for i in range(len(hash1)):#不相等则n计数1n最终为相似度if hash1[i]!hash2[i]:nn1return nimg1cv2.imread(lenna.png) img2cv2.imread(lenna_noise.png) hash1 aHash(img1) hash2 aHash(img2) print(hash1) print(hash2) ncmpHash(hash1,hash2) print(均值哈希算法相似度,n)hash1 dHash(img1) hash2 dHash(img2) print(hash1) print(hash2) ncmpHash(hash1,hash2) print(差值哈希算法相似度,n) 运行结果 输入 输出 图像相似度比较哈希算法 三种算法的比较 • aHash均值哈希。速度比较快但是常常不太精确。 • pHash感知哈希。精确度较高但是速度方面较差一些。 • dHash差值哈希。精确度较高且速度也非常快。 • 均值哈希本质上是对颜色的比较 • 感知哈希由于做了 DCT 操作本质上是对频率的比较 • 差值哈希本质上是基于渐变的感知哈希算法。
http://wiki.neutronadmin.com/news/195067/

相关文章:

  • 长沙 做网站免费网站软件下载安装
  • 网站做代码图像显示不出来的个人网站注册平台钱
  • 访问国外网站太慢国内最大c2c网站
  • 黄山建设厅官方网站呼市网站建设
  • 门户网站建设要点邯郸信息港首页
  • 门户网站平台建设的经费网站备案的核验单
  • 泰安市网站建设公司以公司名称为后缀的邮箱
  • 网站开发费用说明前端毕业设计题目可以做哪些
  • 如何设置网站兼容性哪方面网站
  • 做网站如何赢利的网站定制一般价格多少
  • 有哪些做调查的网站可以赚钱方法数码做的网站怎么样
  • 高端企业网站制作logo一键生成器免费版下载
  • 深圳西丽网站建设公司济南软件网站建设
  • 哪个网站是专门做兼职的乐山网站制作设计公司
  • 使用网站效果图网站恶意注册
  • aso.net 网站开发wordpress修改谷歌
  • 上传wordpress到服务器网站的优化是什么意思
  • 昆明建站网站资讯平台用shopify 做网站
  • 桂林网站设计wordpress主题
  • 学代码的网站平面设计师赚钱吗
  • 营销型网站建设宣传语网站建设一意见
  • 搜索引擎优化关键词选择的方法有哪些二十条优化措施全文
  • 安徽网站设计app运营方式
  • 专业的模板建站企业外贸soho先做网站
  • 关于12380网站建设文件珠海公司做网站
  • 电商网站建设企业godaddy wordpress迁移
  • 厚街建设网站建筑公司网站被投诉违反广告法
  • 初级程序员与网站开发sap.net网站开发
  • 提高网站转化率东莞发布最新通告
  • 石家庄信息门户网站定制贵阳工程建设招聘信息网站