dwt水印原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
彩色水印嵌入的具体步骤
(1)分别对彩色的宿主图像和水印图像进行降维处理[11],提取各自的RGB值,这样原来的三维数组就变成了三个独立的二维数组。
(2)对宿主图像的三个二维数组分别进行二级小波分解,之后对数字水印的三个二维数组进行一级小波分解。
(3)设定三个水印图像的RGB嵌入系数,并设定嵌入规则,按此规则将水印图像分别嵌入到宿主图像中。
(4)对嵌入后图像进行小波系数重构,得到新图像的RGB一维分量。
(5)最后经过RGB分量合成,得到含水印的彩色图像。
(1)原始图像和水印图像如图5-2所示,均为BMP格式。之后分别对两幅图像进行降维处理,提取各自的RGB的值,将三维数组变成三个独立的二维数组并显示。部分程序语句如下:
input=imread('image.bmp');
imshow(RGB(:,:,1));
Title(’r分量’);
(2)利用多维小波分解函数Wavedec2()对宿主图像的RGB二维分量分别进行2级小波分解,同样对彩色水印图像的RGB分量进行1级小波分解。部分程序如下:
[Cwr,Swr]=wavedec2(waterr,1,'haar');
[Cr,Sr]=wavedec2(inputr,2,'haar');
(3)设定三个水印图像的RGB分量的嵌入系数,利用线性嵌入规则将水印图像分量分别嵌入宿主图像的数组之中。部分程序如下:
Cr(1:size(Cwr,2)/16)=...
Cr(1:size(Cwr,2)/16)+r*Cwr(1:size(Cwr,2)/16);
(4)利用函数Wavedec2()对嵌入后的RGB分量进行小波系数重构,得到新图像的RGB分量。
(5)最后经过RGB分量的在合成得到嵌入水印后的图像。部分程序如下:
temp=size(inputr);
pic=zeros(temp(1),temp(2),3);
for i=1:temp(1);
for j=1:temp(2);
pic(i,j,1)=inputr(i,j);
pic(i,j,2)=inputg(i,j);
pic(i,j,3)=inputb(i,j);
彩色水印提取的具体步骤
(1)分别对彩色的宿主图像和检测图像进行降维处理,提取各自的RGB值,则原来的三维数组就变成三个二维数组。
(2)对各自的三个独立二维数组进行二级小波分解。
(3)按照嵌入规则的逆变换和三种分量的嵌入强度,得到RGB 三种颜色的小波系数。
(4)将RGB 三种颜色按小波系数进行重构。 (5)将RGB 三种颜色进行合成得到水印图像。
RGB 彩色水印图像的提取实验步骤:
(1)将原始宿主图像和待检测图像分别进行RGB 三色分离。 (2)对于每一种分量,对两幅图像分别进行小波分解。 [Cwr,Swr]=WAVEDEC2(watermarked_imager,2,'haar'); [Cr,Sr]=WAVEDEC2(inputr,2,'haar');
(3)按照嵌入规则的逆变换和三种分量的嵌入强度,得到RGB 三种颜色的小波系数。
(4)将RGB 三种颜色按照小波系数分别进行小波重构。 wr=waverec2(cwr,swr,'haar'); wg=waverec2(cwg,swg,'haar'); wb=waverec2(cwb,swb,'haar');
(5)将RGB 三种颜色进行合成得到水印图像。
(1)嵌入算法框图及实现过程
(2)提取算法框图如图6-3
彩色RGB 载体图像 分解出RGB 各个分量
RGB 各分量二级小波变换
水印图像
分解出RGB 各个分量
系数重构
图像重构
三色叠加
RGB 各分量一级小波变换
含水印图像
含水印图像 原始
载体
图像
RGB 二
级小波分解
提取水印的小波系数
分解出RGB 三个分量 重构水印图像
水印图像
分解出RGB 三个分量 RGB 二级小波分解