% MATLAB code for code effect
% read and show the original image
original = imread('image1.png');
imshow(original); title('original');
% final will store the image with cone effect
final=uint8(zeros(size(original)));
% Calculating mid values
Xmid=ceil((size(original,1)+1)/2);
Ymid=ceil((size(original,2)+1)/2);
% declaring K
K=180;
x2=zeros([size(original,1) size(original,2)]);
y2=zeros([size(original,1) size(original,2)]);
% Using nested for loops to create cone effect
for i = 1:size(original,1)
x = i - Xmid;
for j = 1:size(original,2)
[theta,rho] = cart2pol(x, j-Ymid);
sqtrho = sqrt(rho * K);
[a,b] = pol2cart(theta, sqtrho);
x2(i,j) = ceil(a) + Xmid;
y2(i,j) = ceil(b) + Ymid;
end
end
% Changing array values
x2(x2<1)=1;
x2(x2>size(original,1))=size(original,1);
y2(y2<1)=1;
y2(y2>size(original,2))=size(original,2);
for i=1:size(original,1)
for j=1:size(original,2)
final(i,j,:) = original(x2(i,j),y2(i,j),:);
end
end
% showing final image
figure, imshow(final);title('Image with Cone Effect');