关闭

SSIM与PSNR的计算方式

492人阅读 评论(0) 收藏 举报
分类:
有关SSIM的计算:

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


有关PSNR的计算:







K(i,j)为整个矩阵的均值

function re=PSNR(X,Y)  
	bit=8;                
	maxnum=2^bit-1;          %图像有多少灰度级
	[h,w]=size(X);
	temp=sum(sum((X-Y).^2))/(h*w);     
	re=20*log10(maxnum/sqrt(temp));           

end


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:79609次
    • 积分:1176
    • 等级:
    • 排名:千里之外
    • 原创:29篇
    • 转载:58篇
    • 译文:0篇
    • 评论:12条
    文章分类
    最新评论