📄 guangyi.m
字号:
clear all;
Image=double(imread('D:\work\lena.jpg'));
Ih=size(Image,1);%图像的长度
Iw=size(Image,2);%图像的宽度
Biao=(Ih*Iw)/256;
Junfang=double(zeros(1,1));
Guiyi=double(zeros(1,1));
% for(t=1:3)
figure(1)
subplot(2,1,1)
imshow(Image,[]);%显示原始图像
title('原始图像');
Image=uint8(Image);
figure(1)
subplot(2,1,2)
imhist(Image);
title('原始图像的直方图');
True=double(zeros(1,256));
Gailv=double(zeros(1,256));
M=double(zeros(1,256));
N=double(zeros(1,256));
Q=double(zeros(size(Image)));
Image=double(Image);
key1=4;
key2=0.7;
Kimage=double(zeros(size(Image)));
Limage=double(zeros(size(Image)));
Kimage1=double(zeros(size(Image)));
Kimage2=double(zeros(size(Image)));
Kimage3=double(zeros(size(Image)));
key=0;
% Himage=zeros(size(Image));
% Ih=size(Image,1);%图像的长度
% Iw=size(Image,2);%图像的宽度
% Kimage(1)=key2;
for(i=1:257)
M(i)=sin(((i-1)*pi)/512);
end
for(i=1:Ih)
for(j=1:Iw)
key2=key1*(key2*(1-key2));
% key=mod((key2*256),256);
% Kimage1(i,j)=round(key);
% Kimage2(i,j)=round(key);
% Kimage3(i,j)=round(key);
Kimage(i,j)=Kimage1(i,j)*Kimage2(i,j)+(1-Kimage(i,j))*Kimage3(i,j);
Limage(i,j)=Kimage(i,j);
% Image(i,j)=mod((Kimage(i,j)+Image(i,j)),256);
for(k=0:256)
while (Kimage(i,j)<M(k+1))&(Kimage(i,j)>=M(k))
Kimage(i,j)=k;
end
break
end
Image(i,j)=mod((Kimage(i,j)+Image(i,j)),256);
end
end
% Image=mod((Kimage+Image),256);
figure(2)
subplot(2,1,1)
imshow(Image,[]);
title('加密图像');
Image=uint8(Image);
figure(2)
subplot(2,1,2)
imhist(Image);
title('加密图像的直方图');
for(i=1:Ih)
for(j=1:Iw)
for(k=1:256)
if(Image(i,j)==(k-1))
True(k)=True(k)+1;
end
break
if(Kimage(i,j)==(k-1))
Gailv(k)=Gailv(k)+1;
end
end
end
end
for(k=1:256)
True(k)=(True(k)-Biao)^2;
Junfang=Junfang+True(k);
end
Junfang=Junfang/(Ih*Iw);
for(i=1:256)
Guiyi=Guiyi+Gailv(i);
N(i)=i;
Q(i)=i;
end
for(i=1:256)
Gailv(i)=Gailv(i)/Guiyi;
end
figure(3)
subplot(2,1,1)
plot(N,Gailv);
title('伪随机序列离散化后统计值');
figure(3)
subplot(2,1,2)
plot(Q,Limage);
title('伪随机序列离散化前统计值');
% end
% for(k=1:3)
% Junfang(k)=Junfang(k)/(Ih*Iw);
% end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -