计算图像SSIM

简介: 计算图像SSIM

ssim的算法主要参考如下论文:


Z. Wang, A. C. Bovik, H. R. Sheikh, and E. P. Simoncelli, "Image

quality assessment: From error visibility to structural similarity,"


操作流程如下\ 首先对图像加窗处理


w=fspecial('gaussian', 11, 1.5);

(2uaub+C1)(2sigmaasigmab+C2)
SIM(A,B)= (ua
ua+ubub+C1)(sigmaasigmaa+sigmabsigmab+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各窗口内灰度值的方差  

demo-ssim:


function [mssim, ssim_map,siga_sq,sigb_sq] = SSIM(ima, imb)  
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  




相关文章
|
9月前
|
机器学习/深度学习 传感器 算法
【交互式阈值二进制图像】采用彩色或单色图像通过交互/手动方式阈值单色图像或彩色图像的单个色带研究(Matlab代码实现)
【交互式阈值二进制图像】采用彩色或单色图像通过交互/手动方式阈值单色图像或彩色图像的单个色带研究(Matlab代码实现)
常用图像卷积核类型小结
卷积操作的主要目的就是对图像进行降维以及特征提取; 1.卷积核往往是行数和列数均为奇数的矩阵,这样中心较好定位; 2.卷积核元素的总和体现出输出的亮度,若元素总和为1,卷积后的图像与原图像亮度基本一致;若元素总和为0,则卷积后的图像基本上是黑色,其中较亮的部分往往就是提取出图像的某种特征; 3.滤波实际上就是Same模式的卷积操作,也就是说滤波后图像的大小不变,各种滤镜和照片的风格化就是使用不同的滤波器对图像进行操作。因此卷积核、滤波器本质上都是一个东西; 4.高通滤波器(High Pass Filter, HPF)表示仅允许图像中高频部分(即图片中变化较剧烈的部分)通过,往往用于对图像
|
17天前
|
算法 计算机视觉
图像处理之基于像素的图像混合
图像处理之基于像素的图像混合
11 1
|
1月前
|
计算机视觉 索引
【OpenCV】—ROI区域图像叠加&图像混合
【OpenCV】—ROI区域图像叠加&图像混合
|
1月前
|
机器学习/深度学习 编解码 算法
SwinFIR:用快速傅里叶卷积重建SwinIR和改进的图像超分辨率训练
SwinFIR:用快速傅里叶卷积重建SwinIR和改进的图像超分辨率训练
114 1
|
1月前
|
机器学习/深度学习 编解码 测试技术
图像超分:真实感图像超分辨率的局部判别学习方法
图像超分:真实感图像超分辨率的局部判别学习方法
45 0
|
1月前
纹理分析方法:共生矩阵的计算
纹理分析方法:共生矩阵的计算
41 0
|
10月前
|
计算机视觉
opencv 之图像的边界填充及一些数据计算
opencv 之图像的边界填充及一些数据计算
|
11月前
|
计算机视觉 C++
【OpenCv • c++】图像识别边缘检测 图像差分运算
【OpenCv • c++】图像识别边缘检测 图像差分运算
279 0
|
12月前
计算两幅图像PSNR
计算两幅图像PSNR
73 0