- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
信息隐藏 实验五 Patchwork 图像信息隐藏
实验五 Patchwork 图像信息隐藏
实验目的
了解Patchwork信息隐藏特点,
掌握基于Patchwork 的图像信息隐藏原理
设计并实现一种 Patchwork 的信息隐藏方法
实验环境
1, Windows XP 操作系统
2, Matlab 7.1版本软件
3, BMP格式图片文件
实验原理
Patchwork是指从载体数据中选择一些数据组成两个集合,通过修改这两个集合之间的某种关系来携带水印信息。这两个集合可以是两个系数、两组系数或者是两个特征量。两个集合之间的关系可以是大小关系、能量关系、逻辑关系和奇偶关系等。Patchwork方法嵌入水印时,通过修改集合之间的某种关系来嵌入水印;提取水印时则根据对应的关系来提取嵌入的水印信息。
在本实验报告中,验证了通过随机方式把像素分组的方法。随机选择N对像素点(ai和bi),然后将ai点的值增加d,将bi点的像素值减少d。
同时,设计了自己的算法。先把图像的像素写成一维矩阵,根据矩阵下标4*n形式和4*n-1形式分为两组,将下标为4*n形式所对应的像素增加常量d=2.3,将下标为4*n-1形式所对应的像素减少常量d=2.3。
实验内容
1, 验证通过随机方式把像素分组的方法。
(1)嵌入秘密信息
clc;
clear all;
oi=imread(baboon.bmp);%读入载体图像
ni=rgb2gray(oi);
wi=ni;
[row col]=size(wi);
wi=double(wi);
wi=wi(:);
n=floor((row*col)/10);
length=row*col;
rand(state,123);%产生随机数的密钥
a=rand(1,n);%产生N长度的随机数
d=2.3;%定义修改的分量
count=0;
k=1;
while k=n
if (a(1,k)=0.5)
wi(k*10,1)=wi(k*10,1)+d;
wi(k*10-1,1)=wi(k*10-1,1)-d;
end
k=k+1;
end
for i=1:row
for j=1:col
wil(i,j)=wi(row*(j-1)+i,1);
end
end
wil=uint8(wil);
imwrite(wil,watermarked.bmp);
subplot(1,2,1);imshow(ni);%显示原始图像
subplot(1,2,2);imshow(wil)%显示新图像
下图为原图与嵌入信息的图像:
(2)计算两个样本均值的差
clc;
clear;
oi=imread(watermarked.bmp);%读入嵌入水印后的图像
wi=oi;
[row col]=size(wi);
wi=double(wi);
wi=wi(:);
n=floor((row*col)/10);
r=1.6;
rand(state,123);%产生随机数的密钥
a=rand(1,n);%产生N长度的随机数
d=2.3;%定义修改的分量
count=0;
k=1;
tempa=0;
tempb=0;
while k=n
if(a(1,k)=0.5)
tempa=tempa+wi(k*10,1);
tempb=tempb+wi(k*10-1,1);
count=count+1;
end
k=k+1;
end
avea=tempa/count;
aveb=tempb/count;
if((avea-aveb)r*d)
watermark=1;
else
watermark=0;
end
计算后的结果在workspace中可以看出:
2,设计了自己的算法。
先把图像的像素写成一维矩阵,根据矩阵下标4*n形式和4*n-1形式分为两组,将下标为4*n形式所对应的像素增加常量d=2.3,将下标为4*n-1形式所对应的像素减少常量d=2.3。
(1)嵌入秘密信息
clc;
clear all;
oi=imread(baboon.bmp);%读入载体图像
ni=rgb2gray(oi);
wi=ni;
[row col]=size(wi);
wi=double(wi);
wi=wi(:);
length=row*col;
n=length/4;
d=2.3;
for k=1:n
wi(k*4,1)=wi(k*4,1)+d;
wi(k*4-1,1)=wi(k*4-1,1)-d;
k=k+1;
end
for i=1:row
for j=1:col
wil(i
原创力文档


文档评论(0)