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


function H=iarnold1(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=2*(i-1)-(j-1); 
		    j1=(j-1)-(i-1); 
		    i1=mod(i1-1,c); 
		    j1=mod(j1-1,d); 
		   %将每个像素的x,y坐标对应的灰度值放入定义的数组E中. 
			w1(i1+1,j1+1)=w(i,j); 
        end 
    end 
     
end 
w1=uint8(w1); 
%输出大图. 
figure; 
imshow(w1,[]); 
title('还原后图像'); 
H=w1;