SSIM(structural similarity index),结构相似性
ssim算法原理 - 我们都不是神的孩子 - CSDN博客 http://blog.csdn.net/ecnu18918079120/article/details/60149864
一、结构相似性(structural similarity)
二、SSIM指数
三、SSIM指数应用于图像质量评估
- function [mssim, ssim_map,siga_sq,sigb_sq] = SSIM(ima, imb)
- % ========================================================================
- %ssim的算法主要参考如下论文:
- %Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli, "Image
- % quality assessment: From error visibility to structural similarity,"
- % IEEE Transactios on Image Processing, vol. 13, no. 4, pp. 600-612,
- % Apr. 2004.
- % 首先对图像加窗处理,w=fspecial('gaussian', 11, 1.5);
- % (2*ua*ub+C1)*(2*sigmaa*sigmab+C2)
- % SSIM(A,B)=————————————————————————
- % (ua*ua+ub*ub+C1)(sigmaa*sigmaa+sigmab*sigmab+C2)
- % C1=(K1*L);
- % C2=(K2*L); K1=0.01,K2=0.03
- % L为灰度级数,L=255
- %-------------------------------------------------------------------
- % ima - 比较图像A
- % imb - 比较图像B
- %
- % ssim_map - 各加窗后得到的SSIM(A,B|w)组成的映射矩阵
- % mssim - 对加窗得到的SSIM(A,B|w)求平均,即最终的SSIM(A,B)
- % siga_sq - 图像A各窗口内灰度值的方差
- % sigb_sq - 图像B各窗口内灰度值的方差
- %-------------------------------------------------------------------
- % Cool_ben
- %========================================================================
- w = fspecial('gaussian', 11, 1.5); %window 加窗
- K(1) = 0.01;
- K(2) = 0.03;
- L = 255;
- ima = double(ima);
- imb = double(imb);
- C1 = (K(1)*L)^2;
- C2 = (K(2)*L)^2;
- w = w/sum(sum(w));
- ua = filter2(w, ima, 'valid');%对窗口内并没有进行平均处理,而是与高斯卷积,
- ub = filter2(w, imb, 'valid'); % 类似加权平均
- ua_sq = ua.*ua;
- ub_sq = ub.*ub;
- ua_ub = ua.*ub;
- siga_sq = filter2(w, ima.*ima, 'valid') - ua_sq;
- sigb_sq = filter2(w, imb.*imb, 'valid') - ub_sq;
- sigab = filter2(w, ima.*imb, 'valid') - ua_ub;
- ssim_map = ((2*ua_ub + C1).*(2*sigab + C2))./((ua_sq + ub_sq + C1).*(siga_sq + sigb_sq + C2));
- mssim = mean2(ssim_map);
- return
一、结构相似性(structural similarity)
二、SSIM指数
三、SSIM指数应用于图像质量评估
- function [mssim, ssim_map,siga_sq,sigb_sq] = SSIM(ima, imb)
- % ========================================================================
- %ssim的算法主要参考如下论文:
- %Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli, "Image
- % quality assessment: From error visibility to structural similarity,"
- % IEEE Transactios on Image Processing, vol. 13, no. 4, pp. 600-612,
- % Apr. 2004.
- % 首先对图像加窗处理,w=fspecial('gaussian', 11, 1.5);
- % (2*ua*ub+C1)*(2*sigmaa*sigmab+C2)
- % SSIM(A,B)=————————————————————————
- % (ua*ua+ub*ub+C1)(sigmaa*sigmaa+sigmab*sigmab+C2)
- % C1=(K1*L);
- % C2=(K2*L); K1=0.01,K2=0.03
- % L为灰度级数,L=255
- %-------------------------------------------------------------------
- % ima - 比较图像A
- % imb - 比较图像B
- %
- % ssim_map - 各加窗后得到的SSIM(A,B|w)组成的映射矩阵
- % mssim - 对加窗得到的SSIM(A,B|w)求平均,即最终的SSIM(A,B)
- % siga_sq - 图像A各窗口内灰度值的方差
- % sigb_sq - 图像B各窗口内灰度值的方差
- %-------------------------------------------------------------------
- % Cool_ben
- %========================================================================
- w = fspecial('gaussian', 11, 1.5); %window 加窗
- K(1) = 0.01;
- K(2) = 0.03;
- L = 255;
- ima = double(ima);
- imb = double(imb);
- C1 = (K(1)*L)^2;
- C2 = (K(2)*L)^2;
- w = w/sum(sum(w));
- ua = filter2(w, ima, 'valid');%对窗口内并没有进行平均处理,而是与高斯卷积,
- ub = filter2(w, imb, 'valid'); % 类似加权平均
- ua_sq = ua.*ua;
- ub_sq = ub.*ub;
- ua_ub = ua.*ub;
- siga_sq = filter2(w, ima.*ima, 'valid') - ua_sq;
- sigb_sq = filter2(w, imb.*imb, 'valid') - ub_sq;
- sigab = filter2(w, ima.*imb, 'valid') - ua_ub;
- ssim_map = ((2*ua_ub + C1).*(2*sigab + C2))./((ua_sq + ub_sq + C1).*(siga_sq + sigb_sq + C2));
- mssim = mean2(ssim_map);
- return
SSIM(structural similarity index),结构相似性的更多相关文章
- SSIM (Structural SIMilarity) 结构相似性
公式基于样本x和 y 之间的三个比较衡量:亮度 (luminance).对比度 (contrast) 和结构 (structure). 每次计算的时候都从图片上取一个 N*N的窗口,然后不断滑动窗口进 ...
- python Mean Squared Error vs. Structural Similarity Measure两种算法的图片比较
# by movie on 2019/12/18 import matplotlib.pyplot as plt import numpy as np from skimage import meas ...
- MATLAB 均方根误差MSE、两图像的信噪比SNR、峰值信噪比PSNR、结构相似性SSIM
今天的作业是求两幅图像的MSE.SNR.PSNR.SSIM.代码如下: clc; close all; X = imread('q1.tif');% 读取图像 Y=imread('q2.tif'); ...
- Paper | BLIND QUALITY ASSESSMENT OF COMPRESSED IMAGES VIA PSEUDO STRUCTURAL SIMILARITY
目录 1. 技术细节 1.1 得到MDI 1.2 判别伪结构,计算伪结构相似性 2. 实验 动机:作者认为,基于块的压缩会产生一种伪结构(pseudo structures),并且不同程度压缩产生的伪 ...
- C# 中 System.Index 结构体和 Hat 运算符(^)的全新用法
翻译自 John Demetriou 2019年2月17日 的文章 <C# 8 – Introducing Index Struct And A Brand New Usage For The ...
- 体验SRCNN和FSRCNN两种图像超分网络应用
摘要:图像超分即超分辨率,将图像从模糊的状态变清晰. 本文分享自华为云社区<图像超分实验:SRCNN/FSRCNN>,作者:zstar. 图像超分即超分辨率,将图像从模糊的状态变清晰.本文 ...
- OpenCV进行图像相似度对比的几种办法
转载请注明出处:http://blog.csdn.net/wangyaninglm/article/details/43853435, 来自:shiter编写程序的艺术 对计算图像相似度的方法,本文做 ...
- 图像质量评价方法PSNR+SSIM&&评估指标SROCC,PLCC
update:2018-04-07 今天发现ssim的计算里面有高斯模糊,为了快速计算,先对每个小块进行计算,然后计算所有块的平均值.可以参考源代码实现,而且代码实现有近似的在里面!matlab中中图 ...
- 图像处理结果的度量 —— SNR、PSNR、SSIM
衡量两幅图像的相似度: SNR/PSNR SSIM 1. SNR vs PSNR about SNR 和 PSNR MSE:mean squared error ∑x=1Nx∑y=1Ny(f(x,y) ...
随机推荐
- PyQt4的一些问题汇总
(1)PyQt4获取中文路径名字乱码问题 网址可以参见:http://permalink.gmane.org/gmane.comp.python.chinese/9916 处理方式的代码可以参考如下 ...
- CentOS安装glibc-2.14(转)
到http://ftp.gnu.org/gnu/glibc/下载glibc-2.14.tar.xz tar glibc-2.14.tar.gz cd glibc-2.14 mkdir build cd ...
- Popup.js
test.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> ...
- gulp入门学习教程(入门学习记录)
前言 最近在通过教学视频学习angularjs,其中有gulp的教学部分,对其的介绍为可以对文件进行合并,压缩,格式化,监听,测试,检查等操作时,看到前三种功能我的心理思想是,网上有很多在线压缩,在线 ...
- IOT表
以前在接触索引的时候,就想过要是表字段太少,索引效果不是很不好吗,直接用索引不是更直接吗?后来因为懒惰也没有去查找相关资料.正好今天看到了table organization index,看了一下,实 ...
- Tcp Ip -- tcpdump win窗口大小
问题介绍 今天,有内部模块与外部系统断连. (外部系统smgw,内部接口interface) smgw <----> interface 有消息交互. 通过tcpdump -xns0 po ...
- 测试-一个unity的编译bug,初始化器
.net C#下测试: public class Class1 { public bool toggle1 = true; public bool toggle2; } 一个结构类Class1,对里面 ...
- Atitit。激活某个程序的api attilax总结
Atitit.激活某个程序的api attilax总结 1. 设置当前某窗口为当前窗口,有几个步骤要做:1.得到窗口句柄FindWindow2.切换键盘输入焦点AttachThreadInput3.显 ...
- [svc]几种访问google方案
最近老被人问起,有什么访问谷歌的方法可以推荐. 针对小白用户(使用sass式即可) iass sass pass区别 小白可以用(无需安装软件,些许收费):googlegae: https://m.2 ...
- C# Lpt 并口热敏小票打印机打印位图
class LptControl { private string LptStr = "lpt1"; public LptControl(string l_LPT_Str) { L ...