网站大量收购独家精品文档,联系QQ:2885784924

小波实验报告dwt水印.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
=====WORD完整版----可编辑----专业资料分享===== ----完整版学习资料分享---- 一、题目:dwt水印 二、目的:编程实现水印的嵌入与还原 三、算法及其实现:水印的嵌入与还原 小波变换具有空间-频率的多尺度性,对图像的分解可以连续地从低分辨率过渡到高分辨率,也可以对图像整体进行变换,DWT还具有多分辨率特性,可以很好地与人类视觉系统(HVS)特性相匹配。 本算法将载体图像进行小波分解,利用公式实现水印信息的嵌入。将2值图像中0和1的值变成-1和1。。将水印入宿主图形重要的小波系数上。 水印的提取完全是水印嵌入的逆过程。 四、实现工具:Matlab 五、程序代码: (1)dwt1_embed.m %嵌入源码 clc clear all; % 保存开始时间 start_time=cputime; k=20; blocksize=8; % 设置块的大小 % 读入原图像 file_name=zimu.bmp; cover_object=double(imread(file_name)); % 原图像的行数与列数 Mc=size(cover_object,1); %原图像行数 Nc=size(cover_object,2); %原图像列数 % 最大嵌入信息量 max_message=Mc*Nc/(blocksize^2); % 读入水印图像 file_name=c.bmp; message=double(imread(file_name)); %%水印图像的行数与列数 Mm=size(message,1); %水印行数 Nm=size(message,2); %水印列数 message_vector=reshape(message,1,Mm*Nm); % 检查水印信息是否过大 if (Mm*Nm max_message) error(水印太大) end %将随机数发生器的状态置为1100 randn(state,1100); % 产生watermarked_image,并写入原图信息 watermarked_image=cover_object; % 将图像分块嵌入 % 当 (2,2) (2,3) 且 message_pad(kk)=0 % 当 (2,2) (2,3) 且 message_pad(kk)=1 %%经过分析可以得出结论:在提取水印时,如果cD1(2,2)cD1(2,3)便是嵌入了水印的黑色像素, %%反之则是嵌入了白色像素 x=1; y=1; h=waitbar(0,嵌入水印,请等待); for (kk = 1:length(message_vector)) % 对块进行DWT变换 [cA1,cH1,cV1,cD1] = dwt2(cover_object(x:x+blocksize-1,y:y+blocksize-1),haar); a=cD1; % 如果 message_pad(kk)== 0 if (message_vector(kk) == 0) % 且(2,2) (2,3) ,交换它们 if (cD1(2,2) cD1(2,3)) temp=cD1(2,3); cD1(2,3)=cD1(2,2); cD1(2,2)=temp; end % 如果message_pad(kk) == 1, elseif (message_vector(kk) == 1) % 且(2,2) (2,3) ,交换它们 if (cD1(2,2) = cD1(2,3)) temp=cD1(2,3); cD1(2,3)=cD1(2,2); cD1(2,2)=temp; end end % 检查(2,2) , (2,3)的差是否= k if cD1(2,2) cD1(2,3) if cD1(2,2) - cD1(2,3) k cD1(2,2)=cD1(2,2)+(k/2); cD1(2,3)=cD1(2,3)-(k/2); end else if cD

文档评论(0)

147****4268 + 关注
实名认证
文档贡献者

认真 负责 是我的态度

1亿VIP精品文档

相关文档