进行图像相似度对比的几种办法
转载自
1、直方图方法
方法描述:有两幅图像patch(当然也可是整幅图像),分别计算两幅图像的直方图,并将直方图进行归一化,然后按照某种距离度量的标准进行相似度的测量。
方法的思想:基于简单的向量相似度来对图像相似度进行度量。
优点:直方图能够很好的归一化,比如256个bin条,那么即使是不同分辨率的图像都可以直接通过其直方图来计算相似度,计算量适中。比较适合描述难以自动分割的图像。
缺点:直方图反应的是图像灰度值得概率分布,并没有图像的空间位置信息在里面,因此,常常出现误判;从信息论来讲,通过直方图转换,信息丢失量较大,因此单一的通过直方图进行匹配显得有点力不从心。
2、图像模板匹配
一般而言,源图像与模板图像patch尺寸一样的话,可以直接使用上面介绍的图像相似度测量的方法;如果源图像与模板图像尺寸不一样,通常需要进行滑动匹配窗口,扫面个整幅图像获得最好的匹配patch。
在OpenCV中对应的函数为:matchTemplate():函数功能是在输入图像中滑动窗口寻找各个位置与模板图像patch的相似度。
3、PSNR峰值信噪比
PSNR(Peak Signal to Noise Ratio),一种全参考的图像质量评价指标。
简介:https://en.wikipedia.org/wiki/Peak_signal-to-noise_ratio
PSNR是最普遍和使用最为广泛的一种图像客观评价指标,然而它是基于对应像素点间的误差,即基于误差敏感的图像质量评价。由于并未考虑到人眼的视觉特性(人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个区域的感知结果会受到其周围邻近区域的影响等),因而经常出现评价结果与人的主观感觉不一致的情况。
4、SSIM(structural similarity)结构相似性
也是一种全参考的图像质量评价指标,它分别从亮度、对比度、结构三方面度量图像相似性。
SSIM取值范围[0,1],值越大,表示图像失真越小.
在实际应用中,可以利用滑动窗将图像分块,令分块总数为N,考虑到窗口形状对分块的影响,采用高斯加权计算每一窗口的均值、方差以及协方差,然后计算对应块的结构相似度SSIM,最后将平均值作为两图像的结构相似性度量,即平均结构相似性MSSIM:
5、感知哈希算法
(perceptual hash algorithm)
http://blog.csdn.net/fengbingchun/article/details/42153261
感知哈希算法(perceptual hash algorithm),它的作用是对每张图像生成一个“指纹”(fingerprint)字符串,然后比较不同图像的指纹。结果越接近,就说明图像越相似。
实现步骤:
缩小尺寸:将图像缩小到8*8的尺寸,总共64个像素。这一步的作用是去除图像的细节,只保留结构/明暗等基本信息,摒弃不同尺寸/比例带来的图像差异;
简化色彩:将缩小后的图像,转为64级灰度,即所有像素点总共只有64种颜色;
计算平均值:计算所有64个像素的灰度平均值;
比较像素的灰度:将每个像素的灰度,与平均值进行比较,大于或等于平均值记为1,小于平均值记为0;
计算哈希值:将上一步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图像的指纹。组合的次序并不重要,只要保证所有图像都采用同样次序就行了;
得到指纹以后,就可以对比不同的图像,看看64位中有多少位是不一样的。在理论上,这等同于”汉明距离”(Hamming distance,在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数)。如果不相同的数据位数不超过5,就说明两张图像很相似;如果大于10,就说明这是两张不同的图像。
以上内容摘自:http://www.ruanyifeng.com/blog/2011/07/principle_of_similar_image_search.html
进行图像相似度对比的几种办法相关推荐
- OpenCV 进行图像相似度对比的几种办法-【顺带附py对比学习案例】
最近研究了下计算机视觉.图像对比参考了一下py的一些源码和思路等信息学习学习. 但是呢只能对应相似度.稍微改一改剪切了图片后的就变化差异比较大,对目前自己的需求来说不是很有作用,顺带整理分享一下. 如 ...
- OpenCV进行图像相似度对比的几种办法
平均哈希算法 实现步骤 缩小尺寸:将图像缩小到8*8的尺寸,总共64个像素.这一步的作用是去除图像的细节,只保留结构/明暗等基本信息,摒弃不同尺寸/比例带来的图像差异: 简化色彩:将缩小后的图像,转为 ...
- 【图像识别与处理】图像相似度对比的几种办法
对计算图像相似度的方法,本文做了如下总结,主要有三种办法: 1.PSNR峰值信噪比 PSNR(Peak Signal to Noise Ratio),一种全参考的图像质量评价指标. 简介:https: ...
- lm opencv 算法_OpenCV进行图像相似度对比的几种办法
// PSNR.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include // Console I/O #include // St ...
- CV之Hog+HamMingDistance:基于Hog提取和汉明距离对比的应用—图像相似度对比之for循环将多个成对图片依次对比并输出相似度
CV之Hog+HamMingDistance:基于Hog提取和汉明距离对比的应用-图像相似度对比之for循环将多个成对图片依次对比并输出相似度 目录 测试数据集 核心代码 相关文章 ML之相似度计算: ...
- 图像相似度对比-直方图
想要排除神经网络训练集中大量的重复图片,但网上找不到合适的图片对比工具.自己写一个 要对比的图片 img0 img1 1. 直方图相似度对比 如果我们有两张图像,并且这两张图像的直方图一样,或者有极高 ...
- linux图片相似度检测软件下载,移动端图像相似度算法选型
概述 电商场景中,卖家为获取流量,常常出现重复铺货现象,当用户发布上传图像或视频时,在客户端进行图像特征提取和指纹生成,再将其上传至云端指纹库对比后,找出相似图片,杜绝重复铺货造成的计算及存储资源浪费 ...
- 列举一些算法对照片、图像进行相似度对比分析比较
转:列举一些算法对照片.图像进行相似度对比分析比较 首先: 图片如下 18.jpg ...
- r语言把两个折线图图像放到一个图里_图像相似度度量
图像相似度度量的应用场景很多,包括以图搜图,相似图像去重等多种功能,目前在项目中的场景是针对大量重复类似的图片,需要进行筛选剔除,自然需要用到图像相似度,简单调研了下图像相似度的方法,包括传统图像方法 ...
最新文章
- R假设检验之莫德中位数检验(Mood‘s Median Test)
- Android AIDL示例-回调方法版
- android通过数组,流播放声音的方法,音频实时传输
- echarts词云图形状_用Wordcloud生成指定形状的词云图
- msf与cs互相传动
- 如何打造高效的多任务、高并发的网络服务器系统?
- Caffe学习:Layers
- 便签如何把短音频文件mp3的转换成文字
- vue路由 Maximum call stack size exceeded
- 第一章:基本概念(博弈论、纳什均衡、维克瑞拍卖、POA、赞助搜索拍卖)
- latex 中下括号 underbrace 如何对齐
- android ExtCertPathValidatorException: Could not validate
- 然后删除oracle用户,oracle删除用户
- Google Earth Engine(GEE)——给GEE地图加入指北针
- python和接码平台对接_python写接码api
- kaggle的toxic_comment_classification比赛21th经验总结
- python经典类新式类_Python的新式类和经典类
- PMP考试技巧+前九章内容提炼整理(不定时更新)
- Mybatis—动态SQL语句与逆向工程
- 浅析TVS管的分类及选型的注意事项