www.pudn.com > Arnold.rar > arnold.m, change:2014-07-11,size:622b


function H=arnold(w,n) 
%w=imread('3.jpg'); 
%w=rgb2gray(w); 
%H=arnold(w,36); 
%去水印图像的维数. 
w=double(w); 
[c,d]=size(w); 
%定义一个零矩阵用于设置Arnold变换后生成的新图像. 
w1=zeros(c,d); 
u=w; 
 
for count=1:n %%%%%%%%%%%%%%%%%%%%%%%%%%36次 
    if count~=1 
	    w=w1; 
    end 
    %对每个像素的x,y坐标进行Arnold变换 
    for i=1:c 
	    for j=1:d 
		    i1=i+j; 
		    j1=i+2*j; 
		    i1=mod(i1,c); 
		    j1=mod(j1,d); 
		   %将每个像素的x,y坐标对应的灰度值放入定义的数组E中. 
			w1(i1+1,j1+1)=w(i,j); 
        end 
    end 
end 
%输出大图. 
w1=uint8(w1); 
figure; 
imshow(w1,[]); 
title('置乱后图像'); 
H=w1;