最近在學MATLAB,但是有一個作業,是要用它來做資訊隱藏,要用雙線性內插法(bilinear interpolation)的方法和最近相鄰內插法(nearest-neighbor interpolation)還有一個論文的作者的方法。
以下是我用BILINEAR的方法寫的,有大大可以幫我看一下有沒有出問題嗎?還有可以敎我寫另外兩個的方法嗎??謝謝~~
x=imread('c:\1.bmp');
y=uint8(repmat(0,[512,512]));
for i=1:256
for j=1:256
y((i-1)*2+1,(j-1)*2+1)=x(i,j);
end
end
for i=1:512
for j=1:512
if(i==512 && j==512)
y(2*(i-1)+1,2*(j-1)+1+1)=y(2*(i-1)+1,2*(j-1)+1);
y(2*(i-1)+1+1,2*(j-1)+1)=y(2*(i-1)+1,2*(j-1)+1);
y(2*(i-1)+1+1,2*(j-1)+1+1)=1/3*y(2*(i-1)+1,2*(j-1)+1)+1/3*y(2*(i-1)+1,2*(j-1)+1+1)+1/3*y(2*(i-1)+1+1,2*(j-1)+1);
elseif (i==512)
y(2*(i-1)+1,2*(j-1)+1+1)=0.5*y(2*(i-1)+1,2*(j-1)+1)+0.5*y(2*(i-1)+1,2*(j-1)+1+2);
y(2*(i-1)+1+1,2*(j-1)+1)=y(2*(i-1)+1,2*(j-1)+1);
y(2*(i-1)+1+1,2*(j-1)+1+1)=1/3*y(2*(i-1)+1,2*(j-1)+1)+1/3*y(2*(i-1)+1,2*(j-1)+1+1)+1/3*y(2*(i-1)+1+1,2*(j-1)+1);
elseif (j==512)
y(2*(i-1)+1,2*(j-1)+1+1)=y(2*(i-1)+1,2*(j-1)+1);
y(2*(i-1)+1+1,2*(j-1)+1)=0.5*y(2*(i-1)+1,2*(j-1)+1)+0.5*y(2*(i-1)+1+2,2*(j-1)+1);
y(2*(i-1)+1+1,2*(j-1)+1+1)=1/3*y(2*(i-1)+1,2*(j-1)+1)+1/3*y(2*(i-1)+1,2*(j-1)+1+1)+1/3*y(2*(i-1)+1+1,2*(j-1)+1);
else
y(2*(i-1)+1,2*(j-1)+1+1)=0.5*y(2*(i-1)+1,2*(j-1)+1)+0.5*y(2*(i-1)+1,2*(j-1)+1+2);
y(2*(i-1)+1+1,2*(j-1)+1)=0.5*y(2*(i-1)+1,2*(j-1)+1)+0.5*y(2*(i-1)+1+2,2*(j-1)+1);
y(2*(i-1)+1+1,2*(j-1)+1+1)=0.25*y(2*(i-1)+1,2*(j-1)+1)+0.25*y(2*(i-1)+1,2*(j-1)+1+2)+0.25*y(2*(i-1)+1+2,2*(j-1)+1)+0.25*y(2*(i-1)+1+2,2*(j-1)+1+2);
end
end
end
for i=1:256
for j=1:256
end
end
imwrite(y,'c:\test.bmp');

X