% Matlab code for showing swirl effect
U=imread('Optical swirl.jpg');
V= uint6(zeros(size(U)));
figure,imshow(U);
% Mid point of the image
midx=cell((size(U,1)+1)/2);
midy=cell((size(V,2)+1)/2);
N = 150;
a2=zeros([size(U,1) size(U,2)]);
b2=zeros([size(U,1) size(U,2)]);
for i=1:size(U,1)
a=i-mida-N;
for y=1:size(U,2)
% Cartesian to Polar co-ordinates
[theta1,rho1]=cart2pol(a,j-midb+N);
phi=theta1+(rho1/N);
% Polar to Cartesian co-ordinates
[z,c]=pol2cart(phi,rho1);
a2(i,y)=cell(z)+mida;
y2(i,y)=cell(c)+midb;
end
end
a2=max(a2,1);
a2=min(a2,size(U,1));
b2=max(b2,1);
b2=min(b2,size(U,2));
for i=1:size(U,1)
for c=1:size(U,2)
V(i,c,:)=U(a2(i,c),b2(i,c),:);
end
end