Thursday, June 5, 2008

Assignment 7 - Method 3

3. Shrink using bilinear interpolation.

The Matlab M-file:
function [ smim3 ] = shrink3( picture, f )
picture=double(picture);
Mp = floor(size(picture,1)*f);
Np = floor(size(picture,2)*f);
for i = 0:(Mp-1);
for j = 0:(Np-1);
a=(i/f);
b=(j/f);
r=floor(a);
s=floor(b);
if (r>0) && (r<256)>0) && (s<256);
for k=1:3;
smim3(i,j,k)=[1-a+r, a-r]*[picture(r,s,k), picture(r,s+1,k); picture((r+1),s,k), picture((r+1),(s+1),k)]*[1-b+s; b-s];
end;
end;
end;
end;
smim3=smim3/255;

The Matlab commands (as an example)
rainbow=imread('rainbow.jpg');
image(shrink3(rainbow,0.75))
image(shrink3(rainbow,0.25))
image(shrink3(rainbow,0.1))

































































































































































No comments: