www.pudn.com > zongsuanfa.rar > zongsuanfa.m


I=imread('greens.jpg'); 
if isgrb(I) 
    [M N R]=size(I); 
    data1=zeros(M,N); 
    data2=zeros(M,N); 
    data3=zeros(M,N); 
    for i=1:M 
        for j=1:N 
            data1(i,j)=I(i,j,1); 
            data2(i,j)=I(i,j,2); 
            data3(i,j)=I(i,j,3); 
        end 
    end 
I=double(I); 
[M,N]=size(I); 
Y=zeros(M,N); 
f=zeros(M,N); 
u=3.9; 
q=rand(1); 
for t=1:2 
for i=1:M 
    for j=1:N 
    x=i; 
    y=j; 
    temp=data1(i,j); 
%     temp=data2(i,j); 
%     temp=data3(i,j); 
    x1=mod(x+y,M)+1; 
    y1=mod(x+2*y,N)+1; 
    Y(x1,y1)=temp; 
    Y(i,j)=I(x1,y1); 
    f(i,j)=round(((I(i,j)+1)*255)/2); 
        str1=dec2base(f(i,j),2,8); 
        str2=dec2base(I(i,j),2,8); 
        for k=1:8 
            str3(k)=xor(str2num(str1(k)),str2num(str2(k))); 
        end 
        I2(i,j,t)=bin2dec(num2str(str3)); 
        q=q*(1-q)*u; 
    end 
    end 
end 
T=zeros(M,N,3); 
for i=1:M 
    for j=1:N 
    T(i,j,1)=data1(i,j); 
    T(i,j,2)=data2(i,j); 
    T(i,j,3)=data3(i,j); 
    end 
end 
figure(1) 
subplot(2,2,1),imshow(unit8(I)); 
title('原始图象') 
subplot(2,2,2),imshow(unit8(Y)); 
title('cat变换后的图象') 
subplot(2,2,3),imshow(unit8(I2)); 
title('本文加密算法2次后的图象')