logic problem with circshift
7 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen


we are trying to unscramble a scrambled picture using circshift command with the help of a key image. but we cant recover the original picture. plz plz plz check our code T.T ASAP!! scrambler
clc;
clear all;
close all;
I=imread('lenna1.jpg');
I1=(I);
imshow(I1);
drawnow
pause
i=I1(:,:,1);
i1=I1(:,:,1);
l=size(i,1);
h=size(i,2);
name=0;
naam=1;
key=imread('key.jpg');
keyr=key(:,:,1);
s1=sum(keyr,1);
for k=1:h
if (mod((s1(k)),2)==0)
i(k,:)=circshift(i(k,:),[0 20]);
elseif (mod((s1(k)),3)==0)
i(k,:)=circshift(i(k,:),[0 -30]);
elseif (mod((s1(k)),5)==0)
i(k,:)=circshift(i(k,:),[0 50]);
elseif (mod((s1(k)),7)==0)
i(k,:)=circshift(i(k,:),[0 -70]);
elseif (mod((s1(k)),11)==0)
i(k,:)=circshift(i(k,:),[0 110]);
elseif (mod((s1(k)),13)==0)
i(k,:)=circshift(i(k,:),[0 -130]);
else
i(k,:)=circshift(i(k,:),[0 -20]);
end
naam
end
ir=i;
J1=I1;
J1(:,:,1)=ir;
J=(J1);
imshow(J(:,:,1));
imwrite(J,'scrlenna.jpg');
unscrambler
clc
clear all
close all
I=imread('scrlenna.jpg');
i=I(:,:,1);
l=size(i,1);
h=size(i,2);
J=I;
key=imread('key.jpg');
keyr=key(:,:,1);
s=sum(keyr,2);
s1=sum(keyr,1);
for k=1:h
if (mod((s1(k)),2)==0)
i(k,:)=circshift(i(k,:),[0 -20]);
elseif (mod((s1(k)),3)==0)
i(k,:)=circshift(i(k,:),[0 30]);
elseif (mod((s1(k)),5)==0)
i(k,:)=circshift(i(k,:),[0 -50]);
elseif (mod((s1(k)),7)==0)
i(k,:)=circshift(i(k,:),[0 70]);
elseif (mod((s1(k)),11)==0)
i(k,:)=circshift(i(k,:),[0 -110]);
elseif (mod((s1(k)),13)==0)
i(k,:)=circshift(i(k,:),[0 130]);
else
i(k,:)=circshift(i(k,:),[0 20]);
end
end
J(:,:,1)=i;
imwrite(J,'yahooo.jpg');
imshow(J);
1 Kommentar
Antworten (0)
Siehe auch
Kategorien
Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!