I have tried to shuffle the image using tinkerbell map and Henon Map and obtained the output.But I cant do the inverse shuffling processes.The code is given below
clear allclcg=imread('cameraman.tif');% g=double(g)/255;
subplot(231)imshow(g)original=g;[m,n]=size(g);mo=m;num = 12;K=10.^10;% K=19;
%....................Shuffling.......................
disp('........................Started Shuffling.....................')%Tinkerbell shuffling
a=0.3;b=0.6000;c=2.0;d=0.27;for k= 1:numfor i=1:m for j=1:n r = mod([round(abs((i^2)-(j^2)+(a*i)+(b*j))),round(abs((2*i*j)+(c*i)+(d*j)))], [m,n]);% r = mod([(i+j),(j+K*sin(((i+1)*n)/2*pi))],mo);
% r = [((i-1)+(K*sin(j-1))),((j-1)+i)];
% r = uint8(r);
ggg(i,j)=g(r(1)+1,r(2)+1);% ggg(i,j)=g(r(1),r(2));
end end g=ggg; end subplot(232) x=ggg; imshow(ggg,[]); title('Tinkerbell shuffled') %henon Shuffling
[m,n]=size(x); a = 1.4;b=0.3; % num_iter=input('Enter the round for Arnold shuffling');
num_iter = 5; % a=1.4;
% b=0.3;
for k=1:num_iter for i=1:m for j=1:m r = mod([round(abs(1-(a*(i^2))+j)),round(abs(b*i))],[m n]); xxx(i,j)=x(r(1)+1,r(2)+1); end end x=xxx; end subplot(233) imshow(xxx); title('henon Shuffled Image') save xxx x disp('........................Shuffling process completed succesfully.....................') %...................Inverse Shufling.............................
disp('........................Started Inverse Shuffling.....................') %Henon Inverse Shuffling
for k=1:num_iter for i=1:m for j=1:n r = mod([round(abs(1-(a*(i^2))+j)),round(abs(b*i))],[m n]); x1(r(1)+1,r(2)+1)=xxx(i,j); end end xxx=x1; end subplot(234) imshow(x1); title('henon Inverse Shuffled')%Tinkerbell inverse shuffling
a=0.3;b=0.6000;c=2.0;d=0.27;for k=1:numfor i=1:m for j=1:n r = mod([round(abs((i^2)-(j^2)+(a*i)+(b*j))),round(abs((2*i*j)+(c*i)+(d*j)))], [m,n]); g1(r(1)+1,r(2)+1)=x1(i,j); end end xxx=g1; end subplot(224) imshow(g1) title('Tinkerbell_inverse_shuffled') disp('........................Inverse Shuffling process completed succesfully.....................') psnr = psnr(g1,original) ssim=ssim(g1,original)
Best Answer