LSB算法水印安全性测试及MATLAB实现.doc

LSB算法水印安全性测试及MATLAB实现.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
MATLAB - Matlab的优势和特点: (1)友好的工作平台和编程环境 MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。随着MATLAB的商业化以及软件本身的不断升级,MATLAB的用户界面也越来越精致,更加接近Windows的标准界面,人机交互性更强,操作更简单。而且新版本的MATLAB提供了完整的联机查询、帮助系统,极大的方便了用户的使用。简单的编程环境提供了比较完备的调试系统,程序不必经过编译就可以直接运行,而且能够及时地报告出现的错误及进行出错原因分析。 (2)简单易用的程序语言 Matlab一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。新版本的MATLAB语言是基于最为流行的C++语言基础上的,因此语法特征与C+语言极为相似,而且更加简单,更加符合科技人员对数字表达式的书写格式。使之更利于非计算机专业的科技人员使用。而且这种语言可移植性好、可拓展性极强,这也是MATLAB之所以能够深入到科学研究及工程计算各个领域的重要原因。 LSB算法水印安全性测试 LSB算法水印源码 1、嵌入源码 clear all; % 保存开始时间 start_time=cputime; % 读入原图像 file_name=1.jpeg; [cover_object,map]=imread(file_name); % 读入水印图像 file_name=2.jpeg; [message,map1]=imread(file_name); message1=message; message=double(message); ? %%转换为double数 message=fix(message./2); ? %%转换为0,1组成的矩阵 message=uint8(message); ? %%转换为uint8数 % 原图的行数与列数 Mc=size(cover_object,1); ? ?%原图的行数 Nc=size(cover_object,2); ? ?%原图的列数 % 水印的行数与列数 Mm=size(message,1); ? ? ? ? %水印的行数 Nm=size(message,2); ? ? ? ? %水印的列数 % 将水印扩展为原图像大小,并写入watermark for ii = 1:Mc ? for jj = 1:Nc ? ? watermark(ii,jj)=message(mod(ii,Mm)+1,mod(jj,Nm)+1); ? end end % 将原图的最低有效位值换为水印的值 watermarked_image=cover_object; for ii = 1:Mc ? for jj = 1:Nc ? ? watermarked_image(ii,jj)=bitset(watermarked_image(ii,jj),1,watermark(ii,jj)); ? end end % 将嵌入水印图像写入lsb_watermarked.jpeg imwrite(watermarked_image,lsb_watermarked.jpeg,jpeg); % 显示运行时间 elapsed_time=cputime-start_time, % 显示嵌入水印图像 figure(1) subplot(1,2,1) imshow(watermarked_image,[]) title(嵌入水印图像) subplot(1,2,2) imshow(cover_object,[]) title(原图像) %%扩展后水印 for ii = 1:Mc ? for jj = 1:Nc ? ? watermark1(ii,jj)=message1(mod(ii,Mm)+1,mod(jj,Nm)+1); ? end end figure(2) imshow(watermark1,[]) title(扩展后的水印) figure(3) imshow(message1,[]) title(原水印) 2、提取源码 clear all; % 保存开始时间 start_time=cputime; % 读入嵌入水印图像 file_name=lsb_watermarked.jpeg ; watermarked_image=imread(file_name); % 嵌入水印图像的行数与列数 Mw=size(watermarked_im

文档评论(0)

aena45 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档