计算两幅图像的相似度总结_JerrySing的博客-CSDN博客_图像指纹特征计算相似度


本站和网页 https://blog.csdn.net/u010977034/article/details/82733137 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

计算两幅图像的相似度总结_JerrySing的博客-CSDN博客_图像指纹特征计算相似度
计算两幅图像的相似度总结
JerrySing
于 2018-09-17 14:42:12 发布
103942
收藏
452
分类专栏:
深度学习
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/u010977034/article/details/82733137
版权
深度学习
专栏收录该内容
6 篇文章
0 订阅
订阅专栏
1. SSIM(结构相似性度量)
这是一种全参考的图像质量评价指标,分别从亮度、对比度、结构三个方面度量图像相似性。
SSIM取值范围[0, 1],值越大,表示图像失真越小。
在实际应用中,可以利用滑动窗将图像分块,令分块总数为N,考虑到窗口形状对分块的影响,采用高斯加权计算每一窗口的均值、方差以及协方差,然后计算对应块的结构相似度SSIM,最后将平均值作为两图像的结构相似性度量,即平均结构相似性SSIM。
from skimage.measure import compare_ssim
from scipy.misc import imread
import numpy as np
img1 = imread('1.jpg')
img2 = imread('2.jpg')
img2 = np.resize(img2, (img1.shape[0], img1.shape[1], img1.shape[2]))
print(img2.shape)
print(img1.shape)
ssim = compare_ssim(img1, img2, multichannel=True)
print(ssim)
                        
计算出来SSIM为0.343769017234
该方法通常用来衡量一张图片压缩后的失真度,比较少的用来计算两图的相似度。
2. cosin相似度(余弦相似度)
把图片表示成一个向量,通过计算向量之间的余弦距离来表征两张图片的相似度。
from PIL import Image
from numpy import average, linalg, dot
def get_thumbnail(image, size=(1200, 750), greyscale=False):
image = image.resize(size, Image.ANTIALIAS)
if greyscale:
image = image.convert('L')
return image
def image_similarity_vectors_via_numpy(image1, image2):
image1 = get_thumbnail(image1)
image2 = get_thumbnail(image2)
images = [image1, image2]
vectors = []
norms = []
for image in images:
vector = []
for pixel_tuple in image.getdata():
vector.append(average(pixel_tuple))
vectors.append(vector)
norms.append(linalg.norm(vector, 2))
a, b = vectors
a_norm, b_norm = norms
res = dot(a / a_norm, b / b_norm)
return res
image1 = Image.open('1.jpg')
image2 = Image.open('2.jpg')
cosin = image_similarity_vectors_via_numpy(image1, image2)
print(cosin)
计算出来cosin相似度为0.911241243612
该方法运算量较大,速度明显比ssim方法慢,但是只管感受结果比ssim靠谱。
3. 基于直方图
直方图能够描述一幅图像中颜色的全局分布,是一种入门级的图像相似度计算方法。
from PIL import Image
def make_regalur_image(img, size = (256, 256)):
return img.resize(size).convert('RGB')
def hist_similar(lh, rh):
assert len(lh) == len(rh)
return sum(1 - (0 if l == r else float(abs(l - r))/max(l, r)) for l, r in zip(lh, rh))/len(lh)
def calc_similar(li, ri):
return hist_similar(li.histogram(), ri.histogram())
if __name__ == '__main__':
img1 = Image.open('1.jpg')
img1 = make_regalur_image(img1)
img2 = Image.open('2.jpg')
img2 = make_regalur_image(img2)
print(calc_similar(img1, img2))
计算出来的直方图相似度为0.490183408809
直方图过于简单,只能捕捉颜色信息的相似性,捕捉不到更多的信息。只要颜色分布相似,就会判定二者相似度较高,显然不合理。
4. 基于互信息(Mutual Information)
 通过计算两个图片的互信息来表征他们之间的相似度。
from sklearn import metrics as mr
from scipy.misc import imread
import numpy as np
img1 = imread('1.jpg')
img2 = imread('2.jpg')
img2 = np.resize(img2, (img1.shape[0], img1.shape[1], img1.shape[2]))
img1 = np.reshape(img1, -1)
img2 = np.reshape(img2, -1)
print(img2.shape)
print(img1.shape)
mutual_infor = mr.mutual_info_score(img1, img2)
print(mutual_infor)
如果两张图片尺寸相同,还是能在一定程度上表征两张图片的相似性的。但是,大部分情况下图片的尺寸不相同,如果把两张图片尺寸调成相同的话,又会让原来很多的信息丢失,所以很难把握。经过实际验证,此种方法的确很难把握。
5. 计算图像的“指纹信息”
将图像归一化成一定大小,计算 一个序列作为他的指纹信息,然后比较两张图片指纹信息序列相同的位数。如果不相同的数据位不超过5,就说明两张图片很相似;如果大于10,就说明这是两张不同的图片。
JerrySing
关注
关注
65
点赞
452
收藏
打赏
14
评论
计算两幅图像的相似度总结
1. SSIM(结构相似性度量)这是一种全参考的图像质量评价指标,分别从亮度、对比度、结构三个方面度量图像相似性。SSIM取值范围[0, 1],值越大,表示图像失真越小。在实际应用中,可以利用滑动窗将图像分块,令分块总数为N,考虑到窗口形状对分块的影响,采用高斯加权计算每一窗口的均值、方差以及协方差,然后计算对应块的结构相似度SSIM,最后将平均值作为两图像的结构相似性度量,即平均结构...
复制链接
扫一扫
专栏目录
几种图像相似性度量的匹配性能比较
06-01
几种图像相似性度量的匹配性能比较 几种图像相似性度量的匹配性能比较
openCV纹理图像特征提取,比较两幅图像的相似度
03-13
利用opencV和C语言编写,利用纹理特征比较两幅图像的相似度
评论 14
您还未登录,请先
登录
后发表或查看评论
【百度AI_人脸识别】图片对比相似度、人脸对比登录(调摄像头)
最新发布
m0_70083523的博客
11-24
724
两张人脸图片相似度对比:比对两张图片中人脸的相似度,并返回相似度分值。
存档一张图片与调用的摄像中的人脸进行对比。
图像处理之图像质量评价指标SSIM(结构相似性)
qq_44111805的博客
11-04
875
3、仅以椒盐噪声的参数为讨论,我们将主函数main.m文件椒盐噪声的方差改为0.01,可以与上方得到方差为0.05的SSIM结果进行对比,可以看出得到的SSIM要大很多。SSIM全称为“Structural Similarity Index”,中文意思即为结构相似性,是衡量图像质量的指标之一。2、可以发现开源函数计算的SSIM值总比matlab内置函数计算的SSIM值大,具体原因不可知。1、注意每次运行主函数main.m文件,输出的SSIM值都会有细微差别,可以对比上下两张图。:使用开源结构相似性函数。
有史以来最全的图像相似度算法
xian0710830114的专栏
07-16
1万+
使用四种方法计算图片相似度:
MD5、直方图、PSNR、SSIM
比较两张图片的相似性
hallobike的博客
08-23
4613
1、原图上可以发现的信息,两张图拍摄角度不一样,图一拍的比较正,聚焦近;图二拍的有点倾斜,聚焦远。光照不一样,图一光照亮度要比图二高。图片中水泥模子干湿程度不一样,图一的水泥已经完全干了;图二还是水泥的凝结过程中的一种状态。拍照的方向不一样,假定图一是正向;图二就是反向的。水泥模子之间的距离也是不一样的,图一挨得比较近;图二挨得比较远。
2、如果单从比较两张图片是否相同,那肯定不相同;若是比较图一中水泥模子是否为图二中水泥模子晾干之后的结果,那答案是相同的,可以将图一或者图二换成与之对应的相位就可..
Python计算图片之间的相似度
热门推荐
weixin_39121325的博客
11-17
3万+
1.cosin相似度(余弦相似度)
把图片表示成一个向量,通过计算向量之间的余弦距离来表征两张图片的相似度
# -*- coding: utf-8 -*-
# !/usr/bin/env python
# @Time : 2018/11/17 14:52
# @Author : xhh
# @Desc : 余弦相似度计算
# @File : difference...
图片相似度识别算法,百度图片识别算法
kfc67269的博客
08-12
2375
数字图像处理技术可以帮助人们更客观、准确地认识世界,人的视觉系统可以帮助人类从外界获取3/4以上的信息,而图像、图形又是所有视觉信息的载体,尽管人眼的鉴别力很高,可以识别上千种颜色,但很多情况下,图像对于人眼来说是模糊的甚至是不可见的,通过图象增强技术,可以使模糊甚至不可见的图像变得清晰明亮。YOLO中的对象检测是作为回归问题完成的,并提供检测到的图像的类别概率。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。...
利用Python轻松实现图片相似度对比(一)
weixin_43423533的博客
04-24
5980
关于图片相似度,主要简单介绍以下几种方法: 一:通过图片像素来比较,比较简单,对使用场景有要求 二:通过余弦方法来比较图片 原理: 把图片表示一个向量,通过计算向量之间的余弦值来表征图片的相似度,个人认为利用余弦定理来比较语义相似度要比图像相似度比较要好的多。 [0,1],越大越相似三:SSIM(结构相似性指数) 这种方法是基于sklearn中的scikit-image中的ssim来计算的一种全参考性的图像质量评价...
图像处理中常用的相似度评估指标
修炼之路
06-04
3296
有时候我们想要计算两张图片是否相似,而用来衡量两张图片相似度的算法也有很多,常用的有RMSE、PSNR、SSIM、UQI等
OpenCV进行图像相似度对比的几种办法
weixin_34072159的博客
02-16
5564
转载请注明出处:http://blog.csdn.net/wangyaninglm/article/details/43853435,
来自:shiter编写程序的艺术
对计算图像相似度的方法,本文做了如下总结,主要有三种办法:
1.PSNR峰值信噪比
PSNR(Peak Signal to Noise Ratio),一...
测试两张照片相似度对比软件,有没有一款软件能比对两张照片是否一样?
weixin_39883670的博客
07-22
8627
可以用AI软件来对比。AI人脸比对已经变成非常常用的AI场景之一。步骤如下:1、浏览器输入网址百度AI应用,AI人脸比对。2、进入人脸比对的功能演示模块。3、点击左侧的‘本地上传’按钮,上传本地照片1。4、点击右侧的‘本地上传’按钮,上传本地照片2。5、稍等片刻,便会得出两个照片的相似度。如图所示。AI的功能:是用于研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科...
图片相似度总结
qq_23174517的博客
09-23
415
常用的图像相似度计算
1.MSE
计算图像矩阵对应像素点的差值之和
∑∑(Ides(x,y)−Itest(x,y))2\sum\sum (I_{des}(x,y)- I_{test}(x,y))^2∑∑(Ides​(x,y)−Itest​(x,y))2
2.Cos
把图像转成一维的矩阵计算余弦相似度
3. PSNR
4. SSIM
5. Perceptual loss
等待补充
...
图像相似度-c++
m0_53300448的博客
04-07
2285
题目描述
给出两幅相同大小的黑白图像(用0-1矩阵)表示,求它们的相似度。若两幅图像在相同位置上的像素点颜色相同,则称它们在该位置具有相同的像素点。两幅图像的相似度定义为相同像素点数占总像素点数的百分比。
输入描述:
第一行包含两个整数m和n,表示图像的行数和列数,用单个空格隔开。1≤m≤100, 1≤n≤100。之后m行,每行n个整数0或1,表示第一幅黑白图像上各像素点的颜色,相邻两个数用单个空格隔开。之后m行,每行n个整数0或1,表示第二幅黑白图像上各像素点的颜色,相邻两个数用单个空格隔开。
输出描述:
【Python】计算psnr和ssim值
florrie
12-02
1万+
基于python版的PSNR和ssim值计算
psnr(峰值信噪比)
psnr是图像质量评价的常用指标之一,该指标用来衡量两幅图像的相似度,即失真情况。具体就不展开说了。首先需要简单介绍一下psnr的公式计算。对于大小为m*n的两幅图像I和K(一幅是原图,一幅一般是图像重建后的图像),其均方差MSE定义为:
而PSNR的计算公式则为:
其中,MAX为最大像素,即255。这个计算公式针对的是灰度...
批量比较SSIM相似度,筛选相似度最高的图片
UssterXingyiLi的博客
12-30
1014
# 上一篇文章 https://blog.csdn.net/UssterXingyiLi/article/details/111312661 筛选出了测试流出的图片。
# 接下来对这些流出图片和标注图片进行两两比较相似度,取出最高相似度的图片,有针对性地比较混淆样本(修改NG或者OK),再训练,提高判定准确率。
# 相似度比较的类和方法借鉴于 https://blog.csdn.net/alicia_n/article/details/107045273 ,scikit-image v0.15.0测试通过.
图像质量评价指标之 PSNR 和 SSIM
惊鸿一博
12-08
3344
1. PSNR (Peak Signal-to-Noise Ratio) 峰值信噪比
给定一个大小为m×nm×n的干净图像II和噪声图像KK,均方误差(MSE)(MSE)定义为:
然后PSNR(dB)PSNR(dB)就定义为:
其中为图片可能的最大像素值。如果每个像素都由 8 位二进制来表示,那么就为 255。通常,如果像素值由BB位二进制来表示,那么。
一般地,针对 uint8 数据,最大像素值为 255,;针对浮点型数据,最大像素值为 1。
上面是针对灰度图像...
图片相似度对比-java
u014775579的博客
03-16
6122
图片相似度对比-java
比较图像相似的三种方法
baidu_38634017的博客
03-25
5918
转载自:https://blog.csdn.net/Alieon/article/details/97924522
前言
本来想自己写一篇总结图像相似hash算法,无意之中看到一篇博客真的是总结地很精妙。感觉自己远远不及,于是转载过来并添以补充代码实现。 原文链接:https://www.cnblogs.com/Kalafinaia
怎么看两张图片的相似度,测试两张照片相似度
m0_54846070的博客
08-25
570
简单、易用,不需要任何专业的图像技术,就可以制作出专业胶片摄影的色彩效果,其具有许多独特之处,如反转片效果、黑白效果、数码补光、冲版排版等,且其批量处理功能非常强大,是摄影作品后期处理、图片快速美容、数码照片冲印整理时必备的图像处理软件,能够满足绝大部分人照片后期处理的需要。调节亮度、对比度、裁剪、旋转翻转图片等等,对图片基本的色彩校正和技术处理。1、Mix滤镜大师。美图秀秀的图片特效、美容、拼图、场景、边框、饰品等功能,可以1分钟做出影楼级照片,还能一键分享到新浪微博、人人网、QQ空间等。
分析图片相似度的软件,图片相似度比对算法
shirley67269的博客
08-21
740
SIM=StructuralSIMilarity(结构相似性),这是一种用来评测图像质量的一种方法。由于人类视觉很容易从图像中抽取出结构信息,因此计算两幅图像结构信息的相似性就可以用来作为一种检测图像质量的好坏.首先结构信息不应该受到照明的影响,因此在计算结构信息时需要去掉亮度信息,即需要减掉图像的均值;其次结构信息不应该受到图像对比度的影响,因此计算结构信息时需要归一化图像的方差;最后我们就可以对图像求取结构信息了,通常我们可以简单地计算一下这两幅处理后的图像的相关系数.然而图像质量的好坏也受到亮度信息和
“相关推荐”对你有帮助么?
非常没帮助
没帮助
一般
有帮助
非常有帮助
提交
©️2022 CSDN
皮肤主题:技术黑板
设计师:CSDN官方博客
返回首页
JerrySing
CSDN认证博客专家
CSDN认证企业博客
码龄10年
暂无认证
14
原创
20万+
周排名
161万+
总排名
15万+
访问
等级
766
积分
24
粉丝
87
获赞
21
评论
548
收藏
私信
关注
热门文章
计算两幅图像的相似度总结
103941
Anaconda Tensorflow GPU 版本的安装问题
19496
群卷积(Group Convolution)
8262
常用的优化器及其优缺点
7809
感受野的概念
4834
分类专栏
深度学习
6篇
环境变量
环境配置
2篇
面筋
1篇
C++基础
3篇
Linux相关
1篇
论文阅读
5篇
最新评论
计算两幅图像的相似度总结
城城城_:
pip install --upgrade scikit-image
计算两幅图像的相似度总结
城城城_:
[code=python]
from skimage.metrics import structural_similarity
from scipy.misc import imread
import numpy as np
img1 = imread('0099.jpg')
img2 = imread('0100.jpg')
img2 = np.resize(img2, (img1.shape[0], img1.shape[1], img1.shape[2]))
print(img2.shape)
print(img1.shape)
ssim = structural_similarity(img1, img2, multichannel=True)
print(ssim)
[/code]
计算两幅图像的相似度总结
ning_ww:
博主你好,请问基于直方图那种方法里,make_regalur_image是必须的嘛,不make_regalur有什么影响呢?
计算两幅图像的相似度总结
沐沐__:
博主你好,我对余弦相似度不太了解,但是需要应用一下,因此想问一下,如果将一张图像内的物体整体平移,对余弦相似度有什么影响
计算两幅图像的相似度总结
whalien:
skimage版本太老了,升级一下库就行。新版中structural_similarity被废弃了
您愿意向朋友推荐“博客详情页”吗?
强烈不推荐
不推荐
一般般
推荐
强烈推荐
提交
最新文章
YUV格式数据类型大解析
感受野的概念
Faster RCNN 论文阅读
2019年1篇
2018年13篇
2017年2篇
2016年1篇
目录
目录
分类专栏
深度学习
6篇
环境变量
环境配置
2篇
面筋
1篇
C++基础
3篇
Linux相关
1篇
论文阅读
5篇
目录
评论 14
被折叠的 条评论
为什么被折叠?
到【灌水乐园】发言
查看更多评论
打赏作者
JerrySing
你的鼓励将是我创作的最大动力
¥2
¥4
¥6
¥10
¥20
输入1-500的整数
余额支付
(余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付
您的余额不足,请更换扫码支付或充值
打赏作者
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额
抵扣说明:
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。 2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。
余额充值