L S B图片信息隐藏隐藏实验精选文档TTMS system office room 【TTMS16H-TTMS2A-TTMS8Q8-上海电力学院高级程序设计(C)课程设计报告Array题院系:计算机科学与技术学院专业年级:信息安全2012级学生姓名:涂桂花学号:指导教师:魏为民2015年4月14日目录上 海 电 力学 院实 验 报 告课程名称 实验项目 姓名 学号 班级 专业 同组人姓名 指导教师 魏为民 实验日期 一、实验目的1.用MATLAB 函数实现LSB 信息隐藏和提取。
2.了解信息隐藏的作用和实现方法原理。
3.学会分析了解隐藏算法。
二、实验内容和步骤如操作环境、系统配置、操作步骤、程序源代码等。
1.操作环境操作系统 Windows 7 旗舰版 64位 SP1 ( DirectX 11 )2.系统配置处理器AMD E1-2100 APU with Radeon HD Graphics 双核3.操作步骤1) 打开MATLAB 软件,新建文件夹名为“ LSB ”。
2) 在“Command Window ”窗口里输入“guide ”,回车。
a. 如下图所示建立图形界面。
将5个push button 控件的“String ”属性设置为下图相应显示的名字,Tag 属性设置为pbt+String 名的格式。
将4个axec控件的Tag 属性设置为如下图所显示的名字。
信息安全 LSB 信息隐藏实验涂桂花 2012252 信息安全无3)分别右键点击5个push button控件,View Callbacks->CallBacks.给每个控件添加Callback代码。
再添加代码之前要为该fig文件命名。
我在本次实验命名为。
各个控件的代码如下:% --- Executes on button press in pbtCover.function pbtCover_Callback(hObject, eventdata, handles)% hObject handle to pbtCover (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global gCover;[gCover,sFile]=loadimg();if isempty(gCover)msgbox('Cover image is empty!','Warning','warn','modal');return;endaxes;imshow(gCover);[iH iW iL]=size(gCover);sMsg=[sFile,'[',num2str(iH),'*',num2str(iW),'*',num2str(iL),']'];set,'String',sMsg);% --- Executes on button press in pbtSecret.function pbtSecret_Callback(hObject, eventdata, handles)% hObject handle to pbtSecret (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global gSecret;[gSecret ,sFile]=loadimg();if isempty(gSecret)msgbox('Secret image is empty!','Warning','warn','modal');return;endaxes;imshow(gSecret);[iH iW iL]=size(gSecret);sMsg=[sFile,'[',num2str(iH),'*',num2str(iW),'*',num2str(iL),']'];set,'String',sMsg);set,'String','Secret Image');% --- Executes on button press in pbtEmbed.function pbtEmbed_Callback(hObject, eventdata, handles)% hObject handle to pbtEmbed (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global gCover gSecret gStego;if isempty(gCover)msgbox('Cover image is empty!' , 'Warning' , 'warn' , 'modal' );return;endif isempty(gSecret)msgbox('gSecret image is empty!' , 'Warning' , 'warn' , 'modal' ); return;end[Hc,Wc,Lc]=size(gCover);[Hs,Ws,Ls]=size(gSecret);if (Hc~=Hs) || (Wc~=Ws) || (Lc~=Ls)disp('Error: Not Match!' );return;endgStego = uint8(bitor(bitand(gCover,254),bitshift(gSecret,-7))); imwrite(gStego, '~' );axes;imshow(gStego,[]);% --- Executes on button press in pbtExtract.function pbtExtract_Callback(hObject, eventdata, handles)% hObject handle to pbtExtract (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global gStego;global gCover gSecret;if isempty(gCover)msgbox('Cover image is empty!' , 'Warning' , 'warn' , 'modal' ); return;endif isempty(gSecret)msgbox('gSecret image is empty!' , 'Warning' , 'warn' , 'modal' ); return;end[Hc,Wc,Lc]=size(gCover);[Hs,Ws,Ls]=size(gSecret);if (Hc~=Hs) || (Wc~=Ws) || (Lc~=Ls)disp('Error: Not Match!' );return;endgStego = uint8(bitor(bitand(gCover,254),bitshift(gSecret,-7))); imwrite(gStego, '~' );axes;imshow(gStego,[]);if isempty(gStego)msgbox('Stego image is empty!' , 'Warning' , 'warn' , 'modal' ); return;endimExtract = uint8(bitand(255,bitshift(gStego,7)));imwrite(imExtract, '~' );axes;imshow(imExtract);msgbox('Extracted Image: ~' , 'Finished' );% --- Executes on button press in pbtExit.function pbtExit_Callback(hObject, eventdata, handles)% hObject handle to pbtExit (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)q=questdlg('Are you sure to exit','figLSB','Yes','No','No');if strcmp(q,'No')return;enddelete ~*.*%delete ;delete (LSB3333);4)将测试图片或者图片文件夹放在LSB文件夹下。
最后点击保存。
4.程序源代码见附件。
三、实验结果1.测试图片①隐藏载体图:Leno图片信息②隐藏秘密图:Boy图片信息2.测试结果①隐藏后的图片信息:②从隐藏后的图中提取出来的秘密图片信息:3.截屏四.实验小结1. 遇到的问题总结合分析:(1)问题:点击退出按键后选择退出Yes,不能完全退出。