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) ...
随机推荐
- Redis源代码解析:13Redis中的事件驱动机制
Redis中.处理网络IO时,採用的是事件驱动机制.但它没有使用libevent或者libev这种库,而是自己实现了一个很easy明了的事件驱动库ae_event,主要代码只400行左右. 没有选择l ...
- python&php数据抓取、爬虫分析与中介,有网址案例
近期在做一个网络爬虫程序.后台使用python不定时去抓取数据.前台使用php进行展示 站点是:http://se.dianfenxiang.com
- Visual studio之C# 重新定义Messbox的显示窗口位置
背景 当前做的APP需要新建一个设置窗口,该设置窗口会出现在靠近屏幕边缘位置,但主窗口铺满屏幕,设置窗口会弹出一些讯息,但默认情况下Messagebox窗口会居中于主窗口,这不太符合要求,正常应该居中 ...
- Android平台上直接物理内存读写漏洞的那些事
/* 本文章由 莫灰灰 编写,转载请注明出处. 作者:莫灰灰 邮箱: minzhenfei@163.com */ 通过mmap直接操作物理内存的漏洞应该算是比較常见的一类漏洞了,在2012年.2 ...
- android studio教学视频资源(点开即看)
android studio教学视频资源(点开即看) 自从Google推出android studio之后.包含github在内的非常多第三方代码库项目很多其它的採用的android studio编译 ...
- excel 的几个函数使用
=IF(表1[[#此行],[state]]="修改", IF( ISBLANK( VLOOKUP( ...
- C#7.0之元组数据
static (string,string,string) LookupName(int a) { return ("","",""); } ...
- Jumpserver web界面跳板机
Jumpserver.org 普通用户 仪表盘 查看主机 上传下载 访问官网 欢迎使用Jumpserver开源跳板机系统 帮助 Log out 查看资产 仪表盘 资产管理 查看资产 主机详细信息列表 ...
- C语言 文件操作
/** *@author cody *@date 2014-08-09 *@description copy text file * FILE *fopen(filename,openmode) * ...
- PHP:计算文件或数组中单词出现频率
一:如果是小文件,可以一次性读入到数组中,使用方便的数组计数函数进行词频统计(假设文件中内容都是空格隔开的单词): <?php $str = file_get_contents("/p ...