Sunday, June 8, 2008

Assignment 7

Programs to create images below are at the bottom of the blog.






Image #1 f=0.75






















Image #2 f=0.75



























Image #1 f=0.25





























Image #2 f=0.25






















Image#1 f=0.10
























Image #2 f=0.10


























Method #1

pkg load image
cd C:\
largeimage=double(imread("CokeCan.jpg"));
f=0.10;
Mp=floor(size(largeimage,1)*f);
Np=floor(size(largeimage,2)*f);
small(:,:,1)=zeros(Mp,Np);
small(:,:,2)=zeros(Mp,Np);
small(:,:,3)=zeros(Mp,Np);
for i=0:(Mp-1);
for j=0:(Np-1);
for x=(floor(i/f)):ceil((i+1)/f)-1;
for y=(floor(j/f)):ceil((j+1)/f)-1;
ival=largeimage(x+1,y+1,:);
if (x<(i/f)); ival=ival*(1+x-(i/f)); end if ((x+1)>(i+1)/f);
ival=ival*(1-(x+1)+((i+1)/f));
end
if (y<(j/f)); ival=ival*(1+y-(j/f)); end if ((y+1)>(j+1)/f);
ival=ival*(1-(y+1)+((j+1)/f));
end
small(i+1,j+1,:)=small(i+1,j+1,:)+ival;
end
end
end
end
small=small*f*f;
imshow(double(small)/255);




Method #2

pkg load image
cd C:\
largeimage=imread("CokeCan.jpg");
largeimage=double(largeimage);
f=0.75;
mp=floor(size(largeimage,1)*f-1);
np=floor(size(largeimage,2)*f-1);
small(:,:,1)=zeros(mp-1,np-1);
small(:,:,2)=zeros(mp-1,np-1);
small(:,:,3)=zeros(mp-1,np-1);
for i=1:(mp-1)
for j=1:(np-1)
a=round(i/f);
b=round(j/f);
small(i,j,:)=largeimage(a,b,:);
end;
end;
imshow(double(small/255))





Method #3

pkg load image
cd C:\
largeimage=double(imread("CokeCan.jpg"));
f=0.75;
mp=floor(size(largeimage,1)*f);
np=floor(size(largeimage,2)*f);
small(:,:,1)=zeros(mp,np);
small(:,:,2)=zeros(mp,np);
small(:,:,3)=zeros(mp,np);
for i=1:mp
for j=1:np
a=i/f;
b=j/f;
r=floor(a);
s=floor(b);
if (r>0) &(r(lessthan size(largeimage,1)&(s>0)&(s(lessthan size(largeimage,2) #blog will not post properly with mathematical symbols in above line.
for k=1:3
small(i,j,k)=[1-a+r,a-r]*[largeimage(r,s,k),largeimage(r,s+1,k);largeimage(r+1,s,k),largeimage(r+1,s+1,k)]*[1-b+s;b-s];
end;
end;
end;
end;
imshow(small/255)

No comments: