[发明专利]基于混沌系统的随机位盲水印实现方法在审
申请号: | 201611214176.2 | 申请日: | 2016-12-26 |
公开(公告)号: | CN108242040A | 公开(公告)日: | 2018-07-03 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 天津职业技术师范大学 |
主分类号: | G06T1/00 | 分类号: | G06T1/00 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 300222 天*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 载体图像 比特位 混沌系统 嵌入水印 水印信息 像素 二进制 嵌入位置 盲水印 嵌入 版权认证 二进制位 数字水印 随机选取 图像处理 信息安全 信息隐藏 计算机应用 固定的 随机地 隐蔽性 出水 应用 | ||
1.一种基于混沌系统的随机位盲水印实现方法,其特征是:通过混沌系统控制水印信息在载体图像内的嵌入位置。随机位数字水印将水印信息随机地嵌入到载体图像中各个像素的二进制值的不同比特位上,从而使得水印信息具有更好的隐蔽性。在嵌入水印信息时,在载体图像中每个像素的二进制位上嵌入水印信息的位置都是随机的、不固定的。嵌入时,针对载体图像的每一个像素,都在其二进制值的第0个到第7个比特位上随机选取一位,在选取的比特位上嵌入水印信息。提取时,在与嵌入位置相同的比特位上提取出水印信息。具体为:
1嵌入过程
嵌入过程完成将水印随机嵌入到载体图像中每个像素的不同二进制位上,其主要步骤为:
(1)载体图像预处理
载体图像预处理主要包括:读取载体图像,获取其大小,将其进行通道分解。
例如,读取原始载体图像O,获取图像O的长度M和宽度N,对图像的通道进行分解,得到其R通道rgb[0],G通道rgb[1],B通道rgb[2]。
原始载体图像O的R通道rgb[0]为:
209 197 163 193 125 247 160 112 161 137 243 203 39 82 154 127
其对应的二进制值BR为:
11010001 11000101 10100011 11000001 01111101 11110111 10100000 01110000 10100001 10001001 11110011 11001011 00100111 01010010 10011010 01111111
(2)水印处理
读取水印图像,对读取的二值水印图像进行阈值处理,将其转换为二进制值水印图像,即将其中的值255转换为1,以方便嵌入到载体图像内。
例如,有二值水印图像WO为:
255 255 255 255 255 255 255 255 255 0 255 0 0 0 255 255
该二值水印图像对应的二进制水印图像W为:
1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1
(3)确定嵌入位置
根据混沌系统的初始值生成嵌入位置矩阵,由嵌入位置矩阵来确定将水印信息嵌入到二进制像素值中的具体比特位。
例如,确定密钥为0.98,则混沌系统采用的初始值为0.98,按照8.2.3中所介绍根据混沌系统生成位置矩阵的方法,生成决定嵌入位置信息的位置矩阵CS为:
0 0 7 5 0 1 0 1 4 7 4 1 5 2 6 4
位置矩阵CS决定了水印信息在图像R通道BR内每个像素上的具体嵌入比特位位置。根据位置矩阵CS,将BR中需要嵌入水印的比特位标注下划线,具体为:
(4)嵌入水印信息
只需要用水印信息替换掉载体图像内原有信息即可。在具体的实现上,将水印信息W与原始载体二值图像BR中指定位置的二进制位信息(比特位上的值)进行比较:
●如果二者一致
则不需要任何操作即将水印嵌入到了载体图像内;
●如果二者不一致
则将BR中指定位置的值(比特位上的值)进行取反操作,即在0和1之间进行互换。例如:
原来该比特位的值为1,则换为0;
原来该比特位的值为0,则换为1。
假设需要嵌入水印的位置在载体图像二进制像素值的第n位(这里二进制位从0开始),则:
当该位的值为1时,则将该像素值减去2^n,即实现了将该位的1替换为0。
当该位的值为0时,则将该像素值加上2^n,即实现了将该位的0置换为1;
对上述情况进行区别,以具体的数字进行演示,如表9所示。(注意:位数序号从0开始。)
表9 嵌入示例
根据上述归纳的结果,针对三种类型分别进行操作说明,具体为:
步骤1:处理规则A
在原始载体图像R通道BR中和水印W中,对应位置(像素所在的行和列坐标一致)上,原始载体图像R通道BR中由位置矩阵所指定的比特位上的位值和水印W的值相同,符合该规则的BR和W如表10和表11中深色背景部分表格所示,表10中这部分的元素不需要任何改变即完成了水印的嵌入。
表10 原始载体BR
1]]> 1]]> 10100011]]> 000001]]> 1]]> 11]]> 0]]> 00]]> 00001]]> 10001001]]> 10011]]> 11]]> 100111]]> 010]]> 0011010]]> 11111]]>
表11 水印W
1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1
可以直接将上述原始载体图像R通道BR中的元素复制到含水印图像WB中,此时WB中的值为:
1]]> 1]]> 10100011]]> 01111101 11]]> 10011]]> 010]]> 111111]]>
步骤2:处理规则B
在原始载体图像R通道BR中和水印W中,在对应位置上,原始载体图像R通道BR中由位置矩阵CS所指定的要嵌入水印信息的比特位的位值为1、水印W的值为0,这种情况符合规则B。该情况的原始载体图像R通道BR和水印W如表12和表13中稍深色的背景部分所示。
表12 原始载体图像R通道BR
表13 水印W
针对规则B,需要将原始载体图像R通道BR对应位置上的像素值减去2^n,这里n是其要嵌入水印的比特位的位置,n的值由位置矩阵CS所决定。位置矩阵CS中对应位置的值如表14中深色背景所示。
表14 嵌入位置矩阵CS
因此,根据上述CS可以得到:
●表12中原始载体图像R通道BR第3行第2列(这里行和列的序号从1开始)的值“10001001”需要嵌入水印的比特位位置可以通过嵌入位置矩阵CS的得到,位置矩阵CS中对应位置的值为7,因此需要将该值减去“2^7”,得到“
●表12中原始载体图像R通道BR第3行第4列的值“110010
●表12中原始载体图像R通道BR第4行第1列的值“00
上述过程完成后,将得到的值复制到含水印图像WB中,此时WB中的值为:
步骤3:处理规则C
在原始载体图像的R通道BR中和水印W中,在对应位置上,图像BR中由位置矩阵CS所指定的要嵌入水印的比特位上的值为0、水印W的值为1,这种情况符合处理规则C。这部分如表15和表16中白色背景部分所示。
表15 原始载体图像的R通道BR
表16 水印W
针对规则C,需要将原始载体图像的R通道BR内对应位置上的像素值加上2^n,这里n是要嵌入水印的比特位位置,n的值由位置矩阵CS所决定。位置矩阵CS对应位置的值如表17中白色背景所示。
表17 嵌入位置矩阵CS
因此,根据上述矩阵CS,完成操作为:
●表15所示的原始载体图像的R通道BR中第1行第4列的值为“11
●表15所示的原始载体图像的R通道BR中第2行第3列的值为“1010000
●表15所示的原始载体图像的R通道BR中第2行第4列的值为“011100
●表15所示的原始载体图像的R通道BR中第3行第1列的值为“101
●表15所示的原始载体图像的R通道BR中第4行第3列的值为“1
上述过程完成后,将得到的值复制到含水印图像WB中,此时WB中的值为:
将得到的含水印图像WB作为含水印载体图像Result的R通道,将其与原始载体图像的G通道、B通道使用merge函数组合得到含水印彩色图像Result。
(5)显示图像
对要显示的原始载体图像、含水印图像进行通道顺序的转换,以便于显示。分别显示原始载体图像、水印图像、含水印图像,保存含水印图像。
2提取过程
提取过程完成将水印信息从含水印载体图像内提取出来,具体过程如下:
(1)含水印载体图像处理
读取包含水印的载体图像、获取其大小、分解通道。
例如,读取包含水印的载体图像WO,获取图像WO的长度M和宽度N,分解图像WO的RGB通道,分别记为bgr[0]、bgr[1]、bgr[2]。
(2)生成提取位置矩阵
根据混沌系统的初始值生成提取位置矩阵,用来确定提取水印信息时在二进制像素值中的具体位置。
例如:设置混沌系统的初始值为0.98,按照8.2.3所介绍的方法生成提取位置矩阵CS为:
0 0 7 5 0 1 0 1 4 7 4 1 5 2 6 4
(3)提取水印信息
从含水印的载体图像内提取出水印信息,水印信息在每个像素中的具体位置由位置矩阵指定。对提取到的二进制水印信息进行阈值调整,得到二值水印图像以便显示。
例如,含水印图像中像素的值为218,其对应的位置矩阵CS中的对应位上值为3,则需要从该像素的二进制位的第3位(注意:序号从0开始,即最低有效位是第0位)提取出水印信息。具体如表18所示。
表18 提取水印示例
含水印像素值 二进制值 对应位置的CS值 提取的水印值 216 1000]]> 3 1
在程序具体实现时,通过将含水印像素的二进制右移提取位置信息矩阵CS值指定的位数来获取左边的若干位信息Nleft,使得水印信息处于最低有效位。该值的最低有效位即为要提取的水印信息,可以通过将数值Nleft对2取模而得到。例如,像素值216,其二进制位值为“1101
计算表达式为:
(11011000>>3)%2
假设,从读入的WO中提取的R通道rgb[0]为:
11010001 11000101 10100011 11100001 01111101 11110111 10100001 01110010 10100001 00001001 11110011 11001001 00000111 01010010 11011010 01111111
根据上述步骤,已知矩阵CS为:
0 0 7 5 0 1 0 1 4 7 4 1 5 2 6 4
则根据上述提取规则提取水印信息,需要进行的运算为:
(11010001>>0)%2 (11000101>>%2 (10100011>>7%2 (11100001>>5)%2 (01111101>>0)%2 (11110111>>1)%2 (10100001>>0)%2 (10100001>>0)%2 (10100001>>4)%2 (10100001>>7)%2 (10100001>>4)%2 (10100001>>1)%2 (00000111>>5)%2 (01010010>>2)%2 (11011010>>6)%2 (01111111>>4)%2
由上式,提取的二进制值水印信息WE为:
1 1 1 1 1 1 1 1 1 0 1 0 0 0 1 1
对二进制水印图像WE进行阈值调整,将WE中值为1的像素值调整为255。则得到二值水印图像WG,为:
255 255 255 255 255 255 255 255 255 255 255 0 0 0 255 255
通过将含水印载体图像与一个内部值全部为2^n的Mat型矩阵进行按位与操作,也可以将n所指定的位置上的水印提取出来。需要注意,计算所使用的n的值通过位置矩阵CS得到,针对不同的像素,n的值是不固定的。
上述过程提取到水印后,将水印信息进行阈值调整,将其中不为0的元素调整为255,即得到只包含像素值0和255的二值水印图像。
(4)显示图像
对含水印的载体图像WO使用cvtColor函数进行通道顺序调整以便于显示。显示水印图像WG、含水印图像WO,保存水印图像WG。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津职业技术师范大学,未经天津职业技术师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611214176.2/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种乘客信息校对系统
- 下一篇:一种基于混沌的随机位非盲水印实现方法