主题:【求助】图像质量-斜率均方差MSDS
求助一下大家,有没有人知道MSDS,一种评价图像质量的方法,作用就像PSNR。
我有MATLAB变了个小程序实现MSDS,但求出lena原图像的结果是十几万,可是正常的结果应该是1200左右。应该是我对MSDS的理解出了错误。请高手教教我怎么算这个数吧。我自己变得拙作如下:我把所有水平垂直边的值加了一遍。
function msds=CMSDS(inimage)
msds=0;
d1=0;
d2=0;
for i=1:64
for j=1:63
x=8*i-7;
y=8*j;
for k=x:x+7
d1=d1+(0.5*(3*double(inimage(k,y+1))-3*double(inimage(k,y))-double(inimage(k,y+2))+double(inimage(k,y-1))))^2;
end
end
end
for i=1:63
for j=1:64
x=8*i;
y=8*j-7;
for k=y:y+7
d2=d2+(0.5*abs(3*double(inimage(x+1,k))-3*double(inimage(x,k))-double(inimage(x+2,k))+double(inimage(x-1,k))))^2;
end
end
end
msds=d1+d2;
我有MATLAB变了个小程序实现MSDS,但求出lena原图像的结果是十几万,可是正常的结果应该是1200左右。应该是我对MSDS的理解出了错误。请高手教教我怎么算这个数吧。我自己变得拙作如下:我把所有水平垂直边的值加了一遍。
function msds=CMSDS(inimage)
msds=0;
d1=0;
d2=0;
for i=1:64
for j=1:63
x=8*i-7;
y=8*j;
for k=x:x+7
d1=d1+(0.5*(3*double(inimage(k,y+1))-3*double(inimage(k,y))-double(inimage(k,y+2))+double(inimage(k,y-1))))^2;
end
end
end
for i=1:63
for j=1:64
x=8*i;
y=8*j-7;
for k=y:y+7
d2=d2+(0.5*abs(3*double(inimage(x+1,k))-3*double(inimage(x,k))-double(inimage(x+2,k))+double(inimage(x-1,k))))^2;
end
end
end
msds=d1+d2;