基于Tucker分解的高动态范围图像水印方法与流程

文档序号:18707013发布日期:2019-09-17 23:51阅读:393来源:国知局
基于Tucker分解的高动态范围图像水印方法与流程

本发明涉及一种图像水印方法,尤其是涉及一种基于tucker分解的高动态范围图像水印方法。



背景技术:

随着高动态范围(highdynamicrange,hdr)成像技术在消费电子、影像制作、虚拟现实、遥感探测和医学检测等领域的广泛应用,相应的高动态范围图像的版权保护问题也正日益受到关注。与传统的低动态范围(lowdynamicrange,ldr)图像不同,高动态范围图像通常是以浮点型数据进行表示和存储的,并且其动态范围一般可达到或超过9个数量级,这不仅能在一定程度上提高场景光亮信息的准确性,而且还可以带来更加丰富的色彩细节和明暗层次。然而,由于现有的低动态范围显示设备通常只能显示3个数量级的动态范围,因此为了能在普通显示设备上呈现出高动态范围图像的丰富的细节信息,往往需要对高动态范围图像进行色调映射(tonemapping,tm)预处理,而对于高动态范围图像的版权保护来说,这又无疑是一种特有的且不可避免的攻击形式。此外,通过对现有的全局色调映射算子的分析发现,色调映射是一个非线性的映射过程,具体表现为:当含有水印信息的高动态范围图像在经过色调映射处理后,被嵌入在低亮度区域的水印信息会随着图像像素数值的放大而增大,而被嵌入在高亮度区域的水印信息则会随着图像像素数值的压缩而减小甚至丢失,从而在图像的高亮区域呈现出较差的鲁棒性,即在图像的不同亮度区域呈现出不同的鲁棒性。虽然传统的低动态范围图像水印技术已经日渐成熟,但是考虑到高动态范围图像的特点以及色调映射攻击的非线性特征,若将传统的低动态范围图像水印技术简单地移植到高动态范围图像领域,则难以表现出较好的性能。

目前,针对高动态范围图像水印技术的研究大致可分为以下两类:

一类是脆弱性水印,这类方法更多注重的是不可见性和嵌入容量,往往利用高动态范围图像的存储格式在空域进行水印信息的嵌入。如:yu、wang、chang等人均是利用rgbe存储格式下的指数通道e来指导水印信息的无损嵌入;cheng、li等人分别结合最低有效位(leastsignificantbit,lsb)算法在高动态范围图像的rgbe存储格式或logluv(tiff)存储格式上进行水印信息的嵌入;lin等人则是利用高动态范围图像在openexr存储格式下的10位尾数位来传达秘密信息的。

另一类是鲁棒性水印,这类方法大多考虑了高动态范围图像本身的结构等特征,在图像的变换域进行水印信息的嵌入。如:guerrini等人设计了一个基于亮度、纹理以及边缘信息的感知掩膜,并利用量化索引调制(quantizationindexmodulation,qim)技术在离散小波变换(discretewavelettransformation,dwt)域的低频子带以峰度值为特征进行水印信息的嵌入,该算法对7种色调映射攻击和15幅高动态范围图像进行了测试,具有一定的鲁棒性和不可见性,但平均误码率高达29%;xue等人先后提出了两种方案,其一是先对高动态范围图像进行基于μ-law的色调映射处理以得到对应的低动态范围图像,然后在低动态范围图像的dwt域进行水印信息的嵌入,其二是先对高动态范围图像进行对数预处理,并利用双边滤波器滤波得到细节层,然后在细节层的dwt域进行水印信息的嵌入,这两种方案虽然均体现了较好的不可见性,但是仅对极少的高动态范围图像进行了测试,且误码率仍然较高;wu等人则是在离散余弦变换(discretecosinetransform,dct)域对已知色调映射处理后的图像进行水印信息的嵌入,然而该算法仅对嵌入过程中预先确定的色调映射攻击及其相关参数表现出了较好的性能,这在实际应用中具有很大的局限性;solachidis等人在dwt域对不同曝光程度的低动态范围图像依次嵌入水印信息,这种多次嵌入的思想虽获得了较好的鲁棒性,但同时也造成了不可见性的明显下降;同年,solachidis等人又在dwt域中结合人类视觉系统(humanvisualsystem,hvs)特性设计了一个基于恰可感知失真(justnoticeabledifference,jnd)和对比敏感度函数(contrastsensitivityfunction,csf)的感知掩膜,并以此来选择合适的嵌入区域和合理的嵌入强度,该算法在对抗7种色调映射攻击时表现出了较好的鲁棒性,但嵌入量却只有128bit;maiorana等人则是先对高动态范围图像依次进行了对数、dwt以及rdct处理,进而利用量化索引调制技术嵌入水印信息,该算法对6种色调映射攻击和15幅高动态范围图像进行了测试,具有较好的不可见性,但平均误码率仍约为20%;anbarjafari等人首先对宿主图像依次进行了分块、dwt、线性调频z变换(chirp-ztransformation,czt)、qr(正交三角)分解以及奇异值分解(singularvaluedecomposition,svd)等预处理以得到宿主图像的奇异值矩阵s,然后再对原始水印信息进行奇异值分解得到sw并结合加性嵌入原则完成水印信息的嵌入,该算法在对抗14种色调映射攻击时表现出了较好的鲁棒性,但其水印提取过程是非盲的;bai等人提出了一种基于空间活性的鲁棒性水印算法,该算法首先利用了非下采样轮廓波变换(non-subsampledcontourlettransform,nsct)和奇异值分解来提取表征图像的结构信息作为水印嵌入载体,并结合所提的高动态范围图像水印活性的概念设计了一种分级嵌入强度机制和混合感知掩膜对算法的鲁棒性和不可见性进行优化,该算法在对抗现有的27种色调映射攻击时表现出了较好的鲁棒性。综上所述,虽然现有的高动态范围图像鲁棒性水印算法在对抗少数色调映射攻击时已取得了一定效果,但是这类算法并未充分考虑以下两个问题:其一,dct、dwt、冗余小波变换(redundantdiscretewavelettransform,rdwt)、nsct和svd等这些传统的数据处理方法均是将高维数据转化为向量来表示,然而这不仅会造成数据样本的维数过高,而且同时也会破坏数据本身的内部结构;其二,色调映射是一个非线性的映射过程,即水印图像在受到色调映射攻击后会在不同亮度区域呈现出不一致的鲁棒性。因此,研究一种能够有效对抗色调映射攻击,且在图像处理过程中不会对图像的内部结构造成破坏的高鲁棒性高动态范围图像盲水印方法,对高动态范围图像的版权保护来说尤为重要。



技术实现要素:

本发明所要解决的技术问题是提供一种基于tucker分解的高动态范围图像水印方法,其不会对高动态范围图像的内部结构造成破坏,在对抗色调映射攻击时具有较好的鲁棒性,在不可见性和嵌入容量方面也取得了较好的效果,且水印提取为盲提取。

本发明解决上述技术问题所采用的技术方案为:一种基于tucker分解的高动态范围图像水印方法,其特征在于包括水印嵌入和水印提取两部分;

所述的水印嵌入部分的具体步骤为:

步骤1_1:令ihost表示待嵌入水印信息的高动态范围宿主图像,ihost为rgb彩色图像,将ihost的r颜色通道、g颜色通道和b颜色通道对应记为ihost_r、ihost_g和ihost_b;其中,ihost、ihost_r、ihost_g和ihost_b的宽度均为mhost且高度均为nhost;

步骤1_2:将ihost表示成三阶张量的形式,记为ahost;然后利用tucker3分解算法对ahost进行张量分解,获得ahost的核心张量,记为bhost;并将bhost的第1个通道作为ihost的第一特征图,记为bhost_1;将bhost的第2个通道作为ihost的第二特征图像,记为bhost_2;将bhost的第3个通道作为ihost的第三特征图像,记为bhost_3;其中,ahost和bhost的尺寸均为mhost×nhost×3,bhost_1、bhost_2和bhost_3的宽度均为mhost且高度均为nhost;

步骤1_3:如果mhost和nhost均能被nblock整除,则对bhost_1、ihost_r、ihost_g和ihost_b不进行像素点的填充,并将bhost_1、ihost_r、ihost_g和ihost_b重新对应记为b'host_1、i'host_r、i'host_g和i'host_b;

如果mhost能被nblock整除而nhost不能被nblock整除,则对bhost_1、ihost_r、ihost_g和ihost_b各自的下侧进行像素点的填充,填充nblock-mod(nhost,nblock)行,并将bhost_1经像素点的填充后得到的图像重新记为b'host_1,将ihost_r经像素点的填充后得到的图像重新记为i'host_r,将ihost_g经像素点的填充后得到的图像重新记为i'host_g,将ihost_b经像素点的填充后得到的图像重新记为i'host_b;

如果mhost不能被nblock整除而nhost能被nblock整除,则对bhost_1、ihost_r、ihost_g和ihost_b各自的右侧进行像素点的填充,填充nblock-mod(mhost,nblock)列,并将bhost_1经像素点的填充后得到的图像重新记为b'host_1,将ihost_r经像素点的填充后得到的图像重新记为i'host_r,将ihost_g经像素点的填充后得到的图像重新记为i'host_g,将ihost_b经像素点的填充后得到的图像重新记为i'host_b;

如果mhost不能被nblock整除且nhost不能被nblock整除,则对bhost_1、ihost_r、ihost_g和ihost_b各自的右侧和下侧均进行像素点的填充,填充nblock-mod(mhost,nblock)列和nblock-mod(nhost,nblock)行,并将bhost_1经像素点的填充后得到的图像重新记为b'host_1,将ihost_r经像素点的填充后得到的图像重新记为i'host_r,将ihost_g经像素点的填充后得到的图像重新记为i'host_g,将ihost_b经像素点的填充后得到的图像重新记为i'host_b;

上述,nblock为奇数,nblock>1,b'host_1、i'host_r、i'host_g和i'host_b的宽度均为m'host且高度均为n'host,符号为向上取整运算符号,mod()表示取模运算符号;

步骤1_4:将b'host_1作为水印嵌入载体,将b'host_1划分成个互不重叠的尺寸大小为nblock×nblock的图像块,将对b'host_1划分后得到的所有图像块中坐标位置为(i,j)的图像块记为b'host_1(i,j);其中,

步骤1_5:将i'host_r、i'host_g和i'host_b对应作为i'host的r颜色通道、g颜色通道和b颜色通道;然后获取i'host的宽度为且高度为的亮度掩膜,记为masklum,并将masklum作为秘钥key1进行保存;接着根据masklum中的每个像素点的像素值判断是否在b'host_1中的相同坐标位置的图像块中嵌入水印信息,对于b'host_1(i,j),若masklum(i,j)=0则判定在b'host_1(i,j)中不嵌入水印信息,并将b'host_1(i,j)定义为不处理块;若masklum(i,j)=1则判定在b'host_1(i,j)中嵌入水印信息,并将b'host_1(i,j)定义为水印待嵌入块;其中,i'host的宽度为m'host且高度为n'host,masklum(i,j)表示masklum中坐标位置为(i,j)的像素点的像素值;

步骤1_6:在b'host_1中的每个水印待嵌入块中嵌入水印信息,设b'host_1(i,j)为水印待嵌入块,则在b'host_1(i,j)中嵌入水印信息的过程为:将b'host_1(i,j)的中心像素点的像素值记为gt(i,j),将b'host_1(i,j)中除其中心像素点外的所有像素点的像素值按序排列构成行向量,并记为ghost_1,i,j,将b'host_1(i,j)的中心像素点的预测像素值记为gp(i,j);将b'host_1(i,j)嵌入水印信息后定义为水印嵌入块,并记为bwhost_1(i,j),将bwhost_1(i,j)的中心像素点的像素值记为当待嵌入的水印信息为1时,若|gt(i,j)|>|gp(i,j)|×(1+t)则令若|gt(i,j)|≤|gp(i,j)|×(1+t)则令当待嵌入的水印信息为0时,若|gt(i,j)|<|gp(i,j)|×(1-t)则令若|gt(i,j)|≥|gp(i,j)|×(1-t)则令其中,ghost_1,i,j的维数为1×(nblock×nblock-1),gp(i,j)是利用局部相关性模型γ和ghost_1,i,j计算得到的,m为正整数,m的初始值为1,1≤m≤nblock×nblock-1,ghost_1,i,j(1,m)表示ghost_1,i,j中下标为(1,m)的元素的元素值,γ的维数为(nblock×nblock-1)×1,将γ作为秘钥key2进行保存,γ(m,1)表示γ中下标为(m,1)的ar系数,符号“||”为取绝对值运算符号,t为水印嵌入强度,中的“=”为赋值符号,sign()表示取符号的函数;

步骤1_7:对b'host_1中的所有不处理块和所有水印嵌入块进行图像块合并,重构得到含有水印信息的图像,记为b'host_1_w;然后按照步骤1_3的逆过程,对b'host_1_w进行处理,使处理后得到的图像的宽度为mhost且高度为nhost,将处理后得到的图像记为bhost_1_w,并作为含有水印信息的第一特征图;再利用tucker3分解算法的逆变换对bhost_1_w、bhost_2和bhost_3进行处理,得到水印图像,记为iw;其中,iw的宽度为mhost且高度为nhost;

步骤1_8:水印嵌入端发送秘钥key1和秘钥key2给水印提取端;

所述的水印提取部分的具体步骤为:

步骤2_1:读取含有水印信息的水印图像,记为i'w;其中,i'w为rgb彩色图像,i'w的宽度为mhost且高度为nhost,i'w为未受到任何攻击的水印图像或为经过色调映射攻击后的水印图像;

步骤2_2:将i'w表示成三阶张量的形式,记为aw;然后利用tucker3分解算法对aw进行张量分解,获得aw的核心张量,记为bw;并将bw的第1个通道作为i'w的第一特征图,记为bw_1;将bw的第2个通道作为i'w的第二特征图像,记为bw_2;将bw的第3个通道作为i'w的第三特征图像,记为bw_3;其中,aw和bw的尺寸均为mhost×nhost×3,bw_1、bw_2和bw_3的宽度均为mhost且高度均为nhost;

步骤2_3:如果mhost和nhost均能被nblock整除,则对bw_1不进行像素点的填充,并将bw_1重新对应记为b'w_1;

如果mhost能被nblock整除而nhost不能被nblock整除,则对bw_1的下侧进行像素点的填充,填充nblock-mod(nhost,nblock)行,并将bw_1经像素点的填充后得到的图像重新记为b'w_1;

如果mhost不能被nblock整除而nhost能被nblock整除,则对bw_1的右侧进行像素点的填充,填充nblock-mod(mhost,nblock)列,并将bw_1经像素点的填充后得到的图像重新记为b'w_1;

如果mhost不能被nblock整除且nhost不能被nblock整除,则对bw_1的右侧和下侧均进行像素点的填充,填充nblock-mod(mhost,nblock)列和nblock-mod(nhost,nblock)行,并将bw_1经像素点的填充后得到的图像重新记为b'w_1;

上述,nblock为奇数,nblock>1,b'w_1的宽度为m'host且高度为n'host,符号为向上取整运算符号,mod()表示取模运算符号;

步骤2_4:将b'w_1作为水印提取载体,将b'w_1划分成个互不重叠的尺寸大小为nblock×nblock的图像块,将对b'w_1划分后得到的所有图像块中坐标位置为(i,j)的图像块记为b'w_1(i,j);其中,

步骤2_5:根据秘钥key1中的每个像素点的像素值判断b'w_1中的相同坐标位置的图像块中是否含有水印信息,对于b'w_1(i,j),若秘钥key1中坐标位置为(i,j)的像素点的像素值为0则判定b'w_1(i,j)中不含有水印信息;若秘钥key1中坐标位置为(i,j)的像素点的像素值为1则判定b'w_1(i,j)中含有水印信息,并将b'w_1(i,j)定义为水印待提取块;

步骤2_6:从b'w_1中的每个水印待提取块中提取水印信息,设b'w_1(i,j)为水印待提取块,则从b'w_1(i,j)中提取水印信息的过程为:将b'w_1(i,j)的中心像素点的像素值记为gt'(i,j),将b'w_1(i,j)中除其中心像素点外的所有像素点的像素值按序排列构成行向量,并记为g'w_1,i,j;然后利用秘钥key2和g'w_1,i,j计算b'w_1(i,j)的中心像素点的预测像素值,记为gp'(i,j),再根据gt'(i,j)和gp'(i,j)从b'w_1(i,j)中提取水印信息,若|gt'(i,j)|>|gp'(i,j)|成立则提取出的水印信息为1,若|gt'(i,j)|≤|gp'(i,j)|成立则提取出的水印信息为0;其中,g'w_1,i,j的维数为1×(nblock×nblock-1),g'w_1,i,j(1,m)表示g'w_1,i,j中下标为(1,m)的元素的元素值。

所述的步骤1_3中,对bhost_1、ihost_r、ihost_g和ihost_b各自的下侧进行像素点的填充的过程为:将bhost_1、ihost_r、ihost_g和ihost_b作为处理图像;将处理图像的最后一行中的每个像素点的像素值作为填充的nblock-mod(nhost,nblock)行中的每行中同一列的像素点的像素值;

对bhost_1、ihost_r、ihost_g和ihost_b各自的右侧进行像素点的填充的过程为:将bhost_1、ihost_r、ihost_g和ihost_b作为处理图像;将处理图像的最后一列中的每个像素点的像素值作为填充的nblock-mod(mhost,nblock)列中的每列中同一行的像素点的像素值。

所述的步骤1_5中,masklum的获取过程为:

步骤1_5a:计算i'host_r的修正无反射图,记为msfr,将msfr中坐标位置为(x,y)的像素点的像素值记为msfr(x,y),同样,计算i'host_g的修正无反射图,记为msfg,将msfg中坐标位置为(x,y)的像素点的像素值记为msfg(x,y),计算i'host_b的修正无反射图,记为msfb,将msfb中坐标位置为(x,y)的像素点的像素值记为msfb(x,y),其中,1≤x≤m'host,1≤y≤n'host,i'host_r(x,y)表示i'host_r中坐标位置为(x,y)的像素点的像素值,i'min(x,y)=min(i'host_r(x,y),i'host_g(x,y),i'host_b(x,y)),min()为取最小值函数,i'host_g(x,y)表示i'host_g中坐标位置为(x,y)的像素点的像素值,i'host_b(x,y)表示i'host_b中坐标位置为(x,y)的像素点的像素值,

步骤1_5b:计算i'host与修正无反射图之间的差值图,记为d,将d中坐标位置为(x,y)的像素点的像素值记为d(x,y),

步骤1_5c:对d进行二值化处理,将二值化处理后得到的图像记为dotsu,将dotsu中坐标位置为(x,y)的像素点的像素值记为dotsu(x,y),其中,th为通过otsu方法对i'host进行处理得到的阈值;

步骤1_5d:将dotsu划分成个互不重叠的尺寸大小为nblock×nblock的图像块,将对dotsu划分后得到的所有图像块中坐标位置为(i,j)的图像块记为dotsu(i,j);然后获取dotsu的宽度为且高度为的下采样图像,记为dotsu_sub,将dotsu_sub中坐标位置为(i,j)的像素点的像素值记为dotsu_sub(i,j),若dotsu(i,j)中的所有像素点的像素值的均值为1,则令dotsu_sub(i,j)=1;若dotsu(i,j)中的所有像素点的像素值的均值不为1,则令dotsu_sub(i,j)=0;

步骤1_5e:对dotsu_sub进行形态学开闭处理,将形态学开闭处理后得到的图像作为masklum。

所述的步骤1_6中,gp(i,j)的获取过程为:

步骤1_6a1:在b'host_1的上侧和下侧分别填充k行像素值为0的像素点,在b'host_1的左侧和右侧分别填充k列像素值为0的像素点,将填充后得到的图像记为b”host_1;其中,k为正整数,b”host_1的宽度为m'host+2k且高度为n'host+2k;

步骤1_6a2:以尺寸大小为nblock×nblock的方块为滑动窗口,按步长为1个像素点在b”host_1中滑动,将b”host_1划分成m'host×n'host个重叠的尺寸大小为nblock×nblock的图像块,将b”host_1中的第s个图像块记为b”host_1_s;其中,s为正整数,s的初始值为1,1≤s≤m'host×n'host;

步骤1_6a3:利用自回归预测方法,建立b”host_1中的每个图像块的中心像素点的像素值与以该像素点为中心的nblock×nblock邻域范围内的所有邻近像素点的像素值之间的局部相关性,对于b”host_1_s,将b”host_1_s的中心像素点的像素值记为gs,将b”host_1_s中除其中心像素点外的所有像素点的像素值按序排列构成行向量,并记为gnon,s;将gs与以b”host_1_s的中心像素点为中心的nblock×nblock邻域范围内的所有邻近像素点的像素值之间的局部相关性描述为:其中,gnon,s的维数为1×(nblock×nblock-1),m为正整数,m的初始值为1,1≤m≤nblock×nblock-1,gnon,s(1,m)表示gnon,s中下标为(1,m)的元素的元素值,γ(m,1)表示γ中下标为(m,1)的ar系数,γ(m,1)反映了gs与gnon,s(1,m)之间的相关性,εs表示b”host_1_s对应的误差项,εs的值接近于0;

步骤1_6a4:将b”host_1中的所有图像块的中心像素点的像素值按序排列构成列向量,记为ghost_1_t;将b”host_1中的所有图像块各自中除其中心像素点外的所有像素点的像素值按序排列构成的行向量依次排列组成矩阵,并记为ghost_1,将b”host_1中的所有图像块的中心像素点的预测像素值按序排列构成列向量,记为ghost_1_p;其中,ghost_1_t的维数为(m'host×n'host)×1,ghost_1的维数为(m'host×n'host)×(nblock×nblock-1),gnos,1表示b”host_1中的第1个图像块b”host_1_1中除其中心像素点外的所有像素点的像素值按序排列构成的行向量,gnon,s表示b”host_1中的第s个图像块b”host_1_s中除其中心像素点外的所有像素点的像素值按序排列构成的行向量,表示b”host_1中的第m'host×n'host个图像块中除其中心像素点外的所有像素点的像素值按序排列构成的行向量,ghost_1_p的维数为(m'host×n'host)×1;

步骤1_6a5:为使ghost_1_p与ghost_1_t的差异最小化,利用最小二乘法估计出最优的模型参数,记为γ,γ=((ghost_1)t×ghost_1)-1×(ghost_1)t×ghost_1_t,并将γ作为局部相关性模型;其中,γ的维数为(nblock×nblock-1)×1,(ghost_1)t为ghost_1的转置,((ghost_1)t×ghost_1)-1为(ghost_1)t×ghost_1的逆;

步骤1_6a6:根据γ和ghost_1,i,j计算gp(i,j),其中,ghost_1,i,j(1,m)表示ghost_1,i,j中下标为(1,m)的元素的元素值。

所述的步骤1_6中,t的确定过程为:

步骤1_6b1:将t的初始值设置为0.5,将t的递减步长设为0.01;然后按照步骤1_1至步骤1_7的过程,获得取每个t值时ihost对应的高动态范围水印图像,共获得50幅高动态范围水印图像,将50幅高动态范围水印图像构成的集合记为{iw1,iw2,…,iw50};其中,iw1表示取t值为0.5时ihost对应的高动态范围水印图像,iw2表示取t值为0.49时ihost对应的高动态范围水印图像,iw50表示取t值为0.01时ihost对应的高动态范围水印图像;

步骤1_6b2:计算{iw1,iw2,…,iw50}中的每幅高动态范围水印图像的不可见性指标以及对抗5种不同的色调映射攻击后水印信息的提取误码率,将{iw1,iw2,…,iw50}中的第q幅高动态范围水印图像的不可见性指标和对抗第α种色调映射攻击后水印信息的提取误码率对应记为vdpq和berq,α(%);其中,q和α均为正整数,q和α的初始值均为1,1≤q≤50,1≤α≤5,vdpq和berq,α(%)的取值范围均为[0,100];

步骤1_6b3:令fmax=max(f1,f2,…,f50);然后将fmax对应的t值作为t的最终值;其中,fmax、f1、f2、f50均为引入的中间变量,max()为取最大值函数,vdp1表示{iw1,iw2,…,iw50}中的第1幅高动态范围水印图像的不可见性指标,vdp2表示{iw1,iw2,…,iw50}中的第2幅高动态范围水印图像的不可见性指标,vdp50表示{iw1,iw2,…,iw50}中的第50幅高动态范围水印图像的不可见性指标,ber1,α表示{iw1,iw2,…,iw50}中的第1幅高动态范围水印图像对抗第α种色调映射攻击后水印信息的提取误码率,ber2,α表示{iw1,iw2,…,iw50}中的第2幅高动态范围水印图像对抗第α种色调映射攻击后水印信息的提取误码率,ber50,α表示{iw1,iw2,…,iw50}中的第50幅高动态范围水印图像对抗第α种色调映射攻击后水印信息的提取误码率。

与现有技术相比,本发明的优点在于:

1)本发明方法考虑到使用tucker分解,不仅能够完整地表示高维数据,而且还可以有效地解决传统数据处理方法中内部结构被破坏的特点,本发明方法将一幅彩色的高动态范围宿主图像表示成三阶张量的形式,然后利用tucker3分解对高动态范围宿主图像进行处理,并将得到的核心张量的第一特征图作为水印信息的嵌入载体,这不仅是因为核心张量的第一特征图涵盖了一幅高动态范围宿主图像的主要能量,而且还可以使嵌入的水印信息随着分解的逆变换扩散到高动态范围水印图像的r、g、b三个通道中,从而有效地提高了本发明方法的鲁棒性。

2)本发明方法在核心张量的第一特征图上利用ar预测方法建立了局部相关性模型,并将该局部相关性模型作为秘钥进行传递,这不仅有效地解决了因传统预测方法预测不准确而带来的高动态范围水印图像质量下降的问题,提高了不可见性,而且还提高了本发明方法的安全性。

3)本发明方法针对色调映射攻击的非线性特性,参考低动态范围图像中过曝光区域的提取方法,设计了一个低复杂度的亮度掩膜,从而进一步优化了本发明方法的鲁棒性。

4)本发明方法为了均衡不可见性和鲁棒性,为了针对不同的高动态范围宿主图像自适应地选择嵌入强度,提出了一个简单的水印嵌入强度计算策略。

5)本发明方法在水印信息提取过程中不需要原始的高动态范围宿主图像,实现了水印信息的盲提取。

6)对本发明方法进行实验,得出嵌入容量高,且误码率低。

附图说明

图1为本发明方法的水印嵌入部分的总体实现框图;

图2为本发明方法的水印提取部分的总体实现框图;

图3为利用本发明方法得到的30幅水印图像关于不可见性的评价结果;

图4为利用本发明方法得到的30幅水印图像在无色调映射攻击时的水印提取误码率(%)以及分别对抗27种色调映射攻击时的平均水印提取误码率(%);

图5为27种色调映射攻击分别作用于利用本发明方法得到的30幅水印图像后的水印提取误码率的均值(%)。

具体实施方式

以下结合附图实施例对本发明作进一步详细描述。

本发明提出的一种基于tucker分解的高动态范围图像水印方法,其包括水印嵌入和水印提取两部分。

如图1所示,所述的水印嵌入部分的具体步骤为:

步骤1_1:令ihost表示待嵌入水印信息的高动态范围宿主图像,ihost为rgb彩色图像,将ihost的r颜色通道、g颜色通道和b颜色通道对应记为ihost_r、ihost_g和ihost_b;其中,ihost、ihost_r、ihost_g和ihost_b的宽度均为mhost且高度均为nhost。

步骤1_2:将ihost表示成三阶张量的形式,记为ahost;然后利用现有的tucker3分解算法对ahost进行张量分解,获得ahost的核心张量,记为bhost;并将bhost的第1个通道作为ihost的第一特征图,记为bhost_1;将bhost的第2个通道作为ihost的第二特征图像,记为bhost_2;将bhost的第3个通道作为ihost的第三特征图像,记为bhost_3;其中,ahost和bhost的尺寸均为mhost×nhost×3,bhost_1、bhost_2和bhost_3的宽度均为mhost且高度均为nhost。

步骤1_3:如果mhost和nhost均能被nblock整除,则对bhost_1、ihost_r、ihost_g和ihost_b不进行像素点的填充,并将bhost_1、ihost_r、ihost_g和ihost_b重新对应记为b'host_1、i'host_r、i'host_g和i'host_b。

如果mhost能被nblock整除而nhost不能被nblock整除,则对bhost_1、ihost_r、ihost_g和ihost_b各自的下侧进行像素点的填充,填充nblock-mod(nhost,nblock)行,并将bhost_1经像素点的填充后得到的图像重新记为b'host_1,将ihost_r经像素点的填充后得到的图像重新记为i'host_r,将ihost_g经像素点的填充后得到的图像重新记为i'host_g,将ihost_b经像素点的填充后得到的图像重新记为i'host_b。

如果mhost不能被nblock整除而nhost能被nblock整除,则对bhost_1、ihost_r、ihost_g和ihost_b各自的右侧进行像素点的填充,填充nblock-mod(mhost,nblock)列,并将bhost_1经像素点的填充后得到的图像重新记为b'host_1,将ihost_r经像素点的填充后得到的图像重新记为i'host_r,将ihost_g经像素点的填充后得到的图像重新记为i'host_g,将ihost_b经像素点的填充后得到的图像重新记为i'host_b。

如果mhost不能被nblock整除且nhost不能被nblock整除,则对bhost_1、ihost_r、ihost_g和ihost_b各自的右侧和下侧均进行像素点的填充,填充nblock-mod(mhost,nblock)列和nblock-mod(nhost,nblock)行,并将bhost_1经像素点的填充后得到的图像重新记为b'host_1,将ihost_r经像素点的填充后得到的图像重新记为i'host_r,将ihost_g经像素点的填充后得到的图像重新记为i'host_g,将ihost_b经像素点的填充后得到的图像重新记为i'host_b。

上述,nblock为奇数,nblock>1,在本实施例中取nblock=5个像素点,b'host_1、i'host_r、i'host_g和i'host_b的宽度均为m'host且高度均为n'host,符号为向上取整运算符号,mod()表示取模运算符号。

在此具体实施例中,步骤1_3中,对bhost_1、ihost_r、ihost_g和ihost_b各自的下侧进行像素点的填充的过程为:将bhost_1、ihost_r、ihost_g和ihost_b作为处理图像;将处理图像的最后一行中的每个像素点的像素值作为填充的nblock-mod(nhost,nblock)行中的每行中同一列的像素点的像素值,即为最后一行整行完全复制。对bhost_1、ihost_r、ihost_g和ihost_b各自的右侧进行像素点的填充的过程为:将bhost_1、ihost_r、ihost_g和ihost_b作为处理图像;将处理图像的最后一列中的每个像素点的像素值作为填充的nblock-mod(mhost,nblock)列中的每列中同一行的像素点的像素值,即为最后一列整列完全复制。

步骤1_4:将b'host_1作为水印嵌入载体,将b'host_1划分成个互不重叠的尺寸大小为nblock×nblock的图像块,将对b'host_1划分后得到的所有图像块中坐标位置为(i,j)的图像块记为b'host_1(i,j);其中,

步骤1_5:将i'host_r、i'host_g和i'host_b对应作为i'host的r颜色通道、g颜色通道和b颜色通道;然后获取i'host的宽度为且高度为的亮度掩膜,记为masklum,并将masklum作为秘钥key1进行保存;接着根据masklum中的每个像素点的像素值判断是否在b'host_1中的相同坐标位置的图像块中嵌入水印信息,对于b'host_1(i,j),若masklum(i,j)=0则判定在b'host_1(i,j)中不嵌入水印信息,并将b'host_1(i,j)定义为不处理块;若masklum(i,j)=1则判定在b'host_1(i,j)中嵌入水印信息,并将b'host_1(i,j)定义为水印待嵌入块;其中,i'host的宽度为m'host且高度为n'host,masklum(i,j)表示masklum中坐标位置为(i,j)的像素点的像素值。

在此具体实施例中,步骤1_5中,masklum的获取过程为:

步骤1_5a:计算i'host_r的修正无反射(modifiedspecularfree,msf)图,记为msfr,将msfr中坐标位置为(x,y)的像素点的像素值记为msfr(x,y),同样,计算i'host_g的修正无反射图,记为msfg,将msfg中坐标位置为(x,y)的像素点的像素值记为msfg(x,y),计算i'host_b的修正无反射图,记为msfb,将msfb中坐标位置为(x,y)的像素点的像素值记为msfb(x,y),其中,1≤x≤m'host,1≤y≤n'host,i'host_r(x,y)表示i'host_r中坐标位置为(x,y)的像素点的像素值,i'min(x,y)=min(i'host_r(x,y),i'host_g(x,y),i'host_b(x,y)),min()为取最小值函数,i'host_g(x,y)表示i'host_g中坐标位置为(x,y)的像素点的像素值,i'host_b(x,y)表示i'host_b中坐标位置为(x,y)的像素点的像素值,

步骤1_5b:计算i'host与修正无反射图之间的差值图,记为d,将d中坐标位置为(x,y)的像素点的像素值记为d(x,y),

步骤1_5c:对d进行二值化处理,将二值化处理后得到的图像记为dotsu,将dotsu中坐标位置为(x,y)的像素点的像素值记为dotsu(x,y),其中,th为通过otsu(nobuyukiotsu)方法对i'host进行处理得到的阈值。

步骤1_5d:将dotsu划分成个互不重叠的尺寸大小为nblock×nblock的图像块,将对dotsu划分后得到的所有图像块中坐标位置为(i,j)的图像块记为dotsu(i,j);然后获取dotsu的宽度为且高度为的下采样图像,记为dotsu_sub,将dotsu_sub中坐标位置为(i,j)的像素点的像素值记为dotsu_sub(i,j),若dotsu(i,j)中的所有像素点的像素值的均值为1,则令dotsu_sub(i,j)=1;若dotsu(i,j)中的所有像素点的像素值的均值不为1,则令dotsu_sub(i,j)=0。

步骤1_5e:对dotsu_sub进行形态学开闭处理,将形态学开闭处理后得到的图像作为masklum。

步骤1_6:在b'host_1中的每个水印待嵌入块中嵌入水印信息,设b'host_1(i,j)为水印待嵌入块,则在b'host_1(i,j)中嵌入水印信息的过程为:将b'host_1(i,j)的中心像素点的像素值记为gt(i,j),将b'host_1(i,j)中除其中心像素点外的所有像素点的像素值按序排列构成行向量,并记为ghost_1,i,j,将b'host_1(i,j)的中心像素点的预测像素值记为gp(i,j);将b'host_1(i,j)嵌入水印信息后定义为水印嵌入块,并记为bwhost_1(i,j),将bwhost_1(i,j)的中心像素点的像素值记为当待嵌入的水印信息为1时,若|gt(i,j)|>|gp(i,j)|×(1+t)则令若|gt(i,j)|≤|gp(i,j)|×(1+t)则令当待嵌入的水印信息为0时,若|gt(i,j)|<|gp(i,j)|×(1-t)则令若|gt(i,j)|≥|gp(i,j)|×(1-t)则令其中,ghost_1,i,j的维数为1×(nblock×nblock-1),gp(i,j)是利用局部相关性模型γ和ghost_1,i,j计算得到的,m为正整数,m的初始值为1,1≤m≤nblock×nblock-1,ghost_1,i,j(1,m)表示ghost_1,i,j中下标为(1,m)的元素的元素值,γ的维数为(nblock×nblock-1)×1,将γ作为秘钥key2进行保存,γ(m,1)表示γ中下标为(m,1)的ar系数,符号“||”为取绝对值运算符号,t为水印嵌入强度,在本实施例中对于不同的高动态范围宿主图像来说t是根据各自对应的高动态范围宿主图像自适应选择的,中的“=”为赋值符号,sign()表示取符号的函数。

在此具体实施例中,步骤1_6中,gp(i,j)的获取过程为:

步骤1_6a1:在b'host_1的上侧和下侧分别填充k行像素值为0的像素点,在b'host_1的左侧和右侧分别填充k列像素值为0的像素点,将填充后得到的图像记为b”host_1;其中,k为正整数,b”host_1的宽度为m'host+2k且高度为n'host+2k。

步骤1_6a2:以尺寸大小为nblock×nblock的方块为滑动窗口,按步长为1个像素点在b”host_1中滑动,将b”host_1划分成m'host×n'host个重叠的尺寸大小为nblock×nblock的图像块,将b”host_1中的第s个图像块记为b”host_1_s;其中,s为正整数,s的初始值为1,1≤s≤m'host×n'host。

步骤1_6a3:利用现有的自回归(auto-regressive,ar)预测方法,建立b”host_1中的每个图像块的中心像素点的像素值与以该像素点为中心的nblock×nblock邻域范围内的所有邻近像素点的像素值之间的局部相关性,对于b”host_1_s,将b”host_1_s的中心像素点的像素值记为gs,将b”host_1_s中除其中心像素点外的所有像素点的像素值按序排列构成行向量,并记为gnon,s;将gs与以b”host_1_s的中心像素点为中心的nblock×nblock邻域范围内的所有邻近像素点的像素值之间的局部相关性描述为:其中,gnon,s的维数为1×(nblock×nblock-1),m为正整数,m的初始值为1,1≤m≤nblock×nblock-1,gnon,s(1,m)表示gnon,s中下标为(1,m)的元素的元素值,γ(m,1)表示γ中下标为(m,1)的ar系数,γ(m,1)反映了gs与gnon,s(1,m)之间的相关性,εs表示b”host_1_s对应的误差项,εs的值接近于0,如取εs=0.0000001。

步骤1_6a4:将b”host_1中的所有图像块的中心像素点的像素值按序排列构成列向量,记为ghost_1_t;将b”host_1中的所有图像块各自中除其中心像素点外的所有像素点的像素值按序排列构成的行向量依次排列组成矩阵,并记为ghost_1,将b”host_1中的所有图像块的中心像素点的预测像素值按序排列构成列向量,记为ghost_1_p;其中,ghost_1_t的维数为(m'host×n'host)×1,ghost_1的维数为(m'host×n'host)×(nblock×nblock-1),gnos,1表示b”host_1中的第1个图像块b”host_1_1中除其中心像素点外的所有像素点的像素值按序排列构成的行向量,gnon,s表示b”host_1中的第s个图像块b”host_1_s中除其中心像素点外的所有像素点的像素值按序排列构成的行向量,表示b”host_1中的第m'host×n'host个图像块中除其中心像素点外的所有像素点的像素值按序排列构成的行向量,ghost_1_p的维数为(m'host×n'host)×1。

步骤1_6a5:为使ghost_1_p与ghost_1_t的差异最小化,利用现有的最小二乘法估计出最优的模型参数,记为γ,γ=((ghost_1)t×ghost_1)-1×(ghost_1)t×ghost_1_t,并将γ作为局部相关性模型;其中,γ的维数为(nblock×nblock-1)×1,(ghost_1)t为ghost_1的转置,((ghost_1)t×ghost_1)-1为(ghost_1)t×ghost_1的逆。

步骤1_6a6:根据γ和ghost_1,i,j计算gp(i,j),其中,ghost_1,i,j(1,m)表示ghost_1,i,j中下标为(1,m)的元素的元素值。

在此具体实施例中,步骤1_6中,t的确定过程为:

步骤1_6b1:将t的初始值设置为0.5,将t的递减步长设为0.01;然后按照步骤1_1至步骤1_7的过程,获得取每个t值时ihost对应的高动态范围水印图像,共获得50幅高动态范围水印图像,将50幅高动态范围水印图像构成的集合记为{iw1,iw2,…,iw50};其中,iw1表示取t值为0.5时ihost对应的高动态范围水印图像,iw2表示取t值为0.49时ihost对应的高动态范围水印图像,iw50表示取t值为0.01时ihost对应的高动态范围水印图像。

步骤1_6b2:计算{iw1,iw2,…,iw50}中的每幅高动态范围水印图像的不可见性指标以及对抗5种不同的色调映射攻击后水印信息的提取误码率,将{iw1,iw2,…,iw50}中的第q幅高动态范围水印图像的不可见性指标和对抗第α种色调映射攻击后水印信息的提取误码率对应记为vdpq和berq,α(%);其中,q和α均为正整数,q和α的初始值均为1,1≤q≤50,1≤α≤5,vdpq和berq,α(%)的取值范围均为[0,100];在本实施例中5种不同的色调映射攻击分别为dragotmo、durandtmo、fattaltmo、pattanaikvisualtmo和reinharddevlintmo。

步骤1_6b3:令fmax=max(f1,f2,…,f50);然后将fmax对应的t值作为t的最终值;其中,fmax、f1、f2、f50均为引入的中间变量,max()为取最大值函数,vdp1表示{iw1,iw2,…,iw50}中的第1幅高动态范围水印图像的不可见性指标,vdp2表示{iw1,iw2,…,iw50}中的第2幅高动态范围水印图像的不可见性指标,vdp50表示{iw1,iw2,…,iw50}中的第50幅高动态范围水印图像的不可见性指标,ber1,α表示{iw1,iw2,…,iw50}中的第1幅高动态范围水印图像对抗第α种色调映射攻击后水印信息的提取误码率,ber2,α表示{iw1,iw2,…,iw50}中的第2幅高动态范围水印图像对抗第α种色调映射攻击后水印信息的提取误码率,ber50,α表示{iw1,iw2,…,iw50}中的第50幅高动态范围水印图像对抗第α种色调映射攻击后水印信息的提取误码率。

步骤1_7:对b'host_1中的所有不处理块和所有水印嵌入块进行图像块合并,重构得到含有水印信息的图像,记为b'host_1_w;然后按照步骤1_3的逆过程,对b'host_1_w进行处理,使处理后得到的图像的宽度为mhost且高度为nhost,将处理后得到的图像记为bhost_1_w,并作为含有水印信息的第一特征图;再利用现有的tucker3分解算法的逆变换对bhost_1_w、bhost_2和bhost_3进行处理,得到水印图像,记为iw;其中,iw的宽度为mhost且高度为nhost。

步骤1_8:水印嵌入端发送秘钥key1和秘钥key2给水印提取端。

如图2所示,所述的水印提取部分的具体步骤为:

步骤2_1:读取含有水印信息的水印图像,记为i'w;其中,i'w为rgb彩色图像,i'w的宽度为mhost且高度为nhost,i'w为未受到任何攻击的水印图像或为经过色调映射攻击后的水印图像。

步骤2_2:将i'w表示成三阶张量的形式,记为aw;然后利用现有的tucker3分解算法对aw进行张量分解,获得aw的核心张量,记为bw;并将bw的第1个通道作为i'w的第一特征图,记为bw_1;将bw的第2个通道作为i'w的第二特征图像,记为bw_2;将bw的第3个通道作为i'w的第三特征图像,记为bw_3;其中,aw和bw的尺寸均为mhost×nhost×3,bw_1、bw_2和bw_3的宽度均为mhost且高度均为nhost。

步骤2_3:如果mhost和nhost均能被nblock整除,则对bw_1不进行像素点的填充,并将bw_1重新对应记为b'w_1。

如果mhost能被nblock整除而nhost不能被nblock整除,则对bw_1的下侧进行像素点的填充,填充nblock-mod(nhost,nblock)行,并将bw_1经像素点的填充后得到的图像重新记为b'w_1。

如果mhost不能被nblock整除而nhost能被nblock整除,则对bw_1的右侧进行像素点的填充,填充nblock-mod(mhost,nblock)列,并将bw_1经像素点的填充后得到的图像重新记为b'w_1。

如果mhost不能被nblock整除且nhost不能被nblock整除,则对bw_1的右侧和下侧均进行像素点的填充,填充nblock-mod(mhost,nblock)列和nblock-mod(nhost,nblock)行,并将bw_1经像素点的填充后得到的图像重新记为b'w_1。

上述,nblock为奇数,nblock>1,在本实施例中取nblock=5个像素点,b'w_1的宽度为m'host且高度为n'host,符号为向上取整运算符号,mod()表示取模运算符号。

步骤2_4:将b'w_1作为水印提取载体,将b'w_1划分成个互不重叠的尺寸大小为nblock×nblock的图像块,将对b'w_1划分后得到的所有图像块中坐标位置为(i,j)的图像块记为b'w_1(i,j);其中,

步骤2_5:根据秘钥key1中的每个像素点的像素值判断b'w_1中的相同坐标位置的图像块中是否含有水印信息,对于b'w_1(i,j),若秘钥key1中坐标位置为(i,j)的像素点的像素值为0则判定b'w_1(i,j)中不含有水印信息;若秘钥key1中坐标位置为(i,j)的像素点的像素值为1则判定b'w_1(i,j)中含有水印信息,并将b'w_1(i,j)定义为水印待提取块。

步骤2_6:从b'w_1中的每个水印待提取块中提取水印信息,设b'w_1(i,j)为水印待提取块,则从b'w_1(i,j)中提取水印信息的过程为:将b'w_1(i,j)的中心像素点的像素值记为gt'(i,j),将b'w_1(i,j)中除其中心像素点外的所有像素点的像素值按序排列构成行向量,并记为g'w_1,i,j;然后利用秘钥key2和g'w_1,i,j计算b'w_1(i,j)的中心像素点的预测像素值,记为gp'(i,j),再根据gt'(i,j)和gp'(i,j)从b'w_1(i,j)中提取水印信息,若|gt'(i,j)|>|gp'(i,j)|成立则提取出的水印信息为1,若|gt'(i,j)|≤|gp'(i,j)|成立则提取出的水印信息为0;其中,g'w_1,i,j的维数为1×(nblock×nblock-1),g'w_1,i,j(1,m)表示g'w_1,i,j中下标为(1,m)的元素的元素值。

为了进一步说明本发明方法的可行性和有效性,进行实验。

在本实施例中,共选择了30幅高动态范围宿主图像和27种色调映射算子进行测试。其中,30幅高动态范围宿主图像分别来自:[1]gregward网站;[2]imagegallery网站;[3]tmqi数据库;27种色调映射攻击选自于hdrtoolboxformatlab工具包。表1给出了30幅高动态范围宿主图像的详细信息;表2给出了27种色调映射攻击的详细信息。

表130幅高动态范围宿主图像的详细信息

表227种色调映射(tm)攻击的详细信息

利用本发明方法对30幅高动态范围宿主图像分别执行水印嵌入部分的具体步骤以及水印提取部分的具体步骤。在此,利用现有的信噪比(signaltonoiseratio,snr)、结构相似度(structuralsimilarityindexmeasurement,ssim)和hdr-vdp-2.2这三项指标来评估本发明方法的不可见性;并利用误码率(biterrorrate,ber)来衡量本发明方法的鲁棒性;通过嵌入量(bit)和嵌入率(bpp)来表示本发明方法的水印嵌入容量。其中,除误码率以外,其他几项评价指标均是数值越高代表水印方法的性能越好,而误码率则是数值越小代表鲁棒性越高。

本发明方法的嵌入容量主要取决于图像处理过程中的图像块的大小nblock(在本实施例中nblock取5)以及亮度掩膜masklum中像素值0和像素值1的分布比例。表3给出了得到的30幅水印图像的嵌入容量,这30幅水印图像的平均嵌入量高达47644bit,平均嵌入率约为0.0290bpp,明显高于现有的大多数高动态范围图像鲁棒性水印方法。此外,本发明方法同样对其他图像块尺寸有效,并且随着图像块尺寸nblock的增大,嵌入容量会呈现出下降的趋势,而不可见性则表现为逐渐提高。表4给出了图像编号为“29”的高动态范围宿主图像在图像块大小nblock分别取3、5和7时的嵌入量(bit)、嵌入率(bpp)、snr、ssim、vdp、无色调映射攻击时的ber值(用ber0(%)表示)以及在27种色调映射攻击下的平均ber值(用ber1(%)表示)。

表330幅水印图像的嵌入容量

表4图像编号为“29”的高动态范围宿主图像在不同图像块大小下的对比数据

对于本发明方法的不可见性和鲁棒性,图3给出了30幅水印图像关于不可见性的评价结果,图4给出了30幅水印图像在无色调映射攻击时的水印提取误码率(%)以及分别对抗27种色调映射攻击时的平均水印提取误码率(%),图5给出了每种色调映射攻击分别作用于30幅水印图像后的水印提取误码率的均值,共有27种攻击类型。由于所选的30幅高动态范围宿主图像包含着不同的场景信息和室内外环境,因此通过观察图3、图4和图5中的数据可以发现不同的高动态范围宿主图像会表现出不同的鲁棒性和不可见性,然而这30幅水印图像的平均snr约为53.2654db、平均ssim为1.0000、平均vdp可高达91.5311,并且在无色调映射攻击时30幅高动态范围宿主图像的平均误码率仅有0.44%,而在分别对抗27种色调映射攻击时的平均误码率也仅有7.13%,从整体上来说本发明方法表现出了较高的鲁棒性和较好的不可见性。

为了进一步证明本发明方法的优越性,综合考虑了现有方法的实用性、有效性以及提取过程是否为盲检测等因素,分别与guerrini等人提出的“highdynamicrangeimagewatermarkingrobustagainsttone-mappingoperators”(对抗色调映射的鲁棒性高动态范围图像水印算法)、maiorana等人提出的“high-capacitywatermarkingofhighdynamicrangeimages”(高动态范围图像的大容量水印算法)以及bai等人提出的“towardsatonemapping-robustwatermarkingalgorithmforhighdynamicrangeimagebasedonspatialactivity”(基于空间活性的高动态范围图像鲁棒性水印算法)关于对抗色调映射攻击的鲁棒性和嵌入容量两方面进行了对比,并保证验证本发明方法所选的测试图像及攻击类型与上述三种现有方法所选的保持一致,本发明方法与guerrini等人、bai等人关于嵌入量(bit)和ber(%)的对比数据如表5所列,本发明方法与maiorana等人、bai等人关于嵌入量(bit)和ber(%)的对比数据如表6所列。

表5本发明方法与guerrini等人、bai等人关于嵌入量(bit)和ber(%)的对比数据

表6本发明方法与maiorana等人、bai等人关于嵌入量(bit)和ber(%)的对比数据

分析表5和表6所列数据,可以看出本发明方法的嵌入容量是guerrini等人、maiorana等人提出的水印方法的15倍左右,并与bai等人提出的水印方法相当;关于鲁棒性,虽然个别图像在受到色调映射攻击时表现出了误码率(%)高于现有方法,但大多数色调映射攻击下水印信息提取的误码率(%)还是明显低于guerrini等人以及maiorana等人提出的水印方法。此外,表7给出了本发明方法与现有三种水印方法的综合性能对比结果。

表7水印方法综合性能对比

由表7所给的综合性能对比数据可以看出,本发明方法对更多的高动态范围宿主图像和更多的色调映射攻击类型进行了测试,并具有更高的嵌入容量和更好的鲁棒性。

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