matlab練習程序(SSIM)


  一種評價壓縮后圖像質量的方法,和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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM