课设lsb算法.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息隐藏课设LSB算法实验步骤隐藏提取及测试(1)隐藏算法,保存在hide_lsb.m文件中。function o = hide_lsb(block, data, I)%function o = hide_lsb(block, data, I)%block:the minimal ceil to hide%data:the information%I:source imagesi = size(I);lend = length(data);%将图像划分为M*N个小块N = floor(si(2) / block(2));M = min(floor(si(1) / block(1)), ceil(lend / N));o = I;fori = 0 : M-1%计算每小块垂直方向起止位置rst = i * block(1) + 1;red = (i + 1) * block(1);for j = 0 : N-1%计算每小块隐藏的秘密信息的序号idx = i * N + j + 1;ifidx lendbreak;end;%取每小块隐藏的秘密信息bit = data(idx);%计算每小块水平方向起止位置cst = j * block(2) + 1;ced = (j + 1) * block(2);%将每小块最低位平面替换为秘密信息 o(rst:red, cst:ced) = bitset(o(rst:red, cst:ced), 1, bit);end;end;(2)提取算法,保存在dh_lsb.m文件中。function out = dh_lsb(block, I)%function out = dh_lsb(block, I)%block:the minimal ceil to dehide%I:stegoed imagesi = size(I);%将图像划分为M*N个小块N = floor(si(2) / block(2));M = floor(si(1) / block(1));out = [];%计算比特1判决阈值:即每小块半数以上元素隐藏的是比特1时,判决该小块嵌入的信息为1thr = ceil((block(1) * block(2) + 1) / 2);idx = 0;fori = 0 : M-1%计算每小块垂直方向起止位置rst = i * block(1) + 1;red = (i + 1) * block(1);for j = 0 : N-1%计算每小块将要数据的秘密信息的序号idx = i * N + j + 1;%计算每小块水平方向起止位置cst = j * block(2) + 1;ced = (j + 1) * block(2);%提取小块最低位平面,统计1比特个数,判决输出秘密信息tmp = sum(sum(bitget(I(rst:red, cst:ced), 1)));if(tmp = thr)out(idx) = 1;elseout(idx) = 0;end;end;end;(3)测试脚本,保存在test.m文件中。fid = 1;len = 10;%随机生成要隐藏的秘密信息d = randsrc(1, len, [0 1]);block = [3, 3];[fn, pn] = uigetfile({*.bmp, bmp file(*.bmp);}, 选择载体);s = imread(strcat(pn, fn));ss = size(s);if(length(ss) = 3)I = rgb2gray(s);else I = s;end;si = size(I);sN = floor(si(1) / block(1)) * floor(si(2) / block(2));tN = length(d);%如果载体图像尺寸不足以隐藏秘密信息,则在垂直方向上复制填充图像ifsN tNmultiple = ceil(tN / sN);tmp = [];fori = 1:multipletmp = [tmp; I];end; I = tmp;end;%调用隐藏算法,把隐蔽载体写至硬盘。stegoed = hide_lsb(block, d, I);imwrite(stegoed, hide.bmp, bmp);[fn, pn] = uigetfile({*.bmp, bmp file(*.bmp);}, 选择隐蔽载体);y = imread(strcat(pn, fn));sy = size(y);if(length(sy) = 3) I = rgb2gray(y);else I = y;end; %调用提取算法,获得秘密信息。out = dh_lsb(block,

文档评论(0)

gfh669266 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档