ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:272.62KB ,
资源ID:11975946      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11975946.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(信息隐藏实验LSB隐写随机LSB隐写RS隐写分析.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

信息隐藏实验LSB隐写随机LSB隐写RS隐写分析.docx

1、信息隐藏实验LSB隐写随机LSB隐写RS隐写分析信息隐藏实验二LSB隐写分析 姓名:周伟康 学号: 班级:一:实验要求1、针对自己实现的隐写算法(嵌入、提取),计算隐蔽载体的PSNR值,通过PSNR值来评估隐写对图像质量的影响,并与主观感受做对比。2、实现一种隐写分析方法,对隐蔽载体进行检测(卡方、RS)二:实验步骤1、 编写随机选点函数,完善顺序和随机两种LSB信息嵌入和提取。%随机间隔选点函数%row, col = randinterval(test, 60, 1983);function row, col = randinterval(matrix, count, key)m, n =

2、size(matrix);interval1 = floor(m * n / count) + 1;interval2 = interval1 - 2;if interval2 = 0 error(载体太小,不能将秘密消息隐藏其内!);endrand(seed, key);a = rand(1, count);%initializerow = zeros(1 count);col = zeros(1 count);r = 1; c = 1;row(1,1) = r;col(1,1) = c;for i = 2 : count if a(i) = 0.5 c = c + interval1; e

3、lse c = c + interval2; end if c n r = r + 1; if r m error(载体太小,不能将秘密消息隐藏其内!); end c = mod(c, n); if c=0 c = 1; end endrow(1, i) = r;col(1, i) = c;end 选取8*8的矩阵测试 2、 对比原始图像和隐藏信息后图像,计算隐蔽载体的均方差(MSE)进而计算峰值信噪比(PSNR),评估隐写对图像质量的影响。 %输入格式: F = compare(D:课件hidepic2.jpg,scover.jpg);function F = compare(origina

4、l, hided)W = imread(original);E = imread(hided);if any(size(W)=size(E) error(尺寸不同,不能比较);endF = W - E;%F = double(F)/255;imshow(mat2gray(double(F)/255);psnr, mse = qualify(F);function PSNR, MSE = qualify(Delta)%计算MSE和PSNR; MSE = sum(Delta(:) .2)/prod(size(W); PSNR = 10*log10(2552/MSE); endtitle(差异对比

5、PSNR = ,num2str(psnr);end测试代码:clc;clear;key = 20112910;originalfile = D:hidepicb.bmp;messagefile = D:hidepicmessage.txt;scoverfile1 = D:hidepicscover1.bmp;scoverfile2 = D:hidepicscover2.bmp;getfile1 = D:hidepicsecret1.txt;getfile2 = D:hidepicsecret2.txt;ste_cover, len_total = LSBhide(originalfile,me

6、ssagefile,scoverfile1);subplot(233);compare(originalfile,scoverfile1);x = LSBget(scoverfile1, len_total, getfile1);% ffste_cover2, len_total2 = randLSBhide(originalfile, messagefile,scoverfile2,key);subplot(236);compare(originalfile,scoverfile2);x = randLSBget(scoverfile2, len_total2, getfile2,key);

7、隐写提取结果:(成功)实验结果1:实验结果2:结果分析:后者PSNR大说明随机LSB比顺序LSB隐写安全性更好。3、 对256256像素,256色的灰度图像进行RS隐写分析。RS原理:给定一个图像块,Zigzag扫描,排列成一个向量 G=(x1,x2xn)图像的空间相关性定义翻转函数:F1:2i与2i+1的相互变化关系F-1:2i-1与2i的相互变化关系F0:不变关系RS分析步骤:将待检测图像分成大小相同的图像块计算每个图像块的空间相关性对每个图像块应用非负翻转(F1, F0)RM=空间相关性增加的图像块个数/图像块总个数SM=空间相关性减小的图像块个数/图像块总个数对每个图像块应用非正翻转(

8、F-1, F0) R-M=空间相关性增加的图像块个数/图像块总个数S-M=空间相关性减小的图像块个数/图像块总个数若R-M - S-M RM SM,则有LSB隐写。 %RS方法对256*256像素,256色灰度图进行LSB隐写检测。%y = RSanalysis(originalfile);function fff = RSanalysis(input)org = imread(input);org = double(org);org = org(:);row, len = size(org);rs = zeros(2, 4);fx = zeros(1, 3);m = floor(len /

9、4);M = randsrc(4, 1, 0, 1);%temp = zeros(4, 1);%temp = 27,28,26,25;M = 1 0 1 0;stg = org;for i = 1:2 for j = 1:m temp = stg(j-1)*4+1 : j * 4); %disp(temp); fx(1) = discrimination(temp); fx(2) = discrimination(fpos(temp, M); fx(3) = discrimination(fneg(temp, M); if fx(2) fx(1) rs(i, 1) = rs(i, 1) + 1

10、; end if fx(2) fx(1) rs(i, 3) = rs(i, 3) + 1; end if fx(3) (rs(1,1)-rs(1,2);if fff disp(含有隐藏信息);elsedisp(未检测出隐藏信息。);endrs = rs/m;dpz = rs(1,1) - rs(1,2); dpo = rs(2,1) - rs(2,2);dnz = rs(1,3) - rs(1,4); dno = rs(2,3) - rs(2,4);C = 2*(dpo+dpz),(dnz-dno-dpo-3*dpz),(dpz-dnz);z = roots(C);p = z ./ (z-0.

11、5);fprintf(1,隐写率为:%fn, p(2);fprintf(1,隐写长:%fn, p(2)*row*len);endfunction v = discrimination(t) v = abs(t(2)-t(1) + abs(t(3)-t(2) + abs(t(4)-t(3);end function r = fpos(t, m) r = t; MM = size(m, 2); for q = 1:MM if m(q) = 1 if mod(t(q),2) = 0 r(q) = r(q) + 1; else r(q) = r(q) - 1; end if r(q) 255 r(q)

12、 = 0; end end endendfunction r = fneg(t, m) r = t; for q = 1:size(m) if m(q) = 1 if mod(t(q),2) = 0 r(q) = r(q) - 1; else r(q) = r(q) + 1; end end if r(q) 255 r(q) = 0; end endend 测试代码:y = RSanalysis(originalfile);y = RSanalysis(scoverfile1);y = RSanalysis(scoverfile2);实验数据1:(对应Bird图隐写)实验数据2:(对应Lena

13、图隐写) 结果分析: 隐写检测成功!但是隐写率和隐写消息长度估计严重有误,应该是参数计算有误。三:总结 对Matlab进一步学习后,初步掌握了函数的编写方法,将本次和上次实验代码修改为函数封装调用的形式,使编码结构更清晰,编写修改更方便。代码后若无;,执行时会产生大量中间过程输出,耽误运行和查看。故要养成写分号的习惯,若必要的输出用disp或加注释醒目。对不符合大小尺寸的隐蔽体,将无法分析出正确结果。对于几个字节的短消息隐藏载体,也无法检测到隐藏了信息。隐写率和隐写信息长估计都没有调试成功,对算法还没有完全理解通透。附:顺序LSB和随机LSB隐写,提取代码:LSBhide.m%LSB上的顺序信

14、息隐藏,载体选用灰度bmp图%输入格式: ste_cover, len_total =% LSBhide(D:课件hidepic2.jpg,D:课件hidepicmessage.txt,scover.jpg);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 = frea

15、d(f_id, ubit1);fprintf(隐藏消息长度:%dn,len_total);%溢出检测m, n = size(ste_cover);if len_total m * n error(嵌入消息量过大,请更换图像!);endif len_total = 0 error(请输入隐藏消息!);endp = 1;for f2 = 1 : n for f1 = 1 : m ste_cover(f1, f2) = ste_cover(f1, f2) - mod(ste_cover(f1, f2), 2) + msg(p, 1); if p = len_total break; end p =

16、p + 1; end if p = len_total break; endend%生成信息隐藏后的图像imwrite(ste_cover, output);%显示结果subplot(231);imshow(cover);title(原始图像);subplot(232);imshow(output);title(LSB隐藏后图像);LSBget.m%result = LSBget(scover.bmp,length, secret.txt)function result = LSBget(output, len_total, goalfile)ste_cover = imread(output

17、);%ste_cover = double(ste_cover);m, n = size(ste_cover);frr = fopen(goalfile, w);if len_total m * n error(嵌入消息量过大,请更换图像!);endif len_total = 0 error(请输入隐藏消息!);endp = 1;row, col = randinterval(ste_cover, len_total, key);for i = 1 : len_total ROW = row(i); COL = col(i); ste_cover(ROW, COL) = ste_cover(

18、ROW, COL) - mod(ste_cover(ROW, COL), 2) + msg(p, 1); if p = len_total break; end p = p + 1;end%生成信息隐藏后的图像imwrite(ste_cover, output);%显示结果subplot(234);imshow(cover);title(原始图像);subplot(235);imshow(output);title(随机LSB隐藏后图像);randLSBget.m%result = randLSBget(scover.bmp,length, secret.txt)function result

19、 = randLSBget(output, len_total, goalfile, key)ste_cover = imread(output);%ste_cover = double(ste_cover);m, n = size(ste_cover);frr = fopen(goalfile, w);if len_total = 0 error(请输入隐藏消息!);endp = 1;result = ones(len_total,1);row, col = randinterval(ste_cover, len_total, key);for i = 1 : len_total ROW = row(i); COL = col(i); result(p, 1) = mod(ste_cover(ROW, COL), 2); if p = len_total break; end p = p + 1;endfwrite(frr,result,ubit1);fclose(frr);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1