资源简介
ssim图像评价指标的matlab实现,附带详细的解释说明,并测试函数
代码片段和文件信息
function [mssim ssim_map] = ssim(img1 img2 K window L)
%SSIM Index Version 1.0
%Copyright(c) 2003 Zhou Wang
%All Rights Reserved.
%
%The author was with Howard Hughes Medical Institute and Laboratory
%for Computational Vision at Center for Neural Science and Courant
%Institute of Mathematical Sciences New York University USA. He is
%currently with Department of Electrical and Computer Engineering
%University of Waterloo Canada.
%
%This is an implementation of the algorithm for calculating the
%Structural SIMilarity (SSIM) index between two images. Please refer
%to the following paper:
%
%Z. Wang A. C. Bovik H. R. Sheikh and E. P. Simoncelli “Image
%quality assessment: From error measurement to structural similarity“
%IEEE Transactios on Image Processing vol. 13 no. 4 Apr. 2004.
%----------------------------------------------------------------------
%Input : (1) img1: the first image being compared
% (2) img2: the second image being compared
% (3) K: constants in the SSIM index formula (see the above
% reference). defualt value: K = [0.01 0.03]
% (4) window: local window for statistics (see the above
% reference). default widnow is Gaussian given by
% window = fspecial(‘gaussian‘ 11 1.5);
% (5) L: dynamic range of the images. default: L = 255
%Output: (1) mssim: the mean SSIM index value between 2 images.
% If one of the images being compared is regarded as
% perfect quality then mssim can be considered as the
% quality measure of the other image.
% If img1 = img2 then mssim = 1.
% (2) ssim_map: the SSIM index map of the test image. The map
% has a smaller size than the input images. The actual size:
% size(img1) - size(window) + 1.
%Default Usage:
% Given 2 test images img1 and img2 whose dynamic range is 0-255
% [mssim ssim_map] = ssim_index(img1 img2);
%
%Advanced Usage:
% User defined parameters. For example
%
% K = [0.05 0.05];
% window = ones(8);
% L = 100;
% K = [0.01 0.03];
% window = ones(8);
% L = 255;
% [mssim ssim_map] = ssim_index(img1 img2 K window L);
%
%See the results:
%
% mssim %Gives the mssim value
% imshow(max(0 ssim_map).^4) %Shows the SSIM index map
%
%========================================================================
if (nargin < 2 || nargin > 5) %参数个数小于2个或者大于5个则退出
mssim = -Inf;
ssim_map = -Inf;
return;
end
if (size(img1) ~= size(img2)) %对比的两幅图大小要一致,否则退出
mssim = -Inf;
ssim_map = -Inf;
return;
end
[M N] = size(img1); %将图1的大小赋值给M N
if (nargin == 2) %参数为2时
if ((M < 11) || (N < 11)) %图像长宽都不能小于11,否则退出
mssim = -Inf;
ssim_map = -Inf;
return
end
window = fspecial(‘gaussian‘ 11 1.5); %建立预定义的滤波算子。
%为高斯低通滤波,有两个参数,hsize表示模板尺寸,默认值为[3 3],sigma为滤波器的标准值,单位为像素,默认值为0.5
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6281 2017-10-29 10:56 ssim.m
文件 520 2017-10-29 10:57 ssimTest.m
评论
共有 条评论