[发明专利]基于Tucker分解的高动态范围图像水印方法有效
申请号: | 201910421797.5 | 申请日: | 2019-05-21 |
公开(公告)号: | CN110246076B | 公开(公告)日: | 2022-12-27 |
发明(设计)人: | 王扬;郁梅;蒋刚毅;白永强 | 申请(专利权)人: | 宁波大学 |
主分类号: | G06T1/00 | 分类号: | G06T1/00 |
代理公司: | 宁波奥圣专利代理有限公司 33226 | 代理人: | 周珏 |
地址: | 315211 浙*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于Tucker分解的高动态范围图像水印方法,其包括水印嵌入和水印提取两部分,在水印嵌入过程中,将高动态范围宿主图像表示成三阶张量的形式,然后利用Tucker3分解对高动态范围宿主图像进行处理,并将得到的核心张量的第一特征图作为水印信息的嵌入载体,这不仅是因为核心张量的第一特征图涵盖了一幅高动态范围宿主图像的主要能量,而且还可以使嵌入的水印信息随着分解的逆变换扩散到高动态范围水印图像的R、G、B三个通道中,从而有效地提高了鲁棒性;在水印提取过程中不需要原始的高动态范围宿主图像,实现了水印信息的盲提取;此外,本发明方法不会对高动态范围图像的内部结构造成破坏,在不可见性和嵌入容量方面也取得了较好的效果。 | ||
搜索关键词: | 基于 tucker 分解 动态 范围 图像 水印 方法 | ||
【主权项】:
1.一种基于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)则令Gtw(i,j)=Gt(i,j),若|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)的元素的元素值。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于宁波大学,未经宁波大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910421797.5/,转载请声明来源钻瓜专利网。
- 上一篇:一种智慧城市监控卡口布设方法
- 下一篇:一种图形处理方法及系统