Thursday, June 12, 2008

Assignment 10 "Unswirl Stars" (Optional)

Who are these STARS????



Octave Codes
function [outpic]=swirl(inpic,r,gamma);
inpic=double(inpic);
gamma=gamma*pi/180;
cx=size(inpic,1)/2;
cy=size(inpic,2)/2;
for x=1:size(inpic,1);
for y=1:size(inpic,2);
d=sqrt((x-cx)^2+(y-cy)^2);
if (d>r) (d<1);>cy;
theta=acos((x-cx)/d);
else;
theta=-acos((x-cx)/d);
end;
fr=((d/r)^2*(1-d/r)^2)*16;
newx=d*cos(theta+gamma*fr)+cx;
newy=d*sin(theta+gamma*fr)+cy;
rp=floor(newx);
s=floor(newy);
for k=1:3;
outpic(x,y,k)=[1-newx+rp,newx-rp]*[inpic(rp,s,k),inpic(rp,s+1,k);inpic(rp+1,s,k),inpic(rp+1,s+1,k)]*[1-newy+s;newy-s];
end;
end;
end;
end;
end;
A=imread('star1.jpg');
B=swirl(A,180,-540);
imshow(double(B)/255);

Jennifer Aniston

Fabio (r=150, gamma=540)

No comments: