盲水印嵌入方法和提取方法与流程

文档序号:15350290发布日期:2018-09-04 23:15阅读:2417来源:国知局

本发明涉及图像处理技术领域,更具体地,涉及盲水印嵌入方法和提取方法。



背景技术:

随着互联网的普及与发展,人们对图像版权越来越重视。由于图像的易盗性,各种防盗方法层出不穷。图像水印技术作为保护图像版权最方便的方法,受到了人们的广泛关注。

常见的图像水印方法,如直接将版权商标印在图像上,依然容易被恶意篡改,无法起到较好的防盗作用,而现有的不可见水印即盲水印方法,通常是将原始图像进行空间映射并将水印打在不同空间,再复原图像,如arnold变换等。现有的这些方法容易降低图像的质量,无法满足许多用户对图像质量的要求。



技术实现要素:

本发明提供一种克服上述问题或者至少部分地解决上述问题的盲水印嵌入方法和提取方法。

根据本发明的一个方面,提供一种盲水印嵌入方法,包括:

s1、通过随机排序算法,将填充水印图像的水印画板中各像素点的位置进行打乱,获得打乱后的水印画板,所述水印画板与原始图像的像素尺寸一致;

s2、根据预设的叠加强度系数,将所述打乱后的水印画板与频谱图像进行叠加,获得叠加图像,所述频谱图像通过对所述原始图像进行二维离散傅里叶变换获得;

s3、对所述叠加图像进行二维离散傅里叶逆变换,获得嵌入盲水印的图像。

优选地,所述步骤s1之前还包括:

创建空白图像,所述空白图像与所述原始图像的像素尺寸一致;

将所述水印图像嵌入至所述空白图像中,获得所述水印画板,所述水印画板中水印图像的个数至少为1个。

优选地,所述步骤s1具体包括:

创建密钥,根据水印画板长度和宽度方向上像素点的个数,构建第一数组和第二数组,以使得水印画板中的每个像素点的位置通过第一数组和第二数组表示;

通过所述随机排序算法,利用所述密钥对所述第一数组和第二数组进行打乱,分别获得打乱后的第一数组和第二数组;

对于水印画板中的任意一个像素点,定义打乱前所在的行数对应打乱前第一数组中第x个元素,所在列数对应打乱前第二数组中第y个元素,则打乱后所在对行数对应打乱后第一数组中的第x个元素,所在列数对应打乱后第二数组中的第y个元素。

优选地,所述步骤s2中的频谱图像具体通过以下公式获得:

其中,f(x,y)为大小为m×n的原始图像,其中x=0,1,2,...,m-1,y=0,1,2,...,n-1,f(u,v)为原始图像f(x,y)经过二维傅里叶变换后的频谱函数,m和n分别为原始图像长度方向的像素个数与宽度方向的像素个数,其中u=0,1,2,...,m-1,v=0,1,2,...,n-1,e-j2π为傅里叶变换的核,j为虚数,满足j2=-1。

优选地,所述步骤2中根据预设的叠加强度系数,将所述打乱后的水印画板与频谱图像进行叠加,获得叠加图像的步骤,具体采用以下公式获得叠加图像:

snij=a×wrij+sfij

其中,snij表示叠加图像中第i行j列像素点的灰度值,a标识叠加强度系数,wrij表示水印画板中第i行j列像素点的灰度值,sfij表示频谱图像中第i行j列像素点的灰度值。

优选地,所述步骤s3具体包括:

其中,f(x,y)为f(u,v)的傅里叶逆变换图像,f(u,v)为已嵌入盲水印后的频谱函数,m和n分别为原始图像长度方向的像素个数与宽度方向的像素个数,e-j2π为傅里叶变换的核,j为虚数,满足j2=-1。

根据本发明的另一个方面,还提供一种盲水印嵌入系统,包括:

水印打乱模块,用于通过随机排序算法,将填充水印图像的水印画板中各像素点的位置进行打乱,获得打乱后的水印画板,所述水印画板与原始图像的像素尺寸一致;

傅里叶变换模块,用于根据预设的叠加强度系数,将所述打乱后的水印画板与频谱图像进行叠加,获得叠加图像,所述频谱图像通过对所述原始图像进行二维离散傅里叶变换获得;

傅里叶逆变换模块,用于对所述叠加图像进行二维离散傅里叶逆变换,获得嵌入盲水印的图像。

根据本发明的另一个方面,还提供一种盲水印提取方法,包括:

a、通过二维离散傅里叶逆变换,将待提取的图像转换至频域空间,获得第一频谱图像,将所述待提取的图像对应的原始图像转换至频域空间,获得第二频谱图像;

b、根据预设的叠压强度系数,计算所述第一频谱图像与所述第二频谱图像对应像素点的差值,获得乱序的水印图像;

c、根据预设的密钥以及随机排序算法,对所述乱序的水印图像进行还原,获得水印图像。

优选地,所述步骤c包括:

根据水印图像长度和宽度方向上像素点的个数,构建第一数组和第二数组,以使得水印图像中的每个像素点的位置通过第一数组和第二数组表示;

通过所述随机排序算法,利用所述密钥对所述第一数组和第二数组进行打乱,分别获得打乱后的第一数组和第二数组;

对于水印图像中的任意一个像素点,定义还原后所在的行数对应打乱前第一数组中第m个元素,所在列数对应打乱前第二数组中第n个元素,则还原前所在对行数对应打乱后第一数组中的第m个元素,所在列数对应打乱后第二数组中的第n个元素。

根据本发明的另一个方面,还提供一种盲水印提取系统,包括

转换模块,用于通过二维离散傅里叶逆变换,将待提取的图像转换至频域空间,获得第一频谱图像,将所述待提取的图像对应的原始图像转换至频域空间,获得第二频谱图像;

差值模块,用于根据预设的叠压强度系数,计算所述第一频谱图像与所述第二频谱图像对应像素点的差值,获得乱序的水印图像;

还原模块,用于根据预设的密钥以及随机排序算法,对所述乱序的水印图像进行还原,获得水印图像。

本发明提出的盲水印嵌入方法和提取方法,其中嵌入方法将水印嵌入于图像的频域空间,低频信息具有肉眼不可分辨的隐蔽性,既降低了图像被盗图者破坏的风险,又保证了图像的质量不会因水印而下降,具有较高的抗攻击性,可防御图像缩放、更改图像格式、图像裁切等盗图方式。

附图说明

图1为根据本发明实施例的盲水印嵌入方法的流程示意图;

图2为根据本发明实施例的盲水印嵌入系统的功能框图;

图3为根据本发明实施例的盲水印提取方法的流程示意图;

图4为根据本发明实施例的盲水印提取系统的功能框图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

为了克服现有技术的上述问题,本发明提供一种盲水印嵌入方法,参见图1,包括:

s1、通过随机排序算法,将填充水印图像的水印画板中各像素点的位置进行打乱,获得打乱后的水印画板,水印画板与原始图像的像素尺寸一致。

顾名思义,随机排序算法是一种对数组中的各原始的原顺序进行随机打乱的算法,需要注意的是,在随机排序算法中需要设置一个参数,在参数不变的情况下,利用该参数对一个数组中的各原始进行随机打乱的结果是不会变化的。

本发明实施例中的水印画板是指在一个空白图像上填充了水印图像的图像,该图像的大小与原始图像(即待嵌入水印的图像)大小一致,这样就方便后续将两个图像进行叠加。

本发明实施例的设计构思在于将水印图像理解为由像素点构成的数组,通过随机排序算法,将像素点的位置进行打乱,例如原本在水印画板中第1行第1列的像素点,打乱后位于第4行第8列。

s2、根据预设的叠加强度系数,将打乱后的水印画板与频谱图像进行叠加,获得叠加图像,频谱图像通过对原始图像进行二维离散傅里叶变换获得;

需要说明的是,本发明实施例中的叠加是指将同一个位置的水印画板的灰度值与频谱图像的灰度值进行叠加。频谱图像是指将原始图像转移至频域空间的图像。频域,即空间频率域,以空间频率(即波数)为自变量描述图像的特征,可以将一幅图像像元值在空间上的变化分解为具有不同振幅、空间频率和相位的简振函数的线性叠加,图像中各种空问频率成分的组成和分布称为空间频谱。将原始图像转换至频率域主要通过傅里叶变换实现。本发明才有二维离散傅里叶变换,具有可分离性、平移性、周期性、共轭对称性、旋转不变性,可以抵抗选择、缩放、平移以及噪声等攻击。

s3、对叠加图像进行二维离散傅里叶逆变换,获得嵌入盲水印的图像。

需要说明的是,本发明实施例不需要对图像进行预处理,也不需要将水印打在不同的空间,不影响图像本身的质量,由于二维离散傅里叶变换的特征,可以抵抗旋转、缩放、平移、噪声等攻击,且添加在图像中的低频区域的水印具有肉眼不易分辨的特性。

在上述实施例的基础上,步骤s1之前还包括:

创建空白图像,空白图像与原始图像的像素尺寸一致;

将水印图像嵌入至空白图像中,获得水印画板,水印画板中水印图像的个数至少为1个。

需要说明的是,空白图像中每个像素点的灰度值为0而水印图像中水印部分像素点的灰度值显然不为0,这样在构成水印画板后,后续进行叠加时,没有水印的像素点叠加不会有变化。并且,本发明实施例中水印画板与原始图像的像素尺寸一致,可以保证每个像素点均具有叠加时的对应像素点。

在上述实施例的基础上,步骤s1具体包括:

s1.1、创建密钥,根据水印画板长度和宽度方向上像素点的个数,构建第一数组和第二数组,以使得水印画板中的每个像素点的位置通过第一数组和第二数组表示,其中第一数组中的元素为{1,2,……,w},第二数组为{1,2,……h},w为水印画板长度方向的像素个数,h为水印画板宽度方向的像素个数;例如,水印画板中第2行第3列的像素点就用(2,3)表示。

s1.2、通过随机排序算法,利用密钥对第一数组和第二数组进行打乱,分别获得打乱后的第一数组和第二数组。

例如,打乱前第一数组为{1,2,3,4,5,6},打乱后的第一数组为{2,3,1,5,6,4},打乱前第二数组为{1,2,3,4,},打乱后的第二数组为{3,1,4,2}。由上述实施例可知,只要密钥和随机排序算法不变,对于同一个数组进行随机排序的结果不变。

s1.3、对于水印画板中的任意一个像素点,定义打乱前所在的行数对应打乱前第一数组中第x个元素,所在列数对应打乱前第二数组中第y个元素,将,则打乱后所在对行数对应打乱后第一数组中的第x个元素,所在列数对应打乱后第二数组中的第y个元素。

例如,对于水印画板中位于第3行第4列的像素点,对应打乱前第一数组中的3,打乱前第二数组中的4,由于打乱后的第一数组为{2,3,1,5,6,4},打乱后的第二数组为{3,1,4,2},因此,该像素点的行数对应打乱后的第一数组中的1,列数对应打乱后的第一数组2,也就是说,该像素点移位至水印画板中的第1行第2列。

在上述实施例的基础上,步骤s2中的频谱图像具体通过以下公式获得:

其中,f(x,y)代表大小为m×n的原始图像,其中x=0,1,2,...,m-1,y=0,1,2,...,n-1,f(u,v)为原始图像f(x,y)经过二维傅里叶变换后的频谱图像,其中u=0,1,2,...,m-1,v=0,1,2,...,n-1,e-j2π为傅里叶变换的核,j为虚数,满足j2=-1。

在上述实施例的基础上,步骤2中根据预设的叠加强度系数,将打乱后的水印画板与频谱图像进行叠加,获得叠加图像的步骤,具体采用以下公式获得叠加图像:

snij=a×wrij+sfij

其中,snij表示叠加图像中第i行j列像素点的灰度值,a标识叠加强度系数,wrij表示水印画板中第i行j列像素点的灰度值,sfij表示频谱图像中第i行j列像素点的灰度值。

需要说明的是,叠加强度系数用于调整水印的清晰度,水印画板和频谱图像大小一致,选取相同行列数的像素点,将水印画板上像素点的灰度值与叠加强度系数相乘,即获得水印画板上像素的灰度值站叠加图像上像素点的灰度值的比重,显然叠加强度系数越大,比重越大。

在上述各实施例的基础上,步骤s3具体包括:

其中,f(u,v)代表大小为m×n的已嵌入盲水印后的频谱图像,其中u=0,1,2,...,m-1,v=0,1,2,...,n-1,f(x,y)为f(u,v)的傅里叶逆变换图像,其中x=0,1,2,...,m-1,y=0,1,2,...,n-1,e-j2π为傅里叶变换的核,j为虚数,满足j2=-1。

在上述各实施例的基础上,随机排序算法为插入随机排序算法、自身插入随机排序算法以及选择随机排序算法中的一种。

需要说明的,插入随机排序算法指在一个数组中,随机选择一个数,插入新的数组内,实现对原始数组的随机打乱;自身插入随机排序算法,指在一个数组中,随机选择一个数,并插入该数组的末端,对数组内每个元素都操作过一遍以后,原数组则成为了被随机打乱的数组,该方法在数组较短时效率比插入随机排序算法高;选择随机排序算法,指从数组内的第一个元素开始,与后面随机一个元素交换位置,依次交换直至数组的末尾,若元素长度为n,则一共进行n-1次交换,实现对原始数组的随机打乱。

根据本发明的另一个方面,还提供一种盲水印嵌入系统,参见图2,包括:

水印打乱模块201,用于通过随机排序算法,将填充水印图像的水印画板中各像素点的位置进行打乱,获得打乱后的水印画板,所述水印画板与原始图像的像素尺寸一致。

顾名思义,随机排序算法是一种对数组中的各原始的原顺序进行随机打乱的算法,需要注意的是,在随机排序算法中需要设置一个参数,在参数不变的情况下,利用该参数对一个数组中的各原始进行随机打乱的结果是不会变化的。

本发明实施例中的水印画板是指在一个空白图像上填充了水印图像的图像,该图像的大小与原始图像(即待嵌入水印的图像)大小一致,这样就方便后续将两个图像进行叠加。

本发明实施例的设计构思在于将水印图像理解为由像素点构成的数组,通过随机排序算法,将像素点的位置进行打乱,例如原本在水印画板中第1行第1列的像素点,打乱后位于第4行第8列。

傅里叶变换模块202,用于根据预设的叠加强度系数,将所述打乱后的水印画板与频谱图像进行叠加,获得叠加图像,所述频谱图像通过对所述原始图像进行二维离散傅里叶变换获得。

需要说明的是,本发明实施例中的叠加是指将同一个位置的水印画板的灰度值与频谱图像的灰度值进行叠加。频谱图像是指将原始图像转移至频域空间的图像。频域,即空间频率域,以空间频率(即波数)为自变量描述图像的特征,可以将一幅图像像元值在空间上的变化分解为具有不同振幅、空间频率和相位的简振函数的线性叠加,图像中各种空问频率成分的组成和分布称为空间频谱。将原始图像转换至频率域主要通过傅里叶变换实现。本发明才有二维离散傅里叶变换,具有可分离性、平移性、周期性、共轭对称性、旋转不变性,可以抵抗选择、缩放、平移以及噪声等攻击。

傅里叶逆变换模块203,用于对所述叠加图像进行二维离散傅里叶逆变换,获得嵌入盲水印的图像。

需要说明的是,本发明实施例不需要对图像进行预处理,也不需要将水印打在不同的空间,不影响图像本身的质量,由于二维离散傅里叶变换的特征,可以抵抗旋转、缩放、平移、噪声等攻击,且添加在图像中的低频区域的水印具有肉眼不易分辨的特性。

在上述实施例的基础上,本发明实施例的盲水印嵌入系统还包括:

水印画板生成模块,用于创建空白图像,空白图像与原始图像的像素尺寸一致;

将水印图像嵌入至空白图像中,获得水印画板,水印画板中水印图像的个数至少为1个。

需要说明的是,空白图像中每个像素点的灰度值为0而水印图像中水印部分像素点的灰度值显然不为0,这样在构成水印画板后,后续进行叠加时,没有水印的像素点叠加不会有变化。并且,本发明实施例中水印画板与原始图像的像素尺寸一致,可以保证每个像素点均具有叠加时的对应像素点。

在上述实施例的基础上,本发明实施例的水印打乱模块201具体包括:

初始化单元,用于创建密钥,根据水印画板长度和宽度方向上像素点的个数,构建第一数组和第二数组,以使得水印画板中的每个像素点的位置通过第一数组和第二数组表示,其中第一数组中的元素为{1,2,……,w},第二数组为{1,2,……h},w为水印画板长度方向的像素个数,h为水印画板宽度方向的像素个数;例如,水印画板中第2行第3列的像素点就用(2,3)表示。

数组打乱单元,用于通过随机排序算法,利用密钥对第一数组和第二数组进行打乱,分别获得打乱后的第一数组和第二数组。

例如,打乱前第一数组为{1,2,3,4,5,6},打乱后的第一数组为{2,3,1,5,6,4},打乱前第二数组为{1,2,3,4,},打乱后的第二数组为{3,1,4,2}。由上述实施例可知,只要密钥和随机排序算法不变,对于同一个数组进行随机排序的结果不变。

画板打乱单元,用于对于水印画板中的任意一个像素点,定义打乱前所在的行数对应打乱前第一数组中第x个元素,所在列数对应打乱前第二数组中第y个元素,将,则打乱后所在对行数对应打乱后第一数组中的第x个元素,所在列数对应打乱后第二数组中的第y个元素。

例如,对于水印画板中位于第3行第4列的像素点,对应打乱前第一数组中的3,打乱前第二数组中的4,由于打乱后的第一数组为{2,3,1,5,6,4},打乱后的第二数组为{3,1,4,2},因此,该像素点的行数对应打乱后的第一数组中的1,列数对应打乱后的第一数组2,也就是说,该像素点移位至水印画板中的第1行第2列。

根据本发明实施例的另一个方面,还提供一种盲水印提取方法,参见图3,包括:

301、通过二维离散傅里叶逆变换,将待提取的图像转换至频域空间,获得第一频谱图像,将待提取的图像对应的原始图像转换至频域空间,获得第二频谱图像;

需要说明的是,由于本发明各实施例中的盲水印嵌入方法中需要将打乱的水印画板与原始图像的频谱图像进行叠加,因此在提取时,首先需要将待提取的图像和原始图像均转换至频域空间。

302、根据预设的叠压强度系数,计算第一频谱图像与第二频谱图像对应像素点的差值,获得乱序的水印图像;

需要说明的是,本发明实施例的盲水印嵌入方法中,二维离散傅里叶逆转换步骤前的叠加图像即第一频谱图像,通过将第一频谱图像与第二频谱图像的相应像素点进行求差,再除以水印嵌入时采用的叠加强度系数,即获得乱序的水印图像。具体地,采用以下公式获得乱序的水印图像中的每个像素点的灰度值:

n=(sfobj-sf)/α

其中,sfobj为第一频谱图像,sf为第二频谱图像,α表示叠加强度系数。

303、根据预设的密钥以及随机排序算法,对乱序的水印图像进行还原,获得水印图像。

由上述实施例可知,在密钥和随机排序算法不变的情况下,数组的排序结果不会发生变化,因此通过倒推即可还原乱序前像素点的位置。

具体地,步骤303包括:

根据水印图像长度和宽度方向上像素点的个数,构建第一数组和第二数组,以使得水印图像中的每个像素点的位置通过第一数组和第二数组表示;

通过随机排序算法,利用密钥对第一数组和第二数组进行打乱,分别获得打乱后的第一数组和第二数组;

对于水印图像中的任意一个像素点,定义还原后所在的行数对应打乱前第一数组中第m个元素,所在列数对应打乱前第二数组中第n个元素,则还原前所在对行数对应打乱后第一数组中的第m个元素,所在列数对应打乱后第二数组中的第n个元素。

需要说明的是,本发明实施例将水印图像中像素点的排序称之为按顺序排列,对应地,将水印图像中像素点的行列数用第一数组和第二数组进行表示,第一数组和第二数组中均含有按顺序排序的数字,当通过随机排序算法进行乱序处理后,由前述实施例可知,即获得像素点乱序后的位置。若像素点在水印图像中位于第2行第3列,那么对应打乱前的第一数组中的第二个元素和打乱前的第二数组中的第三个元素,那么查看打乱后的第一数组的第二个元素例如为5,打乱后的第二数组中的第三个元素例如为4,即可知道该像素点在打乱后的水印图象中位于第5行第4列,这样把打乱后的水印图像中位于第5行第4列的元素还原到第2行第3列,即实现了该元素的还原,以这样的方法对所有元素进行还原,即可获得水印图象。

本发明实施例还提供一种盲水印提取系统,参见图4,包括:

转换模块401,用于通过二维离散傅里叶逆变换,将待提取的图像转换至频域空间,获得第一频谱图像,将待提取的图像对应的原始图像转换至频域空间,获得第二频谱图像;

差值模块402,用于根据预设的叠压强度系数,计算第一频谱图像与第二频谱图像对应像素点的差值,获得乱序的水印图像;

还原模块403,用于根据预设的密钥以及随机排序算法,对乱序的水印图像进行还原,获得水印图像。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1