




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学数字图像处理课程设计设计目的(1)了解数字水印的基本概念,深入理解基于LSB算法的数字水印嵌入与提取方法。(2)运用MATLAB语言编程实现图像水印的嵌入和提取。(3)能够显示水印嵌入前后的载体图像,能够显示嵌入与提取的水印。2设计方案2.1数字水印的相关知识数字水印的相关知识数字水印(DigitalWatermark)技术是指用信号处理的方法在数字化的多媒体数据中嵌入隐蔽的标记,这种标记通常是不可见的,只有通过专用的检测器或阅读器才能提取。数字水印是信息隐藏技术的一个重要研究方向。在数字水印技术中,水印的数据量和鲁棒性构成了一对基本矛盾。从主观上讲,理想的水印算法应该既能隐藏大量数据,又可以抗各种信道噪声和信号变形。然而在实际中,这两个指标往往不能同时实现,不过这并不会影响数字水印技术的应用,因为实际应用一般只偏重其中的一个方面。如果是为了隐蔽通信,数据量显然是最重要的,由于通信方式极为隐蔽,遭遇敌方篡改攻击的可能性很小,因而对鲁棒性要求不高。但对保证数据安全来说,情况恰恰相反,各种保密的数据随时面临着被盗取和篡改的危险,所以鲁棒性是十分重要的,此时,隐藏数据量的要求居于次要地位。数字水印技术是通过一定的算法将一些标志性信息直接嵌到多媒体内容当中,但不影响原内容的价值和使用,并且不能被人的知觉系统觉察或注意到。水印信息可以是作者的序列号、公司标志、有特殊意义的文本等,可用来识别文件、图像或音乐制品的来源、版本、原作者、拥有者、发行人、合法使用人对数字产品的拥有权。与加密技术不同,数字水印技术并不能阻止盗版活动的发生,但它可以判别对象是否受到保护,监视被保护数据的传播、真伪鉴别和非法拷贝、解决版权纠纷并为法庭提供证据。为了给攻击者增加去除水印的难度,目前大多数水印制作方案都采用密码学中的加密(包括公开密钥、私有密钥)体系来加强,在水印的嵌入、提取时采用一种密钥,甚至几种密钥联合使用。2.2数字水印技术的基本原理数字水印的主要目的是将特定的信息加入到需要保护的媒体信息中,加入的信息一般是能够代表媒体信息版权的内容,如公司标志、媒体作者、特定代码等,而且要保证数字水印能够抵抗一定的攻击,而不被轻易的破坏和修改,同时数字水印要能够被提取或者能够被检测到。数字水印的具体内容、算法、提取或检测过程根据实际应用有不同的要求。数字水印的嵌入和提取过程如图2.1,图2.2所示。水印信息水印信息密钥图像带有水印的图像加密算法图2.1数字水印的嵌入过程水印图像水印图像密钥原始水印解密算法图2.2数字水印的提取过程2.3数字水印的分类数字水印算法一般可分为两种空域法和频域法,频域法有以下优点:3设计方案3.1LSB算法介绍LSB是一种简单传统的信息隐藏算法,属于数字水印技术中的一种。本文首先介绍了LSB技术的原理和特点,然后讨论了基于LSB的数字水印算法。最后利用MATLAB2009b对这一算法的加密过程进行了仿真。3.1.1LSB算法的基本原理对空域的LSB做替换,用来替换LSB的序列就是需要加入的水印信息、水印的数字摘要或者由水印生成的伪随机序列。由于水印信息嵌入的位置是LSB,为了满足水印的不可见性,允许嵌入的水印强度不可能太高。然而针对空域的各种处理,如游程编码前的预处理,会对不显著分量进行一定的压缩,所以LSB算法对这些操作很敏感。因此LSB算法最初是用于脆弱性水印的。3.1.2LSB算法基本步骤(1)将得到的隐藏有秘密信息的十进制像素值转换为二进制数据.(2)用二进制秘密信息中的每一比特信息替换与之相对应的载体数据的最低有效位.(3)将得到的含秘密信息的二进制数据转换为十进制像素值,从而获得含秘密信息的图像.3.2LSB算法的实现LSB算法实现较为简单,首先,需要考虑嵌入的数字水印的数据量,如果嵌入最低的1位,则可以嵌入的信息量是原始图像信息量的1/8,如果适用最低两位则可以嵌入的信息量是1/4。但是嵌入的数字水印的信息量越大,同时对图像的视觉效果影响也越大。在这里要嵌入一个二值的图像。然后,适当调整数字水印图像的大小和比特位数,以适应数字水印图像数据量的要求。最后,对原始图像中要使用的最低位置0,再将数字水印数据放人原始图像的最低位即可。下面通过MATLAB2009b2实现这一算法。这里选用一幅3264*2448像素,256灰度的图像,数字水印用“万泉公园”的字样的二值图像。置0的方法是调用模2函数mod(a,2),将得到的数值与原水印相减,从而得到最低位为0的图片。(使用两位最低有效位的话则用模4函数mod(a,4)然后相减)。LSB算法简单,实现容易,同时可以保证数字水印的不可见性,由于可以在最低位的每个像素上都插人数字水印信息,因此有较大的信息嵌入量。LSB算法一般嵌入图像的最低一位或者两位,如果嵌入的位数太多,则会被人眼察觉到。但是由于数字水印位于图像的不重要像素位上,因此很容易被图像过滤、量化和几何型变等操作破坏,以致无法恢复数字水印。针对基本的LSB算法的缺点,一些研究者也提出了一些改进的算法,如奇偶标识位隐藏算法、索引数据链隐藏算法等,这些算法能增强数字水印的隐蔽性。3.3设计流程图3.3.1水印嵌入的流程图读取图读取图像和水印图像用bitset函数将原图的最低有效位值换为水印的值用bitset函数将原图的最低有效位值换为水印的值得到得到有水印的图像图3.1水印嵌入的流程图3.3.2水印提取的流程图 读取带有水印的图像和水印图像用嵌入水印图像的最低有效位重建水印用嵌入水印图像的最低有效位重建水印得到嵌入的水印图3.2水印提取的流程图4程序源代码嵌入水印代码clearall;%保存开始时间start_time=cputime;%读入原图像file_name='1.jpg';[cover_object,map]=imread(file_name);%读入水印图像file_name='2.jpg';[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);%水印的列数%将水印扩展为原图像大小,并写入watermarkforii=1:Mcforjj=1:Ncwatermark(ii,jj)=message(mod(ii,Mm)+1,mod(jj,Nm)+1);%用mod函数进行求余处理endend%将原图的最低有效位值换为水印的值watermarked_image=cover_object;forii=1:Mcforjj=1:Ncwatermarked_image(ii,jj)=bitset(watermarked_image(ii,jj),1,watermark(ii,jj));%用bitset函数将原图的最低有效位值换为水印的值endend%将嵌入水印图像写入lsb_watermarked.bmpimwrite(watermarked_image,'lsb_watermarked.bmp','bmp');%显示运行时间elapsed_time=cputime-start_time,%显示嵌入水印图像figure(1);subplot(1,2,1);imshow(watermarked_image,[]);title('嵌入水印图像');subplot(1,2,2);imshow(cover_object,[]);title('原图像');%%扩展后水印forii=1:Mcforjj=1:Ncwatermark1(ii,jj)=message1(mod(ii,Mm)+1,mod(jj,Nm)+1);%用mod函数对水印进行扩展endend%显示结果figure(2);subplot(1,2,1);imshow(watermark1,[]);title('扩展后的水印');figure(2);subplot(1,2,2);imshow(message1,[]);title('原水印');(2)水印的提取过程clearall;%保存开始时间start_time=cputime;%读入嵌入水印图像file_name='lsb_watermarked.bmp';watermarked_image=imread(file_name);%嵌入水印图像的行数与列数Mw=size(watermarked_image,1);%嵌入水印图像行数Nw=size(watermarked_image,2);%嵌入水印图像列数%读入原始水印file_name='2.jpg';orig_watermark=imread(file_name);%%原始水印的行数与列数Mm=size(orig_watermark,1);%水印的行数Nm=size(orig_watermark,2);%水印的列数%用嵌入水印图像的最低有效位重建水印forii=1:Mwforjj=1:Nwwatermark(ii,jj)=bitget(watermarked_image(ii,jj),1);%用bitget函数重建水印endend%将提取水印变为原始水印大小watermark=2*double(watermark);forii=1:Mm-1forjj=1:Nm-1watermark1(ii+1,jj+1)=watermark(ii,jj);endendwatermark1(1,1)=watermark(Mm,Nm);%显示运行时间elapsed_time=cputime-start_time,%显示嵌入水印图像,提取水印以及原始水印figure(1);subplot(1,2,1);imshow(watermarked_image,[]);title('嵌入水印图像');figure(2);subplot(1,2,1);imshow(watermark1,[]);title('提取水印');figure(2);subplot(1,2,2);imshow(orig_watermark,[]);title('原始水印');
5仿真结果与分析5.1嵌入水印后的运行结果(1)根据水印嵌入算法及显示函数,得出原图像和嵌入水印后的图像,如图5.1图5.1原图像和嵌入水印后的图像(2)将要嵌入到图像中的水印显示出来,如图5.2图5.2原水印的图像5.2提取水印后的运行结果(1)将水印通过嵌入算法嵌入到图像中,并将嵌入水印的图像写入到temp.jpg中,嵌入水印的图像如图5.3图5.3嵌入水印的图像(2)通过提取水印的过程算法将水印从原图像中提取出来,如图5.4
图5.4原水印与提取的水印图像5.3结果分析(1)嵌入水印后的运行结果结果图如上图5.1和图5.2,图5.1表示的是原图像和嵌入水印后的结果图像,图5.2表示的是原水印和扩展后的水印的结果图像。通过图示显示,可知LSB算法的实现简单和保证水印的不可见性.(2)提取水印后的运行结果结果图如上图5.3和图5.4,图5.3表示的是嵌入水印的原图像,图5.4表示的是原水印与提取的水印的图像。通过图示显示,正确的提取中水印,但是水印有一定的模糊性.6结论通过本次的课程设计,理解到了水印的嵌入和提取的过程,了解到水印的用处和价值,在以后的实际生活中也可以采用LSB算法实现水印的嵌入.可以起到图像版权或者防止篡改的保护性.本设计采用的是基于空域的水印实现,通过LSB算法实现起来比较简单,同时可以保证数字水印的不可见性.但是在实践的课程中,发现如果嵌入的位数太多,则会被人眼察觉到。但是由于数字水印位于图像的不重要像素位上,因此很容易被图像过滤、量化和几何型变等操作破坏,以致无法恢复数字水印.所以通常可采用一些增强数字水印的隐蔽性的算法.如奇偶标识位隐藏算法、索引数据链隐藏算法等,从而使水印的隐蔽性更高.参考文献[1]林福宗.多媒体技术基础(第2版)课程设计与学习指导[M].北京:清华大学出版社,2006[2]姚敏.数字图像处理[M].北京:机械工业出版社,2006[3]容观澳.计算
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《苏武传》教学设计 2024-2025学年统编版高中语文选择性必修中册
- Unit 1 How can I get there?PartA(教学设计)-2024-2025学年人教PEP版英语六年级上册
- 山东医学高等专科学校《物理化学B(下)》2023-2024学年第二学期期末试卷
- 山东华宇工学院《土木工程材料》2023-2024学年第二学期期末试卷
- 山西药科职业学院《财务大数据决策》2023-2024学年第二学期期末试卷
- 内蒙古电子信息职业技术学院《有色冶金设备》2023-2024学年第二学期期末试卷
- 曲阜师范大学《水墨语言探索》2023-2024学年第二学期期末试卷
- 襄阳科技职业学院《材料科学基础(下)》2023-2024学年第二学期期末试卷
- 25王戎不取道旁李 教学设计-2024-2025学年语文四年级上册统编版
- Unit 1 Festivals and Celebrations Listening and Speaking 教学设计-2023-2024学年高一英语人教版(2019)必修第三册
- SpaceClaim.中文教程完整版
- 哈弗汽车品牌全案策略及营销推广方案
- 04J008 挡土墙(重力式 衡重式 悬臂式)
- 《哈佛经典谈判术》读书笔记思维导图
- 质量管理小组活动准则TCAQ10201-2020
- 扶梯人行道检验验收作业指导书
- GB/T 41855-2022小型游乐设施转椅
- 2023年苏州卫生职业技术学院高职单招(英语)试题库含答案解析
- GB/T 20308-2020产品几何技术规范(GPS)矩阵模型
- 男孩女孩动起来健康运动知识PPT模板
- 体育原理课件
评论
0/150
提交评论