matlab练习程序(SSIM)

本文介绍了一种名为SSIM的图像质量评估方法,该方法与PSNR类似,用于评价压缩后图像的质量。通过计算图像与压缩后的图像之间的结构相似度指数来评估图像质量,返回值在0-1之间,值越大表示图像质量越好。文章提供了实现SSIM的MATLAB代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  一种评价压缩后图像质量的方法,和PSNR类似。具体论文看这里

  代码:

function main

    img=imread('lena.jpg');
    [m n]=size(img);
    imgn=imresize(img,[floor(m/8) floor(n/8)]);
    imgn=imresize(imgn,[m n]);
    img=double(img);
    imgn=double(imgn);

    tmp=[];
    for i=9:8:m
       for j=9:8:n
          tmp=[tmp SSIM(img(i-8:i,j-8:j),imgn(i-8:i,j-8:j))];        
       end    
    end

    MSSIM=mean(tmp)

    function re=SSIM(X,Y)  %返回值在0-1之间,越大质量越好。
        X=double(X);
        Y=double(Y);

        ux=mean(mean(X));
        uy=mean(mean(Y));

        sigma2x=mean(mean((X-ux).^2));
        sigma2y=mean(mean((Y-uy).^2));   
        sigmaxy=mean(mean((X-ux).*(Y-uy)));

        k1=0.01;
        k2=0.03;
        L=255;
        c1=(k1*L)^2;
        c2=(k2*L)^2;
        c3=c2/2;

        l=(2*ux*uy+c1)/(ux*ux+uy*uy+c1);
        c=(2*sqrt(sigma2x)*sqrt(sigma2y)+c2)/(sigma2x+sigma2y+c2);
        s=(sigmaxy+c3)/(sqrt(sigma2x)*sqrt(sigma2y)+c3);

        re=l*c*s;

    end

end

 

转载于:https://www.cnblogs.com/tiandsp/archive/2012/12/14/2818299.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值