LSB图像信息隐藏实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学号:姓名:专业年级班级:

实验室:组别:实验日期:

message=fopen('Message.txt','r');

[msg,msg_len]=fread(message,'ubit1') %按位以二进制形式读取文本内容与长度

[m,n]=size(image1) %读取行和列

p=1; %p 为秘密信息的位计数器

[row,col]=randinterval(image1,msg_len,1996);

for i=1:msg_len

image1(row(i),col(i))=image1(row(i),col(i))-mod(image1(row(i),col(i)),2)+msg(

p,1);

if p==msg_len

break ;

end ;

p=p+1;

end

%还原图像

Hide_image(:,:,1)=image1;

Hide_image=uint8(Hide_image);

imwrite(Hide_image,'Hide_image.tif');

%输出隐藏信息的图像

subplot(121);imshow(image);title('未嵌入信息的图片');

subplot(122);imshow(Hide_image);title('嵌入信息的图片');

else ['the photo is not a rgb style']

fclose('all');

end

实验算法 2:读取 LSB 隐藏的信息

1.读取已经隐藏信息的图像。如果为 RGB 图像,则读取图像的一层(该层为嵌入信

息的那层)。

2.用与 LSB 算法中相同的随机数种子产生相同的一串随机数。随机数串的长度由

LSB 中获得(长度不得大于图像大小)。

用同一个伪随机生成算法,相同的种子,来产生像素点位置,可以确保隐藏时和提取

时位置顺序是一模一样的,在顺序读取这些位置上的数据(利用与运算,与上1,任

1.读取已经隐藏信息的图像。

fp=imre ad(‘Hide_image.tif’);

2. 使用 imwrite 函数对图像进行压缩,设定压缩比例。

imwrite(fp,’out.jpg’,’quality’,compressibility)

Compressiblity是图像的质量因子,可设置在0-100范围内;

3. 如果为 RGB 图像,则读取嵌有信息的一层。按照读取 LSB 隐藏信息算法的步骤,读取信息,不写入文件。

4. 读取原文件,即隐藏的信息,以二进制读取。并取得消息长度。

message=fopen(‘message.txt’,’r’);

[msg,msg_len]=fread(message,’ubit1’)

%按位以二进制形式读取文本内容与长度

5比较取得的信息和原信息的每一位,记录不相等位数的个数。

bit_error=find(result~=msg); %寻找不相等的位置

bit_error_count=size(bit_error,1); %统计不相等的个数

6.用不相等个数除以总长度即可得到误码率。

ber(compressibility/10)=bit_error_count/msg_len;

7.改变压缩率。得到一组误码率关于压缩率的函数。

在开始时,设置9次循环,压缩图片的质量因子compressibility从10开始增加,每次递增10,直到compressibility=100,记录下每次的误码率,用plot函数做出关于以质量因子为横坐标,误码率为纵坐标的图表。

for compressibility=10:10:100 %九次不同压缩率的图片压缩

fp=imread(‘Hide_image.tif’);

imwrite(fp,’out.jpg’,’quality’,compressibility)

(接上页)

实验步骤

方法

关键代码

测试记录

分析

如果找到的图片的msg_len太小,那么后面输入的数字位数就会很短,否则就会乱码。结论

小结

经过这次实验操作,让我对matlab有了更深的理解。对信息隐藏也有了更深得认识。

以下由实验教师填写

(注:文档可能无法思考全面,请浏览后下载,供参考。可复制、编制,期待你的好评与关注!)

相关文档
最新文档