1.一种融合DCT和DHT的空域彩色数字图像盲水印方法,具体包含水印嵌入和水印提取两个过程,其水印嵌入过程描述如下:第一步:对一幅大小为M×M的24位彩色载体图像H作降维处理,得到红、绿、蓝三个分层载体图像Hi,并将各分层载体图像中的像素划分为m×m的非重叠像素块,其中i=1,2,3分别表示红、绿、蓝三层;
第二步:对一幅大小为N×N的24位彩色水印图像W作降维处理,得到红、绿、蓝三个分层水印图像,同时,为了提高水印的安全性,对每个分层水印图像进行基于密钥Kai的Arnold变换得到置乱后的三个分层水印图像Wi;将分层水印图像Wi中的每个十进制像素值转换为82
位二进制数,依次连接成长度为8N的水印位序列SWi,其中i=1,2,3分别表示红、绿、蓝三层;
第三步:按先后顺序依次从分层载体图像Hi中选择像素块A,根据公式(1),在空域中直接计算像素块A在离散余弦变换(DCT)结果中的直流系数dc,此处i=1,2,3分别表示红、绿、蓝三层;
其中,m为像素块的行、列的大小,f(x,y)为像素块A第x行第y列的像素值;
第四步:重复执行本过程的第三步,直到获得分层载体图像Hi中所有像素块的直流系数为止,然后,组合所有的直流系数得到大小为p×p的直流系数矩阵DC‑mapi,并将其划分为m×m的非重叠直流系数块,其中i=1,2,3分别表示红、绿、蓝三层,p=M/m;
第五步:利用基于密钥Kbi的MD5哈希伪随机选择算法从直流系数矩阵DC‑mapi中随机选择直流系数块B,根据公式(2),在空域中直接计算其在离散哈特利变换(DHT)结果中的直流分量dh,此处i=1,2,3分别表示红、绿、蓝三层;
其中,m为直流系数块B的行、列的大小,g(x,y)为直流系数块B第x行第y列的值;
第六步:按照先后顺序从分层水印序列SWi中选取待嵌入水印位w;利用公式(3),对直流*
分量dh进行量化以嵌入水印信息w,得到新的直流分量dh;
其中,w为待嵌入水印位,α为量化系数,round(.)为四舍五入函数,Ti为第i层的量化步长,i=1,2,3分别表示红、绿、蓝三层;
*
第七步:利用公式(4),计算g (x,y)并用其替换原矩阵块中相应位置的直流系数g(x,*
y),得到含水印的直流系数块B;
* *
g(x,y)=g(x,y)+(dh‑dh)/(m×m) (4)*
第八步:将含水印的直流系数块B 更新到其在直流系数矩阵DC‑mapi中的相应位置,其中i=1,2,3,分别表示红、绿、蓝三层;
第九步:重复执行本过程的第五步到第八步,直到所有的水印信息都被嵌入完成为止,*
由此得到含水印的直流系数矩阵DC‑mapi,其中i=1,2,3,分别表示红、绿、蓝三层;
第十步:按先后顺序依次从分层载体图像Hi中选择像素块A,并选取含水印的直流系数* * *
矩阵DC‑mapi 中相应的直流系数dc ,依据公式(5),用修改后的像素值f (x,y)替换原像素*
块A相应位置的像素值f(x,y),得到含水印像素块A ,并更新到其在分层载体图像Hi中的相* *
应位置,得到含水印的分层载体图像Hi ;最后,组合三层含水印的分层载体图像Hi得到含*
水印的彩色载体图像H,其中i=1,2,3分别表示红、绿、蓝三层;
* *
f(x,y)=f(x,y)+(dc‑dc)/m (5)其水印提取过程描述如下:
* *
第一步:通过降维处理将含水印载体图像H 分成红、绿、蓝三个分层图像Hi ;同时,将每*
个含水印分层图像Hi分成大小为m×m的非重叠像素块,其中i=1,2,3分别表示红、绿、蓝三层;
* *
第二步:按先后顺序依次从含水印分层图像Hi中选择含水印像素块A ,根据公式(6),* *
在空域中直接计算含水印像素块A在离散余弦变换(DCT)结果中的直流系数dc ,此处i=1,
2,3分别表示红、绿、蓝三层;
* * *
其中,m为含水印像素块A行、列的大小,f (x,y)为含水印像素块A 第x行第y列的像素值;
*
第三步:重复执行本过程的第二步,直到获得含水印分层图像Hi中所有像素块的直流* *
系数为止,然后,组合所有的直流系数dc得到大小为p×p的含水印直流系数矩阵DC‑mapi ,并将其划分为m×m的非重叠直流系数块,其中i=1,2,3分别表示红、绿、蓝三层,p=M/m;
第四步:利用基于密钥为Kbi的MD5哈希伪随机选择算法从含水印的直流系数矩阵DC‑* *
mapi中选择含水印的直流系数块B ;根据公式(7),在空域中直接计算含水印的直流系数块* *
B在离散哈特利变换(DHT)结果中的直流分量dh,其中i=1,2,3分别表示红、绿、蓝三层;
* * *
其中,m为含水印的直流系数块B行、列的大小,g (x,y)为含水印的直流系数块B第x行第y列的值;
*
第五步:使用对应层的量化步长Ti,利用公式(8)提取水印位w;
其中,α为量化系数,round(.)为四舍五入函数,Ti为第i层的量化步长,i=1,2,3分别表示红、绿、蓝三层;
*
第六步:重复执行本过程的第四步到第五步,得到提取的二进制水印序列SWi ,将二进*
制水印序列SWi中每8位二进制信息划分为一组并转换成十进制的像素值,形成分层水印图像,其中i=1,2,3分别表示红、绿、蓝三层;
第七步:对分层水印图像进行基于密钥Kai的逆Arnold变换,获得各层的提取水印图像* * *
Wi ;组合各层的提取水印图像Wi 形成最终的提取水印图像W ,其中i=1,2,3分别表示红、绿、蓝三层。