基于DW T和SVD的彩色图像数字水印算法研究

2019-09-03 07:23
计算机与数字工程 2019年8期
关键词:对角线灰度分量

梁 欣

(西安卫星测控中心 西安 710043)

1 引言

数字水印是保护信息安全、实现防伪溯源、版权保护的有效办法,是信息隐藏技术研究领域的重要分支和研究方向[1]。如何解决算法的嵌入容量、不可见性和鲁棒性之间的矛盾一直是该项研究的热点和难点[2]。水印算法根据水印嵌入的区域不同,主要分为空间域算法和变换域算法[3],典型的时/空域数字水印方法是最低有效位方法。LSB方法即利用秘密信息比特替换掉原始载体中不重要的部分,以达到对秘密信息进行编码的目的[4],算法尽管具有嵌入容量大的优势,但缺乏抗几何攻击能力[5],而变换域算法却以其健壮性强等优点越来越得到广泛应用。在目前主要使用的变换域方法中,小波变换由于其良好的时频分解特性,以及和新一代的国际压缩标准JPEG2000、MPEG4-7相兼容,从而具有广阔的发展前景[6]。

离散小波变换(简称DWT)是进行信号分析与图像处理领域十分有用的工具[7],奇异值分解(简称SVD)是数值分析中的最基本、最重要的工具之一[8],数值分析中的矩阵奇异值分解是一种将矩阵对角化的数值算法[9]。一幅图像的奇异值表征的是图像的内在性质,具有极强的稳定性,因此在图像被施加小的扰动时图像的奇异值不会有大的改变[10]。目前图像水印技术大多考虑在灰度图像中嵌入水印,现实情况中,彩色图像比较常见且比灰度图像信息含量也大,将其嵌入水印进行版权保护显得更为重要。在数字水印技术中,提高水印算法的抗攻击能力是一个重要研究方向和分支[11]。综合考虑DWT和SVD的优点,将DWT和SVD结合起来进行彩色图像水印方案的实现,并用Matlab进行仿真实验。

2 DW T&SVD结合的彩色图像水印算法

选用原始图像和水印均为RGB彩色图像,其中原始图像尺寸为256×256,水印尺寸为64×64。首先了解一下颜色模型转换:YCbCr模型称为YUV模型,是视频图像和数字图像中常见的色彩模型。在YCbCr模型中,Y为亮度,Cb和Cr共同描述图像的色调(色差),其中Cb、Cr分别为蓝色分量和红色分量相对于参考值的坐标[12]。首先将彩色载体图像从RGB彩色空间转换到YCrCb彩色空间,然后再对YCrCb彩色空间内图像信息实施水印嵌入。在Matlab中,可使用rgb2ycbcr函数来实现RGB模型和YCbCr模型间的转换。反之,用函数Ycbcr2rgb实现YCbCr空间到RGB空间逆转换。从线性代数的角度看,一幅灰度图像可以被看成是一个非负矩阵[13],彩色图像则表示为三个非负矩阵,我们就用Matlab对这三个非负矩阵进行处理。具体算法描述如下。

2.1 水印嵌入算法

1)将原始图像和水印图像分别从RGB颜色模型转换为YCbCr颜色模型。

2)对原始图像的Y分量进行二级离散小波变换 ,得 到 LL2、HL2、LH2、HH2、HL1、LH1、HH1七个子带。我们选择在HL2、LH2、HH2三个二级子带系数中进行水印嵌入。

3)分别对HL2、LH2、HH2三个子带进行矩阵奇异值分解,得到六个正交矩阵U和V,以及三个对角矩阵S。

4)将水印图像的Y、Cb和Cr分量分别采用加性水印公式WM=S+a×W(a为水印的叠加强度系数,针对不同子带采用不同的系数。W代表水印)叠加到上步得到的三个对角矩阵S上,再对新产生的WM 进行奇异值分解,得到U1、S1、V1。

5)将U、S1和VT相乘,得到处理后的嵌入水印的小波系数。对修改后的小波系数进行小波反变换后得到Y分量,再结合原始彩色图像的色度信息,即Cb分量和Cr分量转换到RGB颜色模型就可得到含水印图像。

2.2 水印提取算法

1)对含水印图像进行颜色模型转换,由RGB转换为YCbCr,再利用DWT对转换后的含水印图像的Y分量进行二级小波变换,得到 LL2、HL2、LH2、HH2、HL1、LH1、HH1七个子带。

2)对HL2、LH2、HH2三个子带进行奇异值分解,利用加性水印公式WM=S+a×W分别求出水印的Y、Cb、Cr分量。

3)根据得到的Y、Cb、Cr分量转换到RGB色彩空间即得到原水印彩色图像。

3 嵌入Y分量时的实验结果

本文采用haar正交小波对原始图像进行二级小波分解与重构。嵌入因子为a1=0.05;a2=0.005。a1为水印Y分量嵌入时的强度因子,a2为水印Cb和Cr分量嵌入时的强度因子。透明性作为衡量彩色图像不可见水印的基本要求之一[14],为衡量算法性能,对水印图像的失真程度评价采用峰值信噪比PSNR,原始水印和提取出的水印之间的相似度可通过相关系数NC来评价。

3.1 仿真试验结果及分析

将水印嵌入载体图像的Y分量时,含水印图像和原始图像从外观上看几乎没有差异,并且PSNR值为56.7686dB,从客观指标上也说明不可见性很好,没有遭受任何攻击时能完全提取出水印且无任何失真。针对常见攻击进行试验。详细攻击测试结果如图1所示。当遭受所施加的四种攻击时,由图1看出提取的水印清晰可辨,通过NC值也说明该算法鲁棒性较强。

图1 攻击测试的实验结果

3.2 比较改善水印效果

由于水印在嵌入过程中是被叠加到对角矩阵S上,通过实验发现提取的水印在对角线方向出现失真,可用邻域灰度均衡来减弱对角线失真,即对提取的水印W*沿其对角线方向3×3的邻域内进行灰度均衡[15]:

彩色图像由R、G、B三个分量矩阵构成,具体步骤为

1)在Matlab中将水印图像的R、G、B三个分量矩阵提取出来,先对R层分量矩阵进行处理。

2)利用for循环,对i取值从1到64,并用if语句作如下判断和处理:若像素值大于128,置为0;小于128值不变。

3)用if语句确定水印图像矩阵边界两点值。

4)对角线上其余各点的确定利用式(1)计算,可用for语句实现。

5)对G、B层矩阵同样处理。

6)将处理后的R、G、B层矩阵合成一个矩阵。

由图2看出采用灰度均衡处理,可以提高水印的NC值,也能在视觉上改善水印质量。

图2 改善后的水印图像及NC值

4 嵌入Cb、Cr分量时的实验结果

我们还可以考虑在色差分量Cb和Cr上进行水印信息的嵌入。表1为分别嵌入各分量时的指标值。由表1可以看出,当嵌入强度因子相同时,将水印嵌入Cb分量时的不可见性最好,说明嵌入Cb分量时的嵌入强度的冗余度较大。其次是Cr分量的冗余度较大,嵌入Y分量的冗余度则最小。这也正好验证了人类具有对色差的细微变化的感觉比对亮度变化的感觉迟钝的视觉特性。由于嵌入到Cb分量时的PSNR值大于Cr分量大于Y分量大于56.7686dB,所以说明它们都极好地满足不可见性的要求,还可以有余地地增加嵌入因子的值,来提高嵌入强度。

在嵌入到Cb、Cr分量时并遭受相同攻击的水印提取效果以及进行灰度均衡改善的水印效果见表2。由表2可以知道,将水印分别嵌入到Cb、Cr分量时,PSNR值不同(嵌入因子相同时),提取出来的水印NC值也有所不同。

表1 分别嵌入不同分量时的测试结果

表2 改善后的水印效果及NC值

5 结语

本文使用离散小波变换与矩阵奇异值分解相结合的方法,算法数学背景清晰,试验证明算法对常见攻击具有较强的鲁棒性。对水印对角线方向失真现象也作了修正,在一定程度上改善了水印视觉效果,同时NC值也得到提高。还考虑了分别在Cb、Cr分量嵌入水印信息的情况,并进行仿真实现与分析。另外,可以把图像置乱技术结合进去,即水印嵌入之前先对其进行置乱预处理,然后再嵌入到分解的对角矩阵中,这样可以提高水印安全性和不可见性,增加水印破译难度。

猜你喜欢
对角线灰度分量
航空滤光片阵列多光谱图像条带灰度调整算法
采用改进导重法的拓扑结构灰度单元过滤技术
天津港智慧工作平台灰度发布系统和流程设计
画里有话
Arduino小车巡线程序的灰度阈值优化方案
一斤生漆的“分量”——“漆农”刘照元的平常生活
一物千斤
论《哈姆雷特》中良心的分量
边、角、对角线与平行四边形的关系
看四边形对角线的“气质”