图片相似度计算PNSR SSIM和MSE

SSIM Index

结构相似性,是一种衡量两幅图像相似度的新指标,其值越大越好,最大为1

window = fspecial('gaussian', 11, 1.5);
I1=imread('go.tif');
I2=imread('go1.tif');
I1=imread('mo_01.png');
I2=imread('mo_02.png');
[mssim, ssim_map] = ssim_index(I1,I2, 0.02, window, 255)
[mssim, ssim_map] = ssim_index('1.jpg','1.jpg', 0.02, window, 255);
K = [0.05 0.05];
window = ones(8);
L = 100;
[mssim ssim_map] = ssim_index(I1, I2, K, window, L);

mssim                        %Gives the mssim value
imshow(max(0, ssim_map).^4)  %Shows the SSIM index map

I1=imread('mo_01.png');
I2=imread('mo_02.png');
K = [0.05 0.05];
window = ones(8);
L = 100;
[mssim ssim_map] = ssim_index(I1, I2, K, window, L);

mssim                        %Gives the mssim value
imshow(max(0, ssim_map).^4)  %Shows the SSIM index map

 PSNR 峰值信噪比(PSNR)

%PSNR 峰值信噪比(PSNR)
function S=PSNR(Im_original,Im_modified)

if (size(Im_original)~=size(Im_modified))
    error ('error:image sizes do not agree')
end


[m,n]=size(Im_original);
A=double(Im_original);
B=double(Im_modified);
sumaDif=0;
maxI=m*n*max(max(A.^2));
for u=1:m
    for v=1:n
        sumaDif=sumaDif+(A(u,v)-B(u,v))^2;
    end
end
if (sumaDif==0)
    sumaDif=1;
end
S=maxI/sumaDif;
S=10*log10(S);
.

均方误差

%MSE Im_original为原始未经污染的图,Im_modified为去噪后的图
% 均方误差(MSE)
function Image_MSE=MSE(Im_original,Im_modified)

if (size(Im_original)~=size(Im_modified))
    error ('error:image sizes do not agree')
end

[m,n]=size(Im_modified);
A=double(Im_original);
B=double(Im_modified);
sumaDif=0;
for u=1:m
    for v=1:n
        sumaDif=sumaDif+(A(u,v)-B(u,v))^2;
    end
end
Image_MSE=sumaDif/(m*n);
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值