数字水印技术概论(2)

2019-06-04 22:47

第三章 时域处理方法

1. LSB算法的原理及实现

将秘密信息嵌入到载体图像像素值的最低有效位,也称最不显著位,改变这一位置对载体图像的品质影响最小

LSB算法利用了数字图像处理中位平面的原理,即改变图像的最低位的信息,对图像信息产生的影响非常小,人眼的视觉感知系统往往不能察觉。以一幅256灰度的图像为例, 256 灰度共需要8 个位来表示,但其中每一个位的作用是不一样的,越高位对图像的影响越大,反之越低的位影响越小,甚至不能感知。图3-1显示了一幅256灰度的图像的8个位平面。

原始图像 位平面8 位平面7

位平面6 位平面5 位平面4

位平面3 位平面2 位平面1

图3-1 256灰度图像的8个位平面

图3-1中第1张是原始图像,256灰度的图片,后面依次是从高到低的位平面。从几个位平面图中可以看出,较高的位平面反映的图像的轮廓等主要信息,而较低的位平面反映的是图像的细节信息,最低的2个位平面看上去和图像几乎没有相关性,像是噪声。

6

图4显示了原始图像和将原始图像最低位平面置0后的图像,两幅图像的差别是非常小的,人眼的视觉感知系统很难感知。基于这个原理,如果将最低位替换成数字水印的数据,人眼也难以察觉加入数字水印前后的图像的变化,这样就能够实现数字水印的不可感知性。

图3-2 原始图像与最低位置0的图像

LSB算法实现较为简单,首先,需要考虑嵌入的数字水印的数据量,如果嵌入最低的1位,则可以嵌入的信息量是原始图像信息量的1/8,如果适用最低两位则可以嵌入的信息量是1 /4,以此类推。适用的最低位越多,嵌入的数字水印的信息量越大,同时对图像的视觉效果影响也越大。然后,适当调整数字水印图像的大小和比特位数,以适应数字水印图像数据量的要求。最后,对原始图像中要使用的最低位置0,再将数字水印数据放入原始图像的最低位即可。下面通过MATLAB来实现这一算法。

MATLAB是MathWorks公司推出的一套高性能的数值计算和可视化工具软件,利用MATLAB 只需要几个函数和十来行语句就可以实现基本的LSB算法,而如果用C语言等程序语言来实现则可能需要上百行的语句。这里选用一幅256×256像素, 256灰度的图像,数字水印用武汉理工大学校徽。

MATLAB中可以用bitset ( )函数实现位平面置0,和嵌入数字水印数据。置0的方法是调用函数bitset (A,bit)。A表示要置0的图像, bit表示要对哪一位置0。若要对最低位置0,则可以写为: bitset(A,1)。嵌入水印的方法是: w_i( ii, jj) = bitset (w_i(ii,jj),1,w(ii,jj)) ,w_i表示要嵌入水印的图像, 1表示在最低位嵌入, 2表示在第二个位平面嵌入,以此类推,w表示水印图像。水印图像、原始图像、嵌入水印之后的图像如图5所示。

7

图3-3 在最低位嵌入数字水印

由于是在最低位嵌入数字水印图像,因此左边嵌入前的图像和右边嵌入后的图像没有明显的差别,数字水印得到了很好的隐藏。MATLAB程序如下(其中whut_2. bmp是二值数字水印图像文件, lena. bmp 是原始图像文件, lsb_w. bmp是嵌入水印之后的图像文件) 。

[C,map ] = imread (‘lena. bmp’) ; [m,map1 ] = imread (‘whut_2. bmp’) ; Mc = size (C,1) ; Nc = size (C,2) ; Mm = size (m,1) ; Nm = size (m,2) ; w_i =C; for ii = 1:Mc for jj = 1:Nc

w_i( ii, jj) = bitset(w_i( ii, jj) , 1,m ( ii, jj) ) ; end end

imwrite (w_i,‘lsb_w. bmp’,‘bmp’) ; figure (1)

imshow (w_i, [ ] ) title (‘嵌入水印后’) figure (2) imshow(C, [ ] ) title (‘嵌入水印前’)

8

figure (3) imshow(m, [ ] ) title (‘水印图片’)

LSB算法简单,实现容易,同时可以保证数字水印的不可见性,由于可以在最低位的每个像素上都插入数字水印信息,因此有较大的信息嵌入量。LSB算法一般嵌入图像的最低一位或者两位,如果嵌入的位数太多,则会被人眼察觉到。

但是由于数字水印位于图像的不重要像素位上,因此很容易被图像过滤、量化和几何型变等操作破坏,以致无法恢复数字水印。针对基本的LSB算法的缺点,一些研究者也提出了一些改进的算法,如奇偶标识位隐藏算法、索引数据链隐藏算法等,这些算法能增强数字水印的隐蔽性。

2. Patchwork水印算法

Patchwork算法是经典的双集法,它通过在原始载体信号中改变载体信号某种特定的统计特性来携带水印信息。

根据图像的横坐标和纵坐标之和奇偶性不同将图像数据分为两组,在横坐标与纵坐标之和为偶数的所有系数上增加常数d,实验时本文把d设置为2.8,在横坐标与纵坐标之和为奇数的所有系数上减少常数d,从而嵌入1比特信息。

利用两个集合之间的差值关系来提取信息,可以实现盲检测。

3. 基于BMP图像的文本信息隐藏算法

算法的核心思想是将文本信息以比特流的形式嵌入到原始BMP图像各像素点最不重要的位(Least Significant Bits,LSB,即最低有效位)上,这可充分保证嵌入的信息字节不可见。对于由连续像素组成的图像(本文主要针对24位的BMP图片),每个像素由R(红色)、G(绿色)、B(蓝色)三个颜色分量组成,根据亮度公式I=0.3R+0.59G+0.11B可以得知:人眼对于图像中的绿色分量最为敏感,对蓝色分量最不敏感。绿色分量每改变一个单位对人眼的刺激效果,与蓝色分量改变5个、红色分量改变2个单位对人眼的刺激效果是等价的。折算为二进制,对红色分量改变低两位、对绿色分量改变最低位或对蓝色分量改变低三位时,不会在视觉上有明显的差异。因此可在描述原始图像每个像素的三个字节中获取2+1+3=6个比特的空间,用于存储文本信息的比特流。按此比率,一幅大小为L的24位BMP图像最大可以得到的文本信息的存储空间为(L-54)×6/(3×8),大约是位图长度的1/4。

9

第四章 变换域算法

实际上,变换域水印算法就是首先利用相应的变换方法(DFT、DCT、DWT等)将数字图像的空间域数据转化为相应的频域系数;其次,根据待隐藏的信息类型,对其进行适当编码或变形;再次,确定某种规则或算法,用待隐藏的信息的相应数据去修改前面选定的频域系数序列;最后,将数字图像的频域系数经相应的反变换转化为空间域数据。

4.1 小波变换

小波变换用于图像处理的基本思想是对图像进行多分辨率分解,将图像在独立的频带和不同空间方向上进行分解,分解成不同空间、不同频率的子图像,然后再对子图像的系数进行处理,它具有良好的空间一频率分解特性。根据S.Ma11at的塔式分解算法,图像经过离散小波变换后分解成四个四分之一大小的子图:水平方向、垂直方向和对角线方向的中高频细节子图和低频逼近子图,每个子图通过间隔抽样滤波得到。后继分解时,逼近子图以完全相同的方式再分解成在下一级分辨率下更小的子图,以此类推分解,图像就被分解成不同分辨率级和不同方向上的多个子图,这样更符合人眼的视觉特性,图像的2级小渡分解如图4-1所示。

LL2 LH2 LH1 HL2 HH2 HH1 HL1 图4-1 图像的2级小渡分解

经过小波变换的图像按其频带从低到高形成一个树状结构,树根是最低频子带的结点,它有三个孩子分别位于三个次低频子带的相应位置,其余子带(最高频子带除外)的结点都有四个孩子位于高一级子带的相应位置。不同子带相同位置的变换系数是相关的,它们是图像同一个边缘、轮廓和纹理信息在不同方向、不同尺度和不同分辨率下由粗到细的描述。而且经小波分解后生成的小波图像具有与原图像不同的特性,表现在图像的能量主要集中在低频部分,即图像的主要部分,也是视觉重要部分;而图像的高频部分,即图像的细节部分能量较少。且分辨率越低,各部分中的有用信息的比例越高。

10


数字水印技术概论(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:拆迁协议备案出新规 城市更新流程再细化 ——解读《龙岗区拆除

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: