嵌入算法
Picture=imread('e:\aaa.bmp');%读入载体图像
Double_Picture=Picture;
Double_Picture=double(Double_Picture);%将图像转化为二进制格式
id=fopen('e:\ttt.txt','r');
[msg,len]=fread(id,'ubit1');
[m,n]=size(Double_Picture);
p=1;%p为秘密信息的位计数器
for f2=1:n
for f1=1:m
Double_Picture(f1,f2)=Double_Picture(f1,f2)-mod(Double_Picture(f1,f2),2)+msg(p,1);
%将秘密信息按位隐藏入连续的像素中
if p==len
break;
end
p=p+1;
end
if p==len
break;
end
p=p+1;
if p==len
break;
end
end
Double_Picture=uint8(Double_Picture);
imwrite(Double_Picture,'e:\bbb.bmp');%生成秘密信息
subplot(121);imshow(Picture);title('未嵌入信息的图片');
subplot(122);imshow(Double_Picture);title('嵌入信息的图片');
提取算法
Picture=imread('bbb.bmp');%读入隐秘信息的图像
Picture=double(Picture);
[m,n]=size(Picture);
frr=fopen('3.txt','a');
len=8;%设定隐秘信息长度 p=1;
for f2=1:n
for f1=1:m
if bitand(Picture(f1,f2),1)==1;
%顺序提取图像相应像素LSB 的秘密信息
fwrite(frr,1,'bit1');
result(p,1)=1;
else
fwrite(frr,0,'bit1');
result(p,1)=0;
end
if p<len %判断秘密信息是否读完
p=p+1;
end
end
if p==len
break;
end
end
fclose(frr);
有大神帮我看看吗?为什么提取不出来啊???
Picture=imread('e:\aaa.bmp');%读入载体图像
Double_Picture=Picture;
Double_Picture=double(Double_Picture);%将图像转化为二进制格式
id=fopen('e:\ttt.txt','r');
[msg,len]=fread(id,'ubit1');
[m,n]=size(Double_Picture);
p=1;%p为秘密信息的位计数器
for f2=1:n
for f1=1:m
Double_Picture(f1,f2)=Double_Picture(f1,f2)-mod(Double_Picture(f1,f2),2)+msg(p,1);
%将秘密信息按位隐藏入连续的像素中
if p==len
break;
end
p=p+1;
end
if p==len
break;
end
p=p+1;
if p==len
break;
end
end
Double_Picture=uint8(Double_Picture);
imwrite(Double_Picture,'e:\bbb.bmp');%生成秘密信息
subplot(121);imshow(Picture);title('未嵌入信息的图片');
subplot(122);imshow(Double_Picture);title('嵌入信息的图片');
提取算法
Picture=imread('bbb.bmp');%读入隐秘信息的图像
Picture=double(Picture);
[m,n]=size(Picture);
frr=fopen('3.txt','a');
len=8;%设定隐秘信息长度 p=1;
for f2=1:n
for f1=1:m
if bitand(Picture(f1,f2),1)==1;
%顺序提取图像相应像素LSB 的秘密信息
fwrite(frr,1,'bit1');
result(p,1)=1;
else
fwrite(frr,0,'bit1');
result(p,1)=0;
end
if p<len %判断秘密信息是否读完
p=p+1;
end
end
if p==len
break;
end
end
fclose(frr);
有大神帮我看看吗?为什么提取不出来啊???