📄 opa.m
字号:
clear all
key=input('请输入密钥: ');
[X,map]=imread('1.gif','gif');
figure;imshow(X,map)
title('原图像')
[a b]=size(map);
[m1 n]=size(X);
for i=1:a
for j=1:a
d(i,j)=sqrt((map(i,1)-map(j,1))^2+(map(i,2)-map(j,2))^2+(map(i,3)-map(j,3))^2);
end
end
e=d';
e=sort(e);
e=e';
for i=1:a
for j=1:a
if e(i,2)==d(i,j);
k(i)=j;
end
end
end
c=zeros(1,256);
P=zeros(1,256);
for i=1:a
findm=find(c(1,:)==0);
if size(findm,2)==0
continue;
end
m=findm(1,1);
mi=find(c(1,:)==i);
mki=find(c(1,:)==k(i));
if size(mi,2)==0 & size(mki,2)==0
c(m)=i;c(m+1)=k(i);
P(i)=0;P(k(i))=1;
elseif size(mi,2)==0 & size(mki,2)~=0
c(m)=i;
P(i)=1-P(k(i));
elseif size(mi,2)~=0 & size(mki,2)==0
c(m)=k(i);
P(k(i))=1-P(i);
end
end
f=fopen('secretinformation.txt','r');
A=fread(f);
A
[e f]=size(A);
if e*8>m*n
disp('嵌入信息量过大,请重新选择嵌入信息');
end
B=A';
E=zeros(1,8*e);
i=8*e;
i
for j=1:e
for t=1:8
C(t)=bitget(B(j),t);
D(i)=C(t);
i=i-1;
end
end
x=zeros(1,e);
x(1)=key;
for i=1:8*e-1
x(i+1)=4*x(i)-4*x(i)^2;
end
q=sort(x);
t=1;
for i=1:8*e
for j=1:8*e
if q(i)==x(j);
r(t)=j;
t=t+1;
end
end
end
for i=1:8*e
E(i)=D(r(i));
end
X=reshape(X,1,m1*n);
for i=1:8*e
if E(i)~=P(X(i))
X(i)=k(X(i));
end
end
X=reshape(X,m1,n);
imwrite(X,map,'嵌入秘密信息的b.TIFF','TIFF');
figure;imshow(X,map)
title('嵌入秘密信息后的图像')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -