%改进算法,及性能分析clearclca=imread('rice.png');a=double(a);[m1,n1]=size(a);b=zeros(m1,n1*8);fori=1:1:m1forj=1:1:n1fort=0:1:7ifmod(floor(a(i,j)/2^t),2)==1b(i,j*8-t)=1;elseb(i,j*8-t)=0;endendendendq=4;b1=b;x1(1)=0.3333;forn=1:n1*8+100x1(n+1)=q*x1(n)*(1-x1(n));endn=101:1:n1*8+100;y1(n-100)=x1(n);[z1,l1]=sort(y1,2);fori=1:1:n1*8b1(:,i)=b(:,l1(i));endx2(1)=0.4444;form=1:m1+100x2(m+1)=q*x2(m)*(1-x2(m));endm=101:1:m1+100;y2(m-100)=x2(m);[z2,l2]=sort(y2,2);fori=1:1:m1b(i,:)=b1(l2(i),:);endfori=1:1:m1forj=1:1:n1a(i,j)=b(i,j*8);fort=1:1:7a(i,j)=a(i,j)+2^t*b(i,j*8-t);endendenda=uint8(a);figure,imshow(a);figure,imhist(a);a=double(a);g(1)=0.5555;%混沌序列的初始值fori=1:1:256*256%改进算法t(i)=mod(floor(g(i)*10^3),256);%ifg(i)<0.5g(i+1)=4*q*g(i)*(0.5-g(i));elseg(i+1)=1-4*q*(g(i)-0.5)*(1-g(i));endendt=reshape(t,256,256);t=t';fori=1:1:256forj=1:1:256s1(i,j)=mod((a(i,j)+t(i,j)*abs(i-j)),256);endends1=uint8(s1);figure,imshow(s1);%显示加密图像figure,imhist(s1);%加密图像灰度值s1=double(s1);%解密是加密的反fori=1:1:256forj=1:1:256a(i,j)=mod((s1(i,j)-t(i,j)*abs(i-j)),256);endendfori=1:1:m1forj=1:1:n1fort=0:1:7ifmod(floor(a(i,j)/2^t),2)==1b(i,j*8-t)=1;elseb(i,j*8-t)=0;endendendendfori=1:1:m1b1(l2(i),:)=b(i,:);endfori=1:1:n1*8b(:,l1(i))=b1(:,i);endfori=1:1:m1forj=1:1:n1a(i,j)=b(i,j*8);fort=1:1:7a(i,j)=a(i,j)+2^t*b(i,j*8-t);endendenda=uint8(a);figure,imshow(a);%求灰度值差异clearclca=imread('rice.png');[m1,n1]=size(a);a=double(a);gn=zeros(m1-2,n1-2);%定义(m1-2)*(n1-2)的矩阵fori=2:1:255%计算每个与其他四个相邻像素灰度值的差异forj=2:1:255am=(a(i,j)-a(i-1,j))^2;am=am+(a(i,j)-a(i+1,j))^2;am=am+(a(i,j)-a(i,j-1))^2;am=am+(a(i,j)-a(i,j+1))^2;gn(i-1,j-1)=am/4;endendam=0;fori=1:1:254forj=1:1:254am=gn(i,j)+am;endendan=am/((m1-2)*(n1-2));%求各图像的相关性k1=unidrnd(255,1,20);%生成1*20的矩阵,由[1,255]之间的数组成k2=randint(1,50,[1,255]);%生成1*50的矩阵,由[1,255]之间的数组成fori=1:50forj=1:20x(i,j)=s1(k2(i),k1(j));y(i,j)=s1(k2(i),k1(j)+1);%%水平相关性%y(i,j)=s1(k2(i)+1,k1(j));%竖直相关性%y(i,j)=s1(k2(i)+1,k1(j)+1);%对角相关性endendex=0;%求矩阵x(i,j)的均值fori=1:1:50forj=1:1:20ex=ex+x(i,j);endendex=ex/1000;ey=0;%求相关y(i,j)矩阵的均值fori=1:1:50forj=1:1:20ey=ey+y(i,j);endendey=ey/1000;cxy=0;%求矩阵x和y的相关系数fori=1:50forj=1:20cxy=cxy+(x(i,j)-ex)*(y(i,j)-ey);endendcxy=cxy/1000;dx=0;%求fori=1:50forj=1:20dx=dx+(x(i,j)-ex)^2;endenddx=dx/1000;dy=0;fori=1:50forj=1:20dy=dy+(y(i,j)-ey)^2;endenddy=dy/1000;rxy=cxy/sqrt(dx*dy);%求相关系数