信息隐藏实验八完全脆弱图像水印

信息隐藏实验八完全脆弱图像水印

ID:22439442

大小:124.50 KB

页数:7页

时间:2018-10-29

信息隐藏实验八完全脆弱图像水印_第1页
信息隐藏实验八完全脆弱图像水印_第2页
信息隐藏实验八完全脆弱图像水印_第3页
信息隐藏实验八完全脆弱图像水印_第4页
信息隐藏实验八完全脆弱图像水印_第5页
资源描述:

《信息隐藏实验八完全脆弱图像水印》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验八完全脆弱图像水印(一)实验目的了解什么是脆弱水印和半脆弱水印,掌握实现半脆弱水印和脆弱水印的原理,设计被实现一种完全脆弱水印算法。(二)实验环境1、Windowsxp操作系统2、Matlab7.1版木软件3、BMP图像(三)实验原理1、嵌入信息校验和算法首先计算每个像素字节最高7位的Checksum值,Checksum值定义为一系列相同长度数据的二进制位的模2和。在该算法中,此长度为8个连续像素中的最高7位的联合长度,共56位。在Checksum值计算过程中,整幅图像中的每个像素都参与计算,但每个像素只计算一次,最后结果为56位的数据。该算法随后在图像屮随机选

2、取56个像素,将每个像素的最低位变为与上述Checksum比特位相同,以此存储Checksum值,从而完成水印的嵌入。2、提取信息在提取水印时,只需计算图像的Checksum值并与水印信息中的Checksum值进行比较,便可知水印是否因遭受篡改而被损坏。(四)实验步骤1、嵌入秘密信息。2、提取秘密信息。(五)实验截图1、图像显示截图图1-1原始图像和携密图像的对比图结果:在显不上两者基木无差别。2、检查图像是否被修改123458789101112IJJ000000000013141516171819)20212223000000000002S262728293031

3、323334350000000000037383940414243<445<6<748000000000004950515253545510000000图1-2提取秘密信息结果:diff数组值全为0,表示图像未被修改(六)代码1、嵌入秘密信息clc;clear;oi=imread(,lena.bmp,);[orow,ocoll=size(oi);pixelcount=orow*ocol;%计算总像素个数count=floor(pixelcount/8);%总像素分为8个一组wi=oi(:);fori=l:count%用于存放56比特forj=1:56l(i,j)=u

4、int8(0);endendk=l;i=l;fori=l:countwherestart=8*(i-I);forj=1:8b(i,j)=wi(wherestart+j);endend%把每个像素值的高7位取出,顺序为2、3、4、5、6、7、8modcount=1;fori=l:countforj=l:8fork=l:7l(i,7*(j-l)+k)=bitget(b(i,j),k+1);modcount=modcount+1;endendend%把所有的56位的值按照模2加得到一个56位长度的Checksum值z=sum(l,l);fori=l:56z(l,i)=mo

5、d(z(l,i),2);end%从图像中随机选取56个像素点key=123%用户选取随机嵌入的位置z=uint8(z);[row,col]=randselect(oi,56,key);fork=l:56temp(k)=oi(row(k),col(k));tempi=str2bit(temp(k));templ(8)=z(k);oi(row(k),col(k))=bit2str(temp1);endimwrite(oi,’watermarked.bmp’,’bmp’);figure;subplot(1,2,1);imshow(’lena.bmp’);title('原始

6、图像’);subplot(l,2,2);imshow(’watermarked.bmp*);title(•添加水印信息的图像’);2、提取秘密信息clc;clear;oi=imread(’watermarked.bmp’);forowocol]=size(oi);pixelcount=orow*ocol;%计算总像素个数count=floor(pixelcount/8);wi=oi(:);fori=l:count%用于存放56比特forj=1:56l(i,j)=uint8(0);endendk=l;i=l;fori=l:countwherestart=8*(i-l)

7、;forj=1:8b(ij)=wi(wherestart+j);endend%把每个像素值的高7位取出,顺序为2,3,4,5,6,7,8modcount=1;fori=l:countforj=1:8fork=l:7l(i,7*(j-l)+k)=bitget(b(i,j),k+1);modcount=modcount+1;endendend%把所有的56位的值按照模2加得到一个56位长度的Checksum值z=sum(l,l);fori=l:56z(l,i)=mod(z(l,i),2);end%从图像中选取56个像素值key=123;%用户选取随机嵌入的位置for

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。