第一范文网 - 专业文章范例文档资料分享平台

杨松信息隐藏实验指导书2

来源:用户分享 时间:2025/11/17 21:06:23 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

%文件名:randlsbhide.m

%函数功能:本函数将完成随机选择LSB的信息隐秘,载体选用灰度BMP图

%输入格式举例:[ste_cover,len_total]=randlsbhide(′glenna.bmp′,′message.txt′,′scover.bmp′,2001) %参数说明:

%input是信息隐蔽载体图像%file是秘密消息文件 %output是信息隐秘后的生成图像 %key是随机间隔函数的密钥

function[ste_cover,len_total]=randlsbhide(input,file,output,key) %读入图像矩阵 cover=imread(input);

ste_cover=cover;ste_cover=double(ste_cover); %将文本文件转换为二进制序列 f_id=fopen(file,′r′);

[msg,len_total]=fread(f_id,′ubit1′); %判断嵌入消息量是否过大 [m,n]=size(ste_cover); If len_total>m*n

error(′嵌入消息量过大,请更换图像′); end

%p作为消息嵌入位数计数 p=1;

%调用随机间隔函数选取像素点

[row,col]=randinterval(ste_cover,len_total,key); %在LSB隐秘消息 for i=1:len_total

ste_cover(row(i),col(i))=ste_cover(row(i),col(i))-mod(ste_cover(row(i),col(i)),2)+msg(p,1);

if p==len_total break; end p=p+1; end

ste_cover=uint8(ste_cover); imwrite(ste_cover,output); %显示实验结果

subplot(1,2,1);imshow(cover);title(′原始图像′);

subplot(1,2,2);imshow(output);title(′隐藏信息的图像′);

(2)编写函数比较两幅图像区别 %文件名:compare.m

%函数功能:本函数完成显示隐秘前后两幅图像的区别

%输入格式举例:F=compare(′blenna.bmp′,′scover.bmp′) %参数说明:

- 9 -

%original是原始载体图像 %hided是隐秘后的图像 %F是差值矩阵

functionF=compare(original,hided) %读取原始载体图像矩阵 W=imread(original); W=double(W)/255; %读取隐秘后图像矩阵 E=imread(hided); E=double(E)/255;

%将两图像矩阵相减,显示效果

此处填入合适的语句,完成相应功能 %注意,MATLAB中矩阵相减只支持double型

imshow(mat2gray(F) )

(3)隐秘消息的提取 %文件名:randlsbget.m

%函数功能:本函数将完成提取隐秘于LSB上的秘密消息

%输入格式举例:result=randlsbget(′scover.jpg′,56,′secret.txt′,2001) %参数说明:

%output是信息隐秘后的图像 %len_total是秘密消息的长度

%goalfile是提取出的秘密消息文件 %key是随机间隔函数的密钥 %result是提取的消息

function result=randlsbget(output,len_total,goalfile,key) ste_cover=imread(output); ste_cover=double(ste_cover); %判断嵌入消息量是否过大 [m,n]=size(ste_cover); frr=fopen(goalfile,′a′);

%p作为消息嵌入位数计数器,将消息序列写回文本文件 p=1;

%调用随机间隔函数选取像素点

[row,col]=randinterval(ste_cover,len_total,key); for i=1:len_total

if bitand(ste_cover(row(i),col(i)),1)==1 fwrite(frr,1,′bit1′); result(p,1)=1; else

fwrite(frr,0,′bit1′); result(p,1)=0; end

if p==len_total

- 9 -

break; end p=p+1; end

fclose(frr);

2、顺序选取图像载体像素,实现隐秘消息的嵌入与提取 (1)隐秘消息的嵌入 %文件名:lsbhide.m

%函数功能:本函数将完成在LSB上的顺序信息隐秘,载体选用灰度BMP图 %输入格式举例:

[ste_cover,len_total]=lsbhide(′glenna.bmp′,′message.txt′,′scover.bmp′) %参数说明:

%input是信息隐蔽载体图像,为灰度BMP图 %file是秘密消息文件

%output是信息隐秘后生成图像 %ste_cover是信息隐秘后图像矩阵 %len_total是秘密消息的长度,即容量

function[ste_cover,len_total]=lsbhide(input,file,output) %读入图像矩阵 cover=imread(input); ste_cover=cover;

ste_cover=double(ste_cover); %将文本文件转换为二进制序列 f_id=fopen(file,′r′);

[msg,len_total]=fread(f_id,′ubit1′); %判断嵌入消息量是否过大 [m,n]=size(ste_cover); if len_total>m*n

error(′嵌入消息量过大,请更换图像′); end

%p作为消息嵌入位数计数

此处填入合适的语句,完成按顺序进行信息嵌入

%生成信息隐秘后图像 imwrite(ste_cover,output); %显示实验结果

subplot(1,2,1);imshow(cover);title(′原始图像′);

subplot(1,2,2);imshow(output);title(′隐藏信息的图像′);

(2)调用函数compare.m比较两幅图像区别

(3)隐秘消息的提取

- 9 -

%文件名:lsbget.m

%函数功能:本函数将完成提取隐秘于LSB上的秘密消息

%输入格式举例:result=lsbget(′scover.bmp′,56,′secret.txt′) %参数说明:

%output是信息隐秘后的图像 %len_total是秘密消息的长度

%goalfile是提取出的秘密消息文件 %result是提取的消息

functionresult=lsbget(output,len_total,goalfile) ste_cover=imread(output); ste_cover=double(ste_cover); %判断嵌入消息量是否过大 [m,n]=size(ste_cover); frr=fopen(goalfile,′a′);

%p作为消息嵌入位数计数器,将消息序列写回文本文件

此处填入合适的语句,将消息序列写回文本文件

实验小结:

对顺序嵌入隐秘消息和随机嵌入隐秘消息两种方法的实现结果进行比较。

- 9 -

实验四 基于图像的DCT域信息隐藏

一、 实验目的

该实验为验证性实验。目的是通过实验使学生掌握经典信息隐藏算法,在Matlab环境下,编写基于图像DCT域的信息隐藏算法程序。用Matlab函数实现DCT域的信息隐藏及提取,并进行分析。

二、 实验要求

1、实验前要做好充分准备,包括:复习实验所涉及的知识点,掌握Matlab编程语言和调试环境。

2、实验时注意记录实验过程中产生的数据、出现的问题及解决问题的方法。 3、理论联系实际,认真分析实验结果,回答思考题。

4、实验后完成实验报告(含相关截图,并附打印的程序清单)。

三、 实验环境

计算机(安装Visual C++ 6.0和Matlab 6.5以上版本)

四、 实验原理

隐秘算法核心是将我们选取的像素点的最不重要位依次替换成秘密信息,以达到信息隐秘的目的。在DCT域隐藏的信息处于图像的显著区域,比在时域嵌入信息更具有鲁棒性。

五、 实验内容与步骤

(1)完善程序实现在DCT域对隐秘消息的嵌入。 (2)完善程序实现在DCT域对隐秘消息的提取。 (3)改变alpha值,并对所得结果进行比较。

六、 实验小结

- 9 -

搜索更多关于: 杨松信息隐藏实验指导书2 的文档
杨松信息隐藏实验指导书2.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c521hv2axqm4mg6383w90_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top