- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
量化水印(有源码,绝对可以实现)
量化水印
背景知识
在数字水印中,我们知道,设计的水印算法有时要对保真度、鲁棒性等主要性能进行折中,而从保真度和鲁棒性这两个基本的特征出发,要求水印嵌入后满足以下两个条件:
从保真度出发,要求水印嵌入后,有水印的载体数据与原始载体数据近似相等。
从鲁棒性出发,要求嵌入水印后的载体数据具有非连续性,以确保可以对抗干扰。
最初将量化运用于水印,就是为解决这方面的问题而出发的。从数学的角度来看,量化可以表示如下:
Y=fstep(x)=step*[x/step]=step*round(x/step)
式中,x是待量化的数据,step是量化步长,Y是量化结果;[]和round均表示进行四舍五入取整;fstep( )是量化函数。
显然,量化函数fstep( )是一个多对一函数,是不可逆的,因此量化一般运用于不可逆水印,而且,由于量化结果均为整数,因此输出为离散值,并且误差满足|Y-x|=step/2,即在量化步长step不是特别大的情况下,Y与x是近似相等的,所以量化满足上述两个条件,可以运用于数字水印中。
量化水印的算法
设计量化水印系统的关键在于选择实时可行的量化器集合,将不同的待嵌入的水印信息与不同的量化器相对应起来,然后用相应的量化器将载体数据进行量化,就可以得到含有水印的载体数据。由于大多数情况下,水印信息都是二进制的,因此下面以研究如何嵌入二进制水印信息为例来进行说明。
二进制信息中,有0和1两种不同的数据,因此,需要两个不同的量化器,分别用A和B来表示。假设当发送水印信息为0时,用量化器A来对载体数据进行量化;当发送水印信息为1时,用量化器B来对载体数据进行量化,这样就可以得到两组不同的量化数据。在量化器中,量化器选择与原始载体数据最接近的数据来代替原始载体数据,从而保证不可感知性,即保真度;而且,A、B两个量化器之间的数据没有重叠,从而保证不同水印数据的不连续性,即使得水印系统具有一定的鲁棒性。提取水印时,根据待检数据与不同量化数据之间的距离,就可以恢复出嵌入的信息。
一种常用的二进制量化水印算法可以用公式表示如下:
Q(x,s)+s*3/4 , w=1
Y=
Q(x,s)+s*1/4 , w=0
式中,s代表量化步长,w表示水印信息,x表示原始载体数据,Q(x,s)是量化函数,Y是量化后的数据。Q(x,s)可如下表示
Q(x,s)=floor(x/s))) 水印检测时多为盲检测,不需要原始载体数据。
载体不影响水印的检测性能,在无干扰的情况下,可以完全恢复出嵌入的信息。
Matlab仿真
下面以最基本的量化水印算法来进行仿真设计,算法是基于时空域的,其M代码如下:
clear;
clc;
%=====================读入并显示载体图形=====================
p_lena=rgb2gray(imread(lena.jpg));
figure;
subplot(2,2,1);
imshow(p_lena);
[m1,n1]=size(p_lena);
%=====================读入并显示二值水印图片=====================
w_pict=imread(jnu.bmp);
subplot(2,2,2);
imshow(w_pict);
[m2,n2]=size(w_pict);
%===================对载体空域值嵌入水印======================
step=10;
code_lena=p_lena;
for i=1:m2
for j=1:n2
q=(floor(code_lena(2*i,2*j)/step))*step;
if w_pict(i,j)==0
code_lena(2*i,2*j)=q+step/4;
elseif w_pict(i,j)==1
code_lena(2*i,2*j)=q+3*step/4;
end
end
end
%===================显示嵌入水印后的载体图像===================
subplot(2,2,3)
imshow(code_lena);
%=========================提取水印============================
de_lena=code_lena;
f
您可能关注的文档
最近下载
- 2022年ECR ECN基础知识ppt课件.pptx VIP
- 2025年实验动物从业人员上岗证试题库+答案.docx
- 庄周梦蝶原文课件.pptx VIP
- 卧式储罐安装施工方案.docx VIP
- 二零二五版特种电缆定制与研发合作合同.docx
- 生长发育迟缓的诊断与干预.docx VIP
- 佳能 iC MF645Cx 645 彩色激光打印机中文维修手册.pdf VIP
- T_ZGCMITT 006.2-2022 介入诊疗服务质量评价 第2部分:介入诊疗技术规范.docx VIP
- SL 285-2020 水利水电工程进水口设计规范.pdf
- 2025年广州市花都区人民医院医护人员招聘备考试题及答案解析.docx VIP
文档评论(0)