一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于菱形预测器的高容量可逆水印方法和装置与流程

2022-02-22 17:00:59 来源:中国专利 TAG:


1.本技术涉及图像处理技术领域,尤其涉及一种基于菱形预测器的高容量可逆水印方法和装置。


背景技术:

2.目前,数字水印是数字版权保护的重要手段,应实际应用需要,可逆数字水印技术应运而生,其特点在于利用该技术嵌入水印之后,除了能提取出水印信息,还能无失真的恢复原始载体图像。可逆数字水印的可逆性使其很适用于一些高保真应用场景,如医疗、军事等领域。可逆数字水印技术的优劣有两个重要的衡量标准:嵌入容量和失真度,而高嵌入容量一定程度会导致高失真,难以同时实现高嵌入容量和低失真度。为了更好的解决这个问题,提出了很多可逆水印算法来寻找嵌入容量和失真度的优质平衡点,但并没有取得特别好的结果,相关技术中的可逆水印方案最多达到1bpp的嵌入容量,即每个像素点处最多嵌入1bit的二进制数据,随着嵌入数据位数的增多,对图像造成的失真也累计增大。


技术实现要素:

3.本技术旨在至少在一定程度上解决相关技术中的技术问题之一。
4.为此,本技术的第一个目的在于提出一种基于菱形预测器的高容量可逆水印方法,实现了两次嵌入数据造成的失真互相抵消的方案,改善了嵌入数据对原图像的失真影响,大大提升了嵌入容量,实现了更好的嵌入效果。
5.本技术的第二个目的在于提出一种基于菱形预测器的高容量可逆水印装置。
6.为达上述目的,本技术第一方面实施例提出了一种基于菱形预测器的高容量可逆水印方法,包括:
7.s1,获取待处理图像,将所述待处理图像转化为灰度图像,并将所述灰度图像的像素点划分为第一像素集合和第二像素集合;
8.s2,通过菱形预测器基于所述第一像素集合和所述第二像素集合预测,获取所述第一像素集合中每个像素点对应的第一高预测值和第一低预测值;
9.s3,计算所述第一像素集合中每个像素点对应的第一波动值,并按照所述第一波动值进行排序,根据排序结果确定所述第一像素集合中每个像素点的第一嵌入顺序;
10.s4,根据所述第一嵌入顺序确定所述第一像素集合中第一嵌入像素点,并利用所述第一嵌入像素点的第一高预测值对所述第一嵌入像素点进行嵌入,获取第一候选嵌入像素点,并利用所述第一嵌入像素点的第一低预测值对所述第一候选嵌入像素点进行嵌入,获取第一目标嵌入像素点;
11.s5,根据所述第一嵌入顺序依次对所述第一像素集合中每个像素点重复步骤s4的操作,直到所述第一像素集合中每个像素点完成嵌入,获取第一目标像素集合;
12.s6,通过所述菱形预测器基于所述第一目标像素集合和所述第二像素集合预测,获取所述第二像素集合中每个像素点对应的第二高预测值和第二低预测值;
13.s7,计算所述第二像素集中每个像素点对应的第二波动值,并按照所述第二波动值进行排序,根据排序结果确定所述第二像素集中每个像素点的第二嵌入顺序;
14.s8,根据所述第二嵌入顺序确定所述第二像素集合中第二嵌入像素点,并利用所述第二嵌入像素点的第二高预测值对所述第二嵌入像素点进行嵌入,获取第二候选嵌入像素点,并利用所述第二嵌入像素点的第二低预测值对所述第二候选嵌入像素点进行嵌入,获取第二目标嵌入像素点;
15.s9,根据所述第二嵌入顺序依次对所述第二像素集合中每个像素点重复步骤s8的操作,直到所述第二像素集合中每个像素点完成嵌入,获取第二目标像素集合。
16.s10,根据所述第一目标像素集合和所述第二目标像素集合,生成包含水印的目标图像。
17.本技术实施例的基于菱形预测器的高容量可逆水印方法,通过将待处理图像的像素点分成两个集合,通过菱形预测器得到一个集合的一对高低预测值,选定一个集合通过波动值排序对每个点依次采用高低预测值嵌入数据,接着通过菱形预测器得到另一个集合的一对高低预测值,对另一个集合同样通过波动值排序对每个点依次采用高低预测值嵌入数据。由此,实现了两次嵌入数据造成的失真互相抵消的方案,改善了嵌入数据对原图像的失真影响,大大提升了嵌入容量,实现了更好的嵌入效果。
18.可选地,在本技术的一个实施例中,所述s1,包括:
19.获取每个像素点的位数的奇偶值;
20.根据所述位数的奇偶值将所述灰度图像的像素点划分为所述第一像素集合和所述第二像素集合。
21.可选地,在本技术的一个实施例中,所述s2,包括:
22.基于所述第一像素集合和所述第二像素集合获取所述第一像素集中每个像素点相邻的上下左右四个像素点;
23.根据所述四个像素点的像素值进行排序,获取排首位的像素点对应的像素值作为所述第一高预测值,以及排最后一位的像素点对应的像素值作为所述第一低预测值。
24.可选地,在本技术的一个实施例中,所述s6,包括:
25.基于所述第一目标像素集合和所述第二像素集合获取所述第二像素集中每个像素点相邻的上下左右四个像素点;
26.根据所述四个像素点的像素值进行排序,获取排首位的像素点对应的像素值作为所述第二高预测值,以及排最后一位的像素点对应的像素值作为所述第二低预测值。
27.可选地,在本技术的一个实施例中,所述计算所述第一像素集中每个像素点对应的第一波动值,包括:
28.计算所述第一像素集中每个像素点的局部复杂度;
29.通过公式根据所述局部复杂度计算所述第一像素集中每个像素点的当前像素值的第一波动值。
30.可选地,在本技术的一个实施例中,所述计算所述第二像素集中每个像素点对应的第二波动值,包括:
31.计算所述第二像素集中每个像素点的局部复杂度;
32.通过公式根据所述局部复杂度计算所述第二像素集中每个像素点的当前像素值
的第二波动值。
33.可选地,在本技术的一个实施例中,所述s4,包括:
34.将所述第一嵌入像素点对应的像素值与所述第一高预测值作差得到第一个预测误差;
35.对所述第一个预测误差进行扩展,获取预测误差;
36.将所述预测误差和所述第一高预测值相加,获取所述第一嵌入像素点对应的像素值;
37.将所述第一嵌入像素点对应的像素值作为初始像素值与所述第一低预测值作差得到第二个预测误差;
38.对所述第二个预测误差进行扩展,获取预测误差;
39.将所述预测误差和所述第一低预测值相加,获取所述第一目标嵌入像素点的像素值。
40.可选地,在本技术的一个实施例中,所述s8,包括:
41.将所述第二嵌入像素点对应的像素值与所述第二高预测值作差得到第三个预测误差;
42.对所述第三个预测误差进行扩展,获取预测误差;
43.将所述预测误差和所述第二高预测值相加,获取所述第二嵌入像素点对应的像素值;
44.将所述第二嵌入像素点对应的像素值作为初始像素值与所述第二低预测值作差得到第四个预测误差;
45.对所述第四个预测误差进行扩展,获取预测误差;
46.将所述预测误差和所述第二低预测值相加,获取所述第二目标嵌入像素点的像素值。
47.可选地,在本技术的一个实施例中,所述的基于菱形预测器的高容量可逆水印的图像提取方法,包括:
48.将所述包含水印的目标图像的像素点划分为第一目标像素集合和第二目标像素集合;
49.通过菱形预测器基于所述第一目标像素集合和所述第二目标像素集合预测,获取所述第二目标像素集合中像素点对应的一对高低预测值,计算所述第二目标像素集合中像素点的第二目标波动值,根据所述第二目标波动值的排序结果确定嵌入数据时像素点的第二嵌入顺序;
50.根据所述第二目标像素集合中像素点对应的一对高低预测值和所述第二嵌入顺序对所述第二目标像素集合中的嵌入数据进行第一提取;
51.通过所述菱形预测器基于进行第一提取处理后的第二目标像素集合和所述第一目标像素集合预测,获取所述第一目标像素集合中像素点对应的另一对高低预测值,计算所述第一目标像素集合中像素点的第一目标波动值,根据所述第一目标波动值的排序结果确定嵌入数据时像素点的第一嵌入顺序;
52.根据另一对高低预测值所述第一嵌入顺序对第一提取后的像素集合中的嵌入数据进行第二提取,获取恢复图像。
53.为达上述目的,本技术第二方面实施例提出了一种基于菱形预测器的高容量可逆水印装置,包括:
54.获取划分模块,用于获取待处理图像,将所述待处理图像转化为灰度图像,并将所述灰度图像的像素点划分为第一像素集合和第二像素集合;
55.第一预测模块,用于通过菱形预测器基于所述第一像素集合和所述第二像素集合预测,获取所述第一像素集合中每个像素点对应的第一高预测值和第一低预测值;
56.第一计算模块,用于计算所述第一像素集合中每个像素点对应的第一波动值,并按照所述第一波动值进行排序,根据排序结果确定所述第一像素集合中每个像素点的第一嵌入顺序;
57.第一获取模块,用于根据所述第一嵌入顺序确定所述第一像素集合中第一嵌入像素点,并利用所述第一嵌入像素点的第一高预测值对所述第一嵌入像素点进行嵌入,获取第一候选嵌入像素点,并利用所述第一嵌入像素点的第一低预测值对所述第一候选嵌入像素点进行嵌入,获取第一目标嵌入像素点;
58.第一嵌入模块,用于根据所述第一嵌入顺序依次对所述第一像素集合中每个像素点重复所述第一获取模块的操作,直到所述第一像素集合中每个像素点完成嵌入,获取第一目标像素集合;
59.第二预测模块,用于通过所述菱形预测器基于所述第一目标像素集合和所述第二像素集合预测,获取所述第二像素集合中每个像素点对应的第二高预测值和第二低预测值;
60.第二计算模块,用于计算所述第二像素集中每个像素点对应的第二波动值,并按照所述第二波动值进行排序,根据排序结果确定所述第二像素集中每个像素点的第二嵌入顺序;
61.第二获取模块,用于根据所述第二嵌入顺序确定所述第二像素集合中第二嵌入像素点,并利用所述第二嵌入像素点的第二高预测值对所述第二嵌入像素点进行嵌入,获取第二候选嵌入像素点,并利用所述第二嵌入像素点的第二低预测值对所述第二候选嵌入像素点进行嵌入,获取第二目标嵌入像素点;
62.第二嵌入模块,用于根据所述第二嵌入顺序依次对所述第二像素集合中每个像素点重复所述第二获取模块的操作,直到所述第二像素集合中每个像素点完成嵌入,获取第二目标像素集合;
63.生成模块,用于根据所述第一目标像素集合和所述第二目标像素集合,生成包含水印的目标图像。
64.本技术实施例的基于菱形预测器的高容量可逆水印装置,通过将待处理图像的像素点分成两个集合,通过菱形预测器得到一个集合的一对高低预测值,选定一个集合通过波动值排序对每个点依次采用高低预测值嵌入数据,接着通过菱形预测器得到另一个集合的一对高低预测值,对另一个集合同样通过波动值排序对每个点依次采用高低预测值嵌入数据。由此,实现了两次嵌入数据造成的失真互相抵消的方案,改善了嵌入数据对原图像的失真影响,大大提升了嵌入容量,实现了更好的嵌入效果。
65.本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。
附图说明
66.本技术上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
67.图1为本技术实施例一所提供的一种基于菱形预测器的高容量可逆水印方法的流程示意图;
68.图2为本技术实施例的像素点被分成点集和叉集的示例图;
69.图3为本技术实施例的菱形区域5个像素值示例图;
70.图4为本技术实施例的区域内像素点编号示例图;
71.图5为本技术实施例的中心点p的相邻像素点示例图;
72.图6为本技术实施例的使用高低预测器进行双层嵌入示意图;
73.图7为本技术实施例的基于菱形预测器的高容量可逆水印生成和提取的示意图;
74.图8为本技术实施例所提供的一种基于菱形预测器的高容量可逆水印装置的结构示意图。
具体实施方式
75.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本技术,而不能理解为对本技术的限制。
76.下面参考附图描述本技术实施例的基于菱形预测器的高容量可逆水印方法和装置。
77.图1为本技术实施例一所提供的一种基于菱形预测器的高容量可逆水印方法的流程示意图。
78.具体地,在已有的基于预测误差扩展的可逆数字水印算法当中,最理想情况下也只能达到每个像素点嵌入1bit数据,因此认为嵌入容量想得到更大提升需得提出一个新的嵌入框架,这个框架不仅能提供较大的嵌入容量,还应该尽可能减缓嵌入数据对图像造成的失真影响。
79.本技术提出了一种基于菱形预测器的高容量可逆水印方法,在菱形预测的基础上实现了数据双层嵌入,即理想情况下每个像素点最多可嵌入2bit数据,并且尽可能的削弱了两次预测误差扩展造成的图像失真。步骤如下:将像素点分成两个集合;通过菱形预测器得到一对高低预测值;选定一个集合通过波动值排序对每个点依次采用高低预测值嵌入数据;对另一个集合同样通过波动值排序对每个点依次采用高低预测值嵌入数据。
80.如图1所示,该基于菱形预测器的高容量可逆水印方法包括以下步骤:
81.步骤s1,获取待处理图像,将待处理图像转化为灰度图像,并将灰度图像的像素点划分为第一像素集合和第二像素集合。
82.在本技术实施例中,获取每个像素点的位数的奇偶值;根据位数的奇偶值将灰度图像的像素点划分为第一像素集合和第二像素集合。
83.具体地,如图2所示,将图片转化为灰度图像后进行分组,根据位数的奇偶值将像素点分为点集和叉集,此以中心像素是点集为例。
84.具体地,如图3,像素点x
i,j
的上下左右四个像素x
i-1,j
,x
i 1,j
,x
i,j-1
,x
i,j 1
均来自叉
集。需要注意的是,图像的边缘一圈像素由于没有完整的相邻像素,所以不进行嵌入。
85.步骤s2,通过菱形预测器基于第一像素集合和第二像素集合预测,获取第一像素集合中每个像素点对应的第一高预测值和第一低预测值。
86.在本技术实施例中,获取第一像素集中每个像素点相邻的上下左右四个像素点;根据四个像素点的像素值进行排序,获取排首位的像素点对应的像素值作为第一高预测值,以及排最后一位的像素点对应的像素值作为第一低预测值。
87.具体地,高低预测值的选取需要使用图3中上下左右4个像素值,因为嵌入数据前后这4个像素值并未改变数值,所以在提取时可以采取同样的方法得到高低预测值,从而恢复原像素值。基于前述要点,选取高低预测值有很多种方法,此处以两种可行的取值方案为例进行说明。
88.具体地,将与中心像素点相邻的上下左右四个像素点{x
i-1,j
,x
i 1,j
,x
i,j-1
,x
i,j 1
}(如图3所示)按从小到大顺序进行排序,得到新的序列:x1《x2《x3《x4,设高预测值为ph,低预测值为p
l
,得ph=x4,p
l
=x1。
89.具体地,将与中心像素点相邻的上下左右四个像素点{x
i-1,j
,x
i 1,j
,x
i,j-1
,x
i,j 1
}(见图3)按从小到大顺序进行排序,得到新的序列:x1《x2《x3《x4,设高预测值为ph,低预测值为p
l
,得:
90.步骤s3,计算第一像素集中每个像素点对应的第一波动值,并按照第一波动值进行排序,根据排序结果确定第一像素集中每个像素点的第一嵌入顺序。
91.步骤s4,根据第一嵌入顺序确定第一像素集合中第一嵌入像素点,并利用第一嵌入像素点的第一高预测值对第一嵌入像素点进行嵌入,获取第一候选嵌入像素点,并利用第一嵌入像素点的第一低预测值对第一候选嵌入像素点进行嵌入,获取第一目标嵌入像素点。
92.步骤s5,根据第一嵌入顺序依次对第一像素集合中每个像素点重复步骤s4的操作,直到第一像素集合中每个像素点完成嵌入,获取第一目标像素集合。
93.在本技术实施例中,计算第一像素集中每个像素点的局部复杂度,通过公式根据局部复杂度计算第一像素集中每个像素点的当前像素值的第一波动值。
94.具体地,波动值一定程度上反映了该菱形区域的平滑性,较为平滑的地区往往能取得较准确的预测结果,故通过计算每个待嵌入中心点的波动值来获取嵌入顺序是可行的,具体如下:1.利用属于另一点集的像素点计算得到每个待嵌入中心像素点的波动值;2.将波动值按从小到大的顺序排列并一一映射到其对应的像素点;3.按照波动值排序得到的像素点序列依次嵌入数据。
95.同样,满足条件的波动值计算方法也有很多种,具体地,选取点集优先嵌入作为示例。
96.首先计算点集中每个像素的局部复杂度,公式如下:
97.ω
p
=|a-b| |b-c| |a c-b-d| |c d-a-b|
ꢀꢀ
(1)
98.其中,a,b,c和d是与像素点p相邻的上、左、右和下像素值,如图5所示。
99.为了更准确地测算像素区域的平滑度,结合其相邻像素值的局部复杂度来计算当前像素值的波动值f,以图4中的像素值为例,像素点p1的波动值f的计算如下:
[0100][0101]
图4中像素点p2的波动值计算f为:
[0102][0103]
同理,图3中像素点p4的波动值计算为:
[0104][0105]
具体地,如图5所示中心像素点的周围有四点a,b,c,d,首先计算四点均值m:将四个点两两组成一组,分别计算其均值mi:
[0106][0107]
具体地,将6个像素对均值分别与m作差,得到di:
[0108]
具体地,计算波动值f:f=d1 d2 d3 d4 d5 d
6.

[0109]
在本技术实施例中,将第一嵌入像素点对应的像素值与第一高预测值作差得到第一个预测误差;对所述第一个预测误差进行扩展,获取预测误差;将预测误差和第一高预测值相加,获取第一嵌入像素点对应的像素值;将第一嵌入像素点对应的像素值作为初始像素值与第一低预测值作差得到第二个预测误差;对第二个预测误差进行扩展,获取预测误差;将预测误差和第一低预测值相加,获取第一目标嵌入像素点的像素值。
[0110]
具体地,首先将点集中的所有像素点按照各自的波动值进行从小到大的排序,排序后的像素值序列将被用于嵌入数据,每个像素点需依次利用高低预测值嵌入数据,此处以先使用高预测值后使用低预测值嵌入数据为例(如图6所示)。
[0111]
具体地,将点x
i,j
的像素值与高预测值作差得到第一个预测误差用于下一步预测误差扩展嵌入信息:
[0112][0113]
具体地,将第一个预测误差乘以2,即相当于其二进制表示情况下将所有数字向左移动一位,空出最低比特位以用来嵌入信息,从而得到扩展后的预测误差
[0114][0115]
具体地,完成预测误差的扩展后,将扩展的预测误差加到高预测值中,得到第一轮嵌入结束后的像素值x'
i,j

[0116][0117]
具体地,第一层嵌入结束,开始第二层嵌入,以嵌入一轮结束的像素值x'
i,j
为初始
像素值,使用低预测值作差得到第二个预测误差
[0118][0119]
具体地,使用同样的预测误差扩展方法对进行预测误差扩展:
[0120][0121]
具体地,将扩展后的第二个预测误差加到低预测值中,得到嵌入两轮过后的像素值x”i,j

[0122][0123]
步骤s6,通过菱形预测器基于第一目标像素集合和第二像素集合预测,获取第二像素集合中每个像素点对应的第二高预测值和第二低预测值。
[0124]
在本技术实施例中,获取第二像素集合中每个像素点对应的第二高预测值和第二低预测值,包括:获取第二像素集中每个像素点相邻的上下左右四个像素点;根据四个像素点的像素值进行排序,获取排首位的像素点对应的像素值作为第二高预测值,以及排最后一位的像素点对应的像素值作为第二低预测值。
[0125]
具体参见上述对于第一高预测值和第一低预测值的描述,此处不再详述。
[0126]
步骤s7,计算第二像素集中每个像素点对应的第二波动值,并按照第二波动值进行排序,根据排序结果确定第二像素集中每个像素点的第二嵌入顺序。
[0127]
步骤s8,根据第二嵌入顺序确定第二像素集合中第二嵌入像素点,并利用第二嵌入像素点的第二高预测值对第二嵌入像素点进行嵌入,获取第二候选嵌入像素点,并利用第二嵌入像素点的第二低预测值对第二候选嵌入像素点进行嵌入,获取第二目标嵌入像素点。
[0128]
在本技术实施例中,将第二嵌入像素点对应的像素值与第二高预测值作差得到第三个预测误差;对第三个预测误差进行扩展,获取预测误差;将预测误差和第二高预测值相加,获取第二嵌入像素点对应的像素值;将第二嵌入像素点对应的像素值作为初始像素值与第二低预测值作差得到第四个预测误差;对第四个预测误差进行扩展,获取预测误差;将预测误差和第二低预测值相加,获取第二目标嵌入像素点的像素值。
[0129]
步骤s9,根据第二嵌入顺序依次对第二像素集合中每个像素点重复步骤s8的操作,直到第二像素集合中每个像素点完成嵌入,获取第二目标像素集合。
[0130]
在本技术实施例中,计算第二像素集合中每个像素点的局部复杂度;通过公式根据局部复杂度计算第二像素集中每个像素点的当前像素值的第二波动值。
[0131]
需要说明的是,第二像素集合的像素点的处理与上述相同,此处不再详述描述。
[0132]
步骤s10,根据第一目标像素集合和第二目标像素集合,生成包含水印的目标图像。
[0133]
需要说明的是,除了嵌入数据造成的失真度如何的问题,在嵌入过程中还需要考虑如何预防上下溢出问题,即像素点经过嵌入数据后其像素值超过[0,255]这个灰度图像像素值区间,例如一个像素点像素值为254,其高预测值为255,低预测值为253,两层嵌入的数据都是比特1,第一层嵌入结束后其像素值为255,第二层嵌入结束后像素值达到了256,发生了溢出,这样的点就不能嵌入数据。为了解决这个问题,在正规嵌入数据前对所有像素
点进行一次试验嵌入:此处若像素点小于128,则应两轮都应嵌1,使最后像素值尽可能大,若此种情况下都溢出了,那该点无论嵌什么都会低于0,位置图标为1;若像素点大于128,应两轮都嵌0,是最后像素值尽可能小,若此时还是溢出了,那该点无论嵌什么都会超过255,位置图标为1。经过试验后我们得到了所有可能溢出的点,在嵌入数据前先判断一下位置图的对应位置是否为1,若为1则该点不嵌入数据。
[0134]
基于上述描述可以了解本技术生成的目标图像是可逆的,还可以对图像进行提取,具体地,将所述包含水印的目标图像的像素点划分为第一目标像素集合和第二目标像素集合;通过菱形预测器基于第一目标像素集合和第二目标像素集合预测,获取第二目标像素集合中像素点对应的一对高低预测值,计算所述第二目标像素集合中像素点的第二目标波动值,根据所述第二目标波动值的排序结果确定嵌入数据时像素点的第二嵌入顺序;根据所述第二目标像素集合中像素点对应的一对高低预测值和所述第二嵌入顺序对所述第二目标像素集合中的嵌入数据进行第一提取;通过菱形预测器基于进行第一提取处理后的第二目标像素集合和第一目标像素集合预测,获取第一目标像素集合中像素点对应的另一对高低预测值,计算第一目标像素集合中像素点的第一目标波动值,根据第一目标波动值的排序结果确定嵌入数据时像素点的第一嵌入顺序;根据另一对高低预测值第一嵌入顺序对第一提取后的像素集合中的嵌入数据进行第二提取,获取恢复图像。
[0135]
具体地,在可逆数字水印当中,提取模块所作的工作其实就是嵌入工作的逆过程。上面我们先向点集嵌入再向叉集嵌入,先用高预测值嵌入再用低预测值嵌入,那么恢复时则需要先提取叉集里嵌入的数据并恢复图像,然后再用相同的方法对点集进行操作,其提取数据的过程都得先用低预测值提取再用高预测值提取才能顺利提取出隐藏信息并恢复原始图像。
[0136]
具体地,为了确定提取的顺序,需要计算每个叉集像素点的波动值,并将波动值按升序排序,结合位置图的标记,得到嵌入数据时像素点的顺序,此即也是提取数据时选定像素点的顺序;使用和嵌入数据之前得到高低预测值的同样方法,再次计算得到高低预测值ph和p
l
;将嵌入了两层信息后的像素值x”i,j
减去低预测值得到第二个预测误差扩展后的值
[0137][0138]
具体地,在嵌入数据时利用了预测误差扩展的方式将嵌入信息放在了扩展后预测误差的最低位,所以在提取时,只需要对扩展后的预测误差进行模2运算即可提取出隐藏在其中的信息:
[0139][0140]
具体地,提取完第二层数据后需要将像素值x”i,j
恢复到第二层数据嵌入前的值x'
i,j

[0141][0142]
具体地,将第二层提取结束后恢复而来的像素值x'
i,j
减去高预测值得到第一层经过扩展的预测误差
[0143][0144]
具体地,从第一层的预测误差中采取同样的方法提取出隐藏在其中的信息:
[0145][0146]
具体地,提取完第一层的数据后需要将像素值x'
i,j
恢复为初始像素值x
i,j

[0147][0148]
作为一种场景举例,如图7所示,在传统的基于预测误差扩展的菱形预测嵌入方案基础上提出了新的嵌入框架,在该框架下,每个像素点依次向高低两个方向进行预测误差扩展嵌入数据,实现了每个像素点最高嵌入2bit数据,大大提升了嵌入容量,而且使用高低预测值向两边扩展这种嵌入方法,可以一定程度上抵消嵌入数据对图像造成的失真,这保证了在高嵌入容量的情况下也能实现较好的失真度,相较以往的可逆水印方案有了很大提升。
[0149]
本技术实施例的基于菱形预测器的高容量可逆水印方法,通过将待处理图像的像素点分成两个集合,通过菱形预测器得到一个集合的一对高低预测值,选定一个集合通过波动值排序对每个点依次采用高低预测值嵌入数据,接着通过菱形预测器得到另一个集合的一对高低预测值,对另一个集合同样通过波动值排序对每个点依次采用高低预测值嵌入数据。由此,实现了两次嵌入数据造成的失真互相抵消的方案,改善了嵌入数据对原图像的失真影响,大大提升了嵌入容量,实现了更好的嵌入效果。
[0150]
为了实现上述实施例,本技术还提出一种基于菱形预测器的高容量可逆水印装置。
[0151]
图8为本技术实施例提供的一种基于菱形预测器的高容量可逆水印装置的结构示意图。
[0152]
如图8所示,该基于菱形预测器的高容量可逆水印装置包括:获取划分模块201、第一预测模块202、第一计算模块203、第一获取模块204、第一嵌入模块205、第一预测模块206、第二计算模块207、第二获取模块208、第二嵌入模块209和生成模块210。
[0153]
获取划分模块201,用于获取待处理图像,将所述待处理图像转化为灰度图像,并将所述灰度图像的像素点划分为第一像素集合和第二像素集合。
[0154]
第一预测模块202,用于通过菱形预测器基于所述第一像素集合和所述第二像素集合预测,获取所述第一像素集合中每个像素点对应的第一高预测值和第一低预测值。
[0155]
第一计算模块203,用于计算所述第一像素集合中每个像素点对应的第一波动值,并按照所述第一波动值进行排序,根据排序结果确定所述第一像素集合中每个像素点的第一嵌入顺序。
[0156]
第一获取模块204,用于根据所述第一嵌入顺序确定所述第一像素集合中第一嵌入像素点,并利用所述第一嵌入像素点的第一高预测值对所述第一嵌入像素点进行嵌入,获取第一候选嵌入像素点,并利用所述第一嵌入像素点的第一低预测值对所述第一候选嵌入像素点进行嵌入,获取第一目标嵌入像素点。
[0157]
第一嵌入模块205,用于根据所述第一嵌入顺序依次对所述第一像素集合中每个像素点重复所述第一获取模块的操作,直到所述第一像素集合中每个像素点完成嵌入,获取第一目标像素集合。
[0158]
第二预测模块206,用于通过所述菱形预测器基于所述第一目标像素集合和所述第二像素集合预测,获取所述第二像素集合中每个像素点对应的第二高预测值和第二低预测值。
[0159]
第二计算模块207,用于计算所述第二像素集中每个像素点对应的第二波动值,并按照所述第二波动值进行排序,根据排序结果确定所述第二像素集中每个像素点的第二嵌入顺序。
[0160]
第二获取模块208,用于根据所述第二嵌入顺序确定所述第二像素集合中第二嵌入像素点,并利用所述第二嵌入像素点的第二高预测值对所述第二嵌入像素点进行嵌入,获取第二候选嵌入像素点,并利用所述第二嵌入像素点的第二低预测值对所述第二候选嵌入像素点进行嵌入,获取第二目标嵌入像素点。
[0161]
第二嵌入模块209,用于根据所述第二嵌入顺序依次对所述第二像素集合中每个像素点重复所述第二获取模块的操作,直到所述第二像素集合中每个像素点完成嵌入,获取第二目标像素集合。
[0162]
生成模块210,用于根据所述第一目标像素集合和所述第二目标像素集合,生成包含水印的目标图像。
[0163]
本技术实施例的基于菱形预测器的高容量可逆水印装置,通过将待处理图像的像素点分成两个集合,通过菱形预测器得到一个集合的一对高低预测值,选定一个集合通过波动值排序对每个点依次采用高低预测值嵌入数据,接着通过菱形预测器得到另一个集合的一对高低预测值,对另一个集合同样通过波动值排序对每个点依次采用高低预测值嵌入数据。由此,实现了两次嵌入数据造成的失真互相抵消的方案,改善了嵌入数据对原图像的失真影响,大大提升了嵌入容量,实现了更好的嵌入效果。
[0164]
需要说明的是,前述对基于菱形预测器的高容量可逆水印方法实施例的解释说明也适用于该实施例的基于菱形预测器的高容量可逆水印装置,此处不再赘述。
[0165]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本技术的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0166]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本技术的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0167]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0168]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0169]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0170]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0171]
此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0172]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献