1.一种基于联合恰可觉察失真的立体图像脆弱水印方法,其特征在于包括以下步骤:在水印嵌入端,有如下步骤:
①在水印嵌入端,将待嵌入水印的立体图像记为{Sorg(m,n)},将{Sorg(m,n)}的左图像记为{Lorg(m,n)},将{Sorg(m,n)}的右图像记为{Rorg(m,n)},其中,{Sorg(m,n)}、{Lorg(m,n)}和{Rorg(m,n)}的分辨率为M×N,1≤m≤M,1≤n≤N,Sorg(m,n)表示{Sorg(m,n)}中坐标位置为(m,n)的像素点的像素值,Lorg(m,n)表示{Lorg(m,n)}中坐标位置为(m,n)的像素点的像素值,Rorg(m,n)表示{Rorg(m,n)}中坐标位置为(m,n)的像素点的像素值;
②将{Lorg(m,n)}和{Rorg(m,n)}分别划分成 个互不重叠的尺寸大小为8×8的图像块,将{Lorg(m,n)}中坐标位置为(x,y)的图像块记为 将{Rorg(m,n)}中坐标位置为(x,y)的图像块记为 其中,
③将块匹配视差图像记为{Dorg(x,y)},Dorg(x,y)表示{Dorg(x,y)}中坐标位置为(x,y)的像素点的像素值,若能很好匹配,则Dorg(x,y)的像素值范围是1-31,若不能很好匹配,则Dorg(x,y)为0,令{Lorg(m,n)}为参考图像,对{Rorg(m,n)}中坐标位置为(x,y)的图像块 在{Lorg(m,n)}中的水平图像块中搜索最佳匹配块,最佳匹配块的坐标位置为(x,y+d),则块匹配视差图像中的Dorg(x,y)值为d,将{Rorg(m,n)}中的 记为可匹配块,将{Lorg(m,n)}中的 记为{Rorg(m,n)}中的 的匹配块;
④对{Lorg(m,n)}和{Rorg(m,n)}中的每个图像块分别进行离散余弦变换,并利用JPEG量化表对变换后的系数进行量化,生成{Lorg(m,n)}中的每个图像块的特征信息和{Rorg(m,n)}中的每个图像块的特征信息,将{Lorg(m,n)}中坐标位置为(x,y)的图像块生成的特征信息记为 将{Rorg(m,n)}中坐标位置为(x,y)的图像块生成的特征信息记为
然后根据{Lorg(m,n)}和{Rorg(m,n)}中的每个图像块的特征信息和块匹配视差图像{Dorg(x,y)}产生{Lorg(m,n)}和{Rorg(m,n)}的水印,记为 和 其中,和 的分辨率为M×N, 和 表示 和
中坐标位置为(m,n)的像素点的像素值;
所述的步骤④的具体过程为:
④-1、对{Lorg(m,n)}和{Rorg(m,n)}中的每个图像块每个像素点的高六位比特位的值进行离散余弦变换;得到{Lorg(m,n)}和{Rorg(m,n)}中的每个图像块的64个离散余弦变换系数,然后利用JPEG量化表对{Lorg(m,n)}和{Rorg(m,n)}中的每个图像块的64个离散余弦变换系数进行量化;
④-2、对{Lorg(m,n)}和{Rorg(m,n)}中的每个图像块的64个量化后的离散余弦变换系数进行Zigzag扫描形成一行,然后选取{Lorg(m,n)}和{Rorg(m,n)}中的每个图像块的前13个量化后的离散余弦变换系数,其中,每个量化后的离散余弦变换系数为十进制形式;
④-3、以二进制表示{Lorg(m,n)}和{Rorg(m,n)}中的每个图像块的前13个量化后的离散余弦变换系数,其中将第一个到第十三个变换系数表示成二进制形式所用的比特个数分别是7、6、6、5、6、5、4、4、4、3、3、3、3,得到{Lorg(m,n)}和{Rorg(m,n)}中的每个图像块对应的
59个特征比特位;
④-4、令 和 表示{Lorg(m,n)}和{Rorg(m,n)}的特征信息,和 中包含59个特征比特位;对块匹配视差图像{Dorg(x,y)}中的十进制视差值用5个比特表示成二进制,将{Lorg(m,n)}和{Rorg(m,n)}中的每个匹配块和可匹配块的和 中的每个像素值赋值给 和 的逐行扫描的前59个像素,将Dorg(x,y)中的每个视差值的5个比特值赋值给 和 的逐行扫描的后5个像素,将{Lorg(m,n)}和{Rorg(m,n)}中的不可匹配块的 和中的每个像素值赋值给 和 的逐行扫描的前59个像素,将 和
的逐行扫描的后5个像素赋值为0,每个 和 尺寸大小为8×8,
最后产生{Lorg(m,n)}和{Rorg(m,n)}的水印,记为 和
⑤根据Dorg(x,y)获取{Lorg(m,n)}和{Rorg(m,n)}中的每个图像块的联合恰可觉察失真值,生成{Lorg(m,n)}和{Rorg(m,n)}的联合恰可觉察失真图像,记为 和和 表示 和 中坐标位置为
(x,y)的像素点的联合恰可觉察失真值;
⑥根据 和 中的每个图像块的联合恰可觉察失真值和
{Rorg(m,n)}中可匹配块的个数,将{Sorg(m,n)}中的所有图像块分为两类,并分别确定两类图像块待嵌入水印比特位的位置,然后将水印 和 嵌入{Sorg(m,n)}中;
在水印提取端,有如下步骤:
1)在水印提取端,将待提取水印的立体图像记为{Swat(m,n)},将{Swat(m,n)}的左图像记为{Lwat(m,n)},将{Swat(m,n)}的右图像记为{Rwat(m,n)},其中,{Swat(m,n)}、{Lwat(m,n)}和{Rwat(m,n)}的分辨率为M×N,1≤m≤M,1≤n≤N,Swat(m,n)表示{Swat(m,n)}中坐标位置为(m,n)的像素点的像素值,Lwat(m,n)表示{Lwat(m,n)}中坐标位置为(m,n)的像素点的像素值,Rwat(m,n)表示{Rwat(m,n)}中坐标位置为(m,n)的像素点的像素值;
2)将{Lwat(m,n)}和{Rwat(m,n)}分别划分成 个互不重叠的尺寸大小为8×8的图像块,将{Lwat(m,n)}中坐标位置为(x,y)的图像块记为 将{Rwat(m,n)}中坐标位置为(x,y)的图像块记为 其中,
3)对{Lwat(m,n)}和{Rwat(m,n)}中的每个图像块分别进行离散余弦变换,并利用JPEG量化表对变换后的系数进行量化,生成{Lwat(m,n)}中的每个图像块的特征信息和{Rwat(m,n)}中的每个图像块的特征信息,将{Lwat(m,n)}中坐标位置为(x,y)的图像块生成的特征信息记为 将{Rwat(m,n)}中坐标位置为(x,y)的图像块生成的特征信息记为 则{Lwat(m,n)}和{Rwat(m,n)}生成的特征信息记为 和
所述的步骤3)的具体过程为:
3)-1、对{Lwat(m,n)}和{Rwat(m,n)}中的每个图像块进行每个像素点的高六位比特位的值进行离散余弦变换;得到{Lwat(m,n)}和{Rwat(m,n)}中的每个图像块的64个离散余弦变换系数,然后利用JPEG量化表对{Lwat(m,n)}和{Rwat(m,n)}中的每个图像块的64个离散余弦变换系数进行量化;
3)-2、对{Lwat(m,n)}和{Rwat(m,n)}中的每个图像块的64个量化后的离散余弦变换系数进行Zigzag扫描形成一行,然后选取{Lwat(m,n)}和{Rwat(m,n)}中的每个图像块的前13个量化后的离散余弦变换系数,其中,每个量化后的离散余弦变换系数为十进制形式;
3)-3、以二进制表示{Lwat(m,n)}和{Rwat(m,n)}中的每个图像块的前13个量化后的离散余弦变换系数,其中将第一个到第十三个变换系数表示成二进制形式所用的比特个数分别是7、6、6、5、6、5、4、4、4、3、3、3、3,得到{Lwat(m,n)}和{Rwat(m,n)}中的每个图像块对应的
59个特征比特位;
3)-4、令 和 表示{Lwat(m,n)}和{Rwat(m,n)}的特征信息,和 分别表示 和 的特征信息,包含59个特征比特
位;
4)根据{Lwat(m,n)}和{Rwat(m,n)}中的每个图像块提取{Lwat(m,n)}和{Rwat(m,n)}中的水印,记为 和 提取{Lwat(m,n)}和{Rwat(m,n)}中的每个图像块的特征信息,记为 和
所述的步骤4)的具体过程为:
4)-1、对{Lwat(m,n)}中的图像块 的坐标位置(x,y),根据查询表Ltab(x,y)的第一行获取第一映射块的坐标位置(x',y'),从第一映射块中获取嵌入的水印,记为第一特征信息是 逐行扫描的前59个比特位,记为 根据查询表Ltab(x,y)的第二行获取第二映射块的坐标位置(x”,y”),从第二映射块中获取嵌入的水印,记为 第二特征信息是 逐行扫描的前59个比特位,记为
4)-2、对{Rwat(m,n)}中的不可匹配图像块 的坐标位置(x,y),根据查询表Rtab(x,y)的第一行获取第一映射块的坐标位置(x',y'),从第一映射块中获取嵌入的水印,记为记为 第一特征信息是 逐行扫描的前59个比特位,记为根据查询表Rtab(x,y)的第二行获取第二映射块的坐标位置(x”,y”),从第二映射块中获取嵌入的水印,记为 第二特征信息是 逐行扫描的前59个
比特位,记为 对{Rwat(m,n)}中的可匹配图像块 的坐标位置(x,y),根据查询表Rtab(x,y)的第一行获取第一映射块的坐标位置(x',y'),从第一映射块中获取嵌入的水印,记为记为 第一特征信息是 逐行扫描的前59个比特位,记为 第二特征信息 与 相同;
5)计算 与 的差图像,记为 计算
与 的差图像,记为 计算 与 的差图像,
记为 计算 和 的差图像,记为 然后根
据 和 生成{Lwat(m,n)}的定位图像
和{Rwat(m,n)}的定位图像,分别记为{ELwat(x,y)}和{ERwat(x,y)},其中{ELwat(x,y)}和{ERwat(x,y)}的分辨率为 ELwat(x,y)表示{ELwat(x,y)}中坐标位置为(x,y)的像素点的像素值,ERwat(x,y)表示{ERwat(x,y)}中坐标位置为(x,y)的像素点的像素值;
6)判断{Lwat(m,n)}的定位图像{ELwat(x,y)}中每个像素点的像素值,确定{Lwat(m,n)}中遭到篡改的图像块,然后根据遭到篡改的图像块找出此篡改块的水印,用水印恢复篡改块中每个像素点的值;
判断{Rwat(m,n)}的定位图像{ERwat(x,y)}中的每个像素点的像素值,确定{Rwat(m,n)}中遭到篡改的图像块,若此图像块是不可匹配块,则根据遭到篡改的图像块找出此篡改块的水印,用水印恢复篡改块中每个像素点的值,若此图像块是可匹配块,则根据遭到篡改的图像块找出此篡改块的水印或这个可匹配块相对应的匹配块的像素值,恢复篡改块中每个像素点的值。
2.根据权利要求1所述的一种基于联合恰可觉察失真的立体图像脆弱水印方法,其特征在于所述的步骤⑤的具体过程为:⑤-1、获取{Lorg(m,n)}和{Rorg(m,n)}中每个图像块的恰可觉察失真,分别记为和 其中, 和 的分辨率均为
和 表示 和 中坐标位置为(x,y)的像素点的像素值;
⑤-2、对{Lorg(m,n)}和{Rorg(m,n)}的每个图像块求取联合恰可觉察失真的加权系数,记为 和 其中, 中的每个像素值赋值为1,对于{Rorg(m,n)}中的图像块,根据{Dorg(x,y)}中的值,确定 中的值;
⑤-3、将获取得到的{Lorg(m,n)}中每个图像块的恰可觉察失真 乘于对应的联合可觉察失真的加权系数 得到联合恰可觉察失真 将获取得到的
{Rorg(m,n)}中每个图像块的恰可觉察失真 乘于对应的联合可觉察失真的加权系数 得到联合恰可觉察失真
3.根据权利要求1所述的一种基于联合恰可觉察失真的立体图像脆弱水印方法,其特征在于所述的步骤⑥的具体过程为:⑥-1、根据{Dorg(x,y)}统计{Sorg(m,n)}中的匹配图像块个数,记为μ,对和 中的联合恰可觉察失真值从小到大排序,形成一个一维数组序列,记为Th,则将联合恰可觉察失真值的阈值定义为Th(μ);
⑥-2、根据Th(μ)将{Lorg(m,n)}和{Rorg(m,n)}中的所有图像块分为两类,若{Lorg(m,n)}中图像块的 的值不大于Th(μ),此图像块归为第一类图像块,若{Rorg(m,n)}中图像块的 的值不大于Th(μ),此图像块归为第一类图像块,图像块中的每个像素提供b0比特位作为水印的嵌入位置,若{Lorg(m,n)}中图像块的的值大于Th(μ),此图像块归为第二类图像块,若{Rorg(m,n)}中图像块的 的值大于Th(μ),此图像块归为第二类图像块,图像块中的每个像素提供b0和b1比特位作为水印的嵌入位置,其中每个像素点的像素值用二进制表示时,其比特位从低位到高位依次为b0、b1、b2、b3、b4、b5、b6、b7,即b0表示最低位;
⑥-3、将第二类图像块的坐标位置范围复制形成第一映射坐标范围和第二映射坐标范围;对于{Lorg(m,n)}中的每个图像块 的坐标位置(x,y)在密钥K1和密钥K2下分别在第一映射坐标范围和第二映射坐标范围内进行Torus二维坐标置换映射得到映射后的第一坐标位置和第二坐标位置记为(x',y')和(x”,y”),定义坐标位置为(x',y')的图像块为第一映射块,定义坐标位置为(x”,y”)的图像块为第二映射块,x'=(x×K1)mod(M1)+1,y'=(y×K1)mod(N1)+1,x”=(x×K2)mod(M2)+1,y”=(y×K2)mod(N2)+1,其中,M1和N1分别表示第一映射坐标范围内未被映射的图像块横坐标数和纵坐标数,M2和N2分别表示第二映射坐标范围内未被映射的图像块横坐标数和纵坐标数,mod为取模运算符号,K1≠K2,K1∈[0,100],K2∈[0,100];
⑥-4、定义{Lorg(m,n)}和{Rorg(m,n)}的坐标位置的映射位置查询表,记为{Ltab(x,y)}和{Rtab(x,y)},Ltab(x,y)和Rtab(x,y)表示{Ltab(x,y)}和{Rtab(x,y)}中坐标位置记录为(x,y)的像素点的二维矩阵,Ltab(x,y)和Rtab(x,y)的第一行分别记录{Lorg(m,n)}和{Rorg(m,n)}的第一映射块的横纵坐标值(x',y'),Ltab(x,y)和Rtab(x,y)的第二行分别记录{Lorg(m,n)}和{Rorg(m,n)}的第二映射块的横纵坐标(x”,y”),若没有第二映射块,则第二行的值赋值为0;
⑥-5、将{Lorg(m,n)}中的每个图像块对应的64个水印比特位的值赋值给坐标位置为(x',y')图像块中的每个像素点的像素值的b0比特位,赋值给坐标位置为(x”,y”)图像块中的每个像素点的像素值的b1比特位,完成将水印嵌入{Sorg(m,n)}中,并将对应的映射块的坐标填入Ltab(x,y)中;
⑥-6、对于{Rorg(m,n)}中的每个不可匹配图像块 的坐标位置(x,y)在密钥K1和密钥K2下分别在第一映射坐标范围和第二映射坐标范围内进行Torus二维坐标置换映射得到映射后的第一坐标位置和第二坐标位置记为(x',y')和(x”,y”),定义坐标位置为(x',y')的图像块为第一映射块,定义坐标位置为(x”,y”)的图像块为第二映射块,x'=(x×K1)mod(M1)+1,y'=(y×K1)mod(N1)+1,x”=(x×K2)mod(M2)+1,y”=(y×K2)mod(N2)+1,其中,M1和N1分别表示第一映射坐标范围内未被映射的图像块横坐标数和纵坐标数,M2和N2分别表示第二映射坐标范围内未被映射的图像块横坐标数和纵坐标数,mod为取模运算符号,K1≠K2,K1∈[0,100],K2∈[0,100];将{Rorg(m,n)}中的每个图像块对应的64个水印比特位的值赋值给坐标位置为(x',y')图像块中的每个像素点的像素值的b0比特位,赋值给坐标位置为(x”,y”)图像块中的每个像素点的像素值的b1比特位,完成将水印嵌入{Sorg(m,n)}中,并将对应的映射块的坐标填入Rtab(x,y)中;
对于{Rorg(m,n)}中的每个可匹配图像块 的坐标位置(x,y)在密钥K3下在第一类图像块的坐标位置范围内进行Torus二维坐标置换映射得到映射后的第三坐标位置* * * * * *记为(x,y),定义坐标位置为(x,y)的图像块为第三映射块,x=(x×K3)mod(M3)]+1,y=(y×K3)mod(N3)]+1,其中,M3表示第三映射坐标范围内未被映射的图像横坐标数,N3表示第三映射坐标范围内未被映射的图像纵坐标数,mod为取模运算符号,K3∈[0,100];将* *{Rorg(m,n)}中的每个图像块对应的64个水印比特位的值赋值给坐标位置为(x,y)图像块中的每个像素点的像素值的b0比特位,完成将水印嵌入{Sorg(m,n)}中,并将对应的映射块的坐标填入Rtab(x,y)中。