开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 24523|回复: 1
收起左侧

[源码分享] (转载) 2张图片相似度对比 4种算法 非CNN

[复制链接]
发表于 2022-5-21 02:40:25 | 显示全部楼层 |阅读模式   四川省巴中市
本帖最后由 懒虫Obj 于 2022-5-21 02:48 编辑





demo中的2张图片       img1.jpg                       img2.jpg


转载至:https://github.com/SkyeBeFreeman/identify-similar-images


最近学习卷积神经网络的时候无意发现的看着不错就分享出来了,如有侵犯请留言 我立即删除!  



                            [README.md]
计算公式:
其中,G和S为两张图片的图像颜色分布直方图,N为颜色空间样点数。
这里使用分块的方法计算相似度,用以提高各部分的特征,防止图片颜色相似导致计算的相似度高。
  • 利用平均哈希算法计算图片相似度

计算步骤:
  • 缩放图片:一般大小为8*8,64个像素值
  • 简化色彩,转化为灰度图:可以使用Image的convert('L')方法
  • 计算平均值:计算出灰度图所有像素点的像素值的平均值
  • 比较像素灰度值:遍历灰度图的每一个像素值与上一步计算的平均值,大于平均值记录为1,否则为0
  • 得到64位图像指纹
  • 记录两张图片的图像指纹的汉明距离,计算图片相似度

  • 利用感知哈希算法计算图片相似度

计算步骤:
  • 缩放图片:一般大小为32*32,这样方便DCT计算
  • 简化色彩,转化为灰度图:可以使用Image的convert('L')方法
  • 计算DCT([color=var(--color-accent-fg)]离散余弦变换):
    获得图像的二维数据矩阵f(x,y)
    求离散余弦变换的系数矩阵[A]
    求系数矩阵对应的转置矩阵[A]T
    根据公式[F(u,v)]=[A][f(x,y)][A]T 计算离散余弦变换
  • 缩小DCT:DCT计算后的矩阵是32*32,保留左上角的8*8,这些代表的图片的最低频率
  • 计算平均值:计算缩小DCT后的所有像素点的平均
  • 进一步减小DCT:大于平均值记录为1,否则为0
  • 得到64位信息指纹
  • 记录两张图片的图像指纹的汉明距离,计算图片相似度

  • 利用差异哈希算法计算图片相似度

计算步骤:
  • 缩放图片:一般大小为9*8,以留下多一行的像素数据进行差异计算
  • 简化色彩,转化为灰度图:可以使用Image的convert('L')方法
  • 计算差异值:dHash算法工作在相邻像素之间,这样每行9个像素之间产生了8个不同的差异,一共8行,则产生了64个差异哈希值
  • 得到64位信息指纹:如果左边的像素比右边的更亮,则记录为1,否则为0
  • 记录两张图片的图像指纹的汉明距离,计算图片相似度


Use the related libraries:
PIL
matplotlib

搜索
复制


QQ截图20220521023406.jpg
 楼主| 发表于 2022-5-21 02:48:52 | 显示全部楼层   四川省巴中市
好像发错版块了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 诚聘英才| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 800073686,邮箱:800073686@b.qq.com
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表