CN116703686B - 图像处理方法、装置、设备及存储介质 - Google Patents
图像处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116703686B CN116703686B CN202310956246.5A CN202310956246A CN116703686B CN 116703686 B CN116703686 B CN 116703686B CN 202310956246 A CN202310956246 A CN 202310956246A CN 116703686 B CN116703686 B CN 116703686B
- Authority
- CN
- China
- Prior art keywords
- frequency domain
- coefficient
- watermark
- pixels
- new
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 238000000034 method Methods 0.000 claims abstract description 86
- 238000012545 processing Methods 0.000 claims abstract description 63
- 239000011159 matrix material Substances 0.000 claims description 62
- 230000008569 process Effects 0.000 claims description 44
- 230000010354 integration Effects 0.000 claims description 39
- 238000000605 extraction Methods 0.000 claims description 14
- 238000012937 correction Methods 0.000 claims description 8
- 238000011946 reduction process Methods 0.000 claims description 4
- 230000009191 jumping Effects 0.000 claims description 3
- 238000004590 computer program Methods 0.000 description 11
- 230000001953 sensory effect Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 8
- 238000006243 chemical reaction Methods 0.000 description 8
- 238000001514 detection method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000003321 amplification Effects 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 210000000697 sensory organ Anatomy 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0021—Image watermarking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20112—Image segmentation details
- G06T2207/20132—Image cropping
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
- Editing Of Facsimile Originals (AREA)
Abstract
本申请公开一种图像处理方法、装置、设备及存储介质,方法包括:获取待添加水印的图像,所述图像位于空域且所述图像包含多行像素;根据水印抗裁剪策略,从所述图像包含的多行像素中选取N行像素;并将从所述图像中选取的N行像素从空域转换到频域,得到多个频域系数;将所述水印嵌入至所述多个频域系数中,得到水印嵌入结果;并将所述水印嵌入结果从所述频域转换至所述空域,得到N行新的像素;采用所述N行新的像素替换所述图像中被选取的N行像素,得到添加了所述水印的新图像。通过本申请,可以提升水印的稳定性、抗裁剪性以及隐蔽性,从而使得水印具有较高的鲁棒性。
Description
技术领域
本申请涉及互联网技术领域,具体涉及图像技术领域,尤其涉及一种图像处理方法、装置、设备及存储介质。
背景技术
随着图像技术的发展,数字水印技术被提出,该数字水印技术是指用于在图像中添加水印的技术。目前,常见的数字水印技术通常为基于LSB(Least Significant Bit,最低有效位)算法的水印技术,该LSB算法主要是通过在空域将图像数据的最低bit(比特)位进行修改,从而达到在图像中嵌入多bit水印的目的。经研究表明,基于LSB算法在图像中嵌入的水印通常很脆弱,容易被很多图像处理操作抹除掉。基于此,如何在图像中添加水印,以提升水印的鲁棒性成为了研究热点。
发明内容
本申请实施例提供了一种图像处理方法、装置、设备及存储介质,可以实现提升水印的稳定性、抗裁剪性以及隐蔽性,从而使得水印具有较高的鲁棒性。
一方面,本申请实施例提供了一种图像处理方法,所述方法包括:
获取待添加水印的图像,所述图像位于空域且所述图像包含多行像素;
根据水印抗裁剪策略,从所述图像包含的多行像素中选取N行像素,N为正整数;并将从所述图像中选取的N行像素从空域转换到频域,得到多个频域系数;
将所述水印嵌入至所述多个频域系数中,得到水印嵌入结果;并将所述水印嵌入结果从所述频域转换至所述空域,得到N行新的像素;
采用所述N行新的像素替换所述图像中被选取的N行像素,得到添加了所述水印的新图像。
另一方面,本申请实施例提供了一种图像处理装置,所述装置包括:
获取单元,用于获取待添加水印的图像,所述图像位于空域且所述图像包含多行像素;
处理单元,用于根据水印抗裁剪策略,从所述图像包含的多行像素中选取N行像素,N为正整数;并将从所述图像中选取的N行像素从空域转换到频域,得到多个频域系数;
所述处理单元,还用于将所述水印嵌入至所述多个频域系数中,得到水印嵌入结果;并将所述水印嵌入结果从所述频域转换至所述空域,得到N行新的像素;
所述处理单元,还用于采用所述N行新的像素替换所述图像中被选取的N行像素,得到添加了所述水印的新图像。
再一方面,本申请实施例提供了一种计算机设备,所述计算机设备包括输入接口和输出接口,所述计算机设备还包括:
处理器以及计算机存储介质;
其中,所述处理器适于实现一条或多条指令,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行上述所提及的图像处理方法。
再一方面,本申请实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行上述所提及的图像处理方法。
再一方面,本申请实施例提供了一种计算机程序产品,该计算机程序产品包括一条或多条指令;所述计算机程序产品中的一条或多条指令被处理器执行时,实现上述所提及的图像处理方法。
本申请实施例通过根据水印抗裁剪策略从图像包含的多行像素中选取N行像素,将选取的N行像素从空域转换到频域,得到多个频域系数,并将该水印嵌入至多个频域系数,将水印嵌入结果从频域转换至空域,得到N行新的像素,从而采用N行新的像素替换图像中被选取的N行像素的方式,来实现在频域上完成水印嵌入的目的,这样可保证嵌入的水印对肉眼的不可见性,并使得水印对图像的感官影响较小,从而提升水印的隐蔽性和稳定性。并且,通过选取N行像素进行后续的水印嵌入操作,可避免对整个图像的像素进行修改,这样不仅可进一步降低水印对图像的感官影响,从而进一步提升水印的隐蔽性和稳定性,还可提升水印的嵌入效率,节省处理资源。进一步的,由于N行像素是根据水印抗裁剪策略来选取出的,这样可保证在图像传输过程或者处理过程中受到干扰时,在图像中嵌入的水印可以被稳定保留,且在图像受到部分裁剪的时候,可以依然保留稳定的水印信息,避免图像中所嵌入的水印被裁剪掉,从而提升水印的稳定性和抗裁剪性,进而使得水印具有较高的鲁棒性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种由终端和服务器共同执行图像处理方法的示意图;
图2是本申请实施例提供的一种图像处理方法的流程示意图;
图3是本申请实施例提供的一种中间行像素的示意图;
图4是本申请另一实施例提供的一种图像处理方法的流程示意图;
图5a是本申请实施例提供的一种从系数矩阵中选取H列频域系数的过程示意图;
图5b是本申请实施例提供的一种提取水印的流程示意图;
图6是本申请实施例提供的一种图像处理装置的结构示意图;
图7是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
本申请实施例提出了一种图像处理方法,通过该图像处理方法可实现在图像中嵌入抗部分裁剪的数字水印(后续简称水印),从而提升水印的鲁棒性。具体的,该图像处理方法的大致原理如下:在获取到待添加水印的图像后,可根据水印抗裁剪策略,从该图像包含的多行像素中选取N行像素,N为正整数;其次,可将从图像中选取的N行像素从空域转换到频域,得到多个频域系数;然后,可将该水印嵌入至多个频域系数中,并将水印嵌入结果从频域转换至空域,得到N行新的像素;最后,可采用N行新的像素替换图像中被选取的N行像素,得到添加了水印的新图像。
在具体实现中,本申请实施例所提出的图像处理方法可由一个计算机设备执行,该计算机设备可以是终端或服务器。即,该图像处理方法可以由终端或服务器单独执行,也可由终端和服务器共同执行。例如,参见图1所示:可由终端获取待添加水印的图像,并执行从图像包含的多行像素中选取N行像素的操作,然后将选取的N行像素和水印发送给服务器,由服务器负责将该N行像素从空域转换到频域后,将接收到的水印嵌入至多个频域系数中,并将水印嵌入结果从频域转换至空域,从而将转换得到N行新的像素下发至终端,使终端采用服务器下发的N行新的像素来替换图像中被选取的N行像素,从而得到添加了水印的新图像。又如,终端也可只将选取的N行像素发送给服务器,由服务器将N行像素从空域转换到频域后,向终端返回多个频域系数,从而由终端负责将水印嵌入到多个频域系数,并将水印嵌入结果发送给服务器,由服务器将水印嵌入结果从频域转换至空域后,向终端返回N行新的像素,使得终端通过执行替换操作来得到添加了水印的新图像。
其中,上述提及的终端可以是智能手机、电脑(如平板电脑、笔记本电脑、台式计算机等)、智能穿戴设备(如智能手表、智能眼镜)、智能语音交互设备、智能家电(如智能电视)、车载终端或飞行器等。上述提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。进一步的,终端和服务器可位于区块链网络内或区块链网络外,对此不作限定;更进一步的,终端和服务器还可将内部所存储的任一数据(例如嵌入了水印的新图像)上传至区块链网络进行存储,以防止内部所存储的数据被篡改,提升数据安全性。
基于上述描述,下面结合图2所示的流程图对本申请实施例所提出的图像处理方法进行阐述。在本申请实施例中,主要以计算机设备执行该图像处理方法为例进行说明。请参见图2所示,该图像处理方法可包括以下步骤S201-S206:
S201,获取待添加水印的图像。
其中,此处提及的水印可以是待添加至图像上以防止他人盗图的数据;本申请实施例对水印的类型不作限定,例如其可以是01比特流数据,(即采用数值0和数值1所构成的比特流数据),也可以是图片数据,还可以是文字数据,等等。待添加水印的图像位于空域,且该图像包含多行像素;此处提及的空域又可称为空间域或像素域,在空域中对图像的处理是像素级的处理。
在实际应用中,本申请实施例提出的图像处理方法可以应用在为单个图片添加水印的场景,也可以应用在为视频数据添加水印的场景,对此不作限定。当该图像处理方法应用在为单个图片添加水印的场景时,计算机设备在执行步骤S201时,可以获取该单个图片作为待添加水印的图像。当该图像处理方法应用在为视频数据添加水印的场景时,计算机设备在执行步骤S201时,可以对该视频数据进行抽帧操作,以将视频数据抽成一张张的图片帧,从而得到多个图片帧;然后,计算机设备可以依次遍历该多个图片帧,并将当前遍历的图像帧作为待添加水印的图像。
针对一个图像而言,可以通过域转换的方法,将处于空域的图像转换到频域,以得到相应的频域数据。其中,域转换是指将原始信息转换到一个新的域上的过程,新的域一般称为频域;域转换的结果可理解成是原始信息的另一个表示方法,比如一个人既可以用名字表示,也可以用ID(标识号码)表示,本质上都是指的同一个人,只是表示方法不同。将图像转换到频域所得到的频域数据是图像在另一维度的表现,可以通过逆向域转换过程转换回原始的图像。此处提及的频域又可称为频率域,其具有抗干扰能力强的特点。在频域中,是以频率为自变量来描述图像的特征的;频域中的不同位置处的频域系数代表了不同信息,针对频域中的任一频域系数而言,该频域系数越靠近频域的中心点,则该频域系数代表了越低频的信息,即原始像素内容本身具有的信息,该频域系数越远离中心点,则该频域系数代表了越高频的信息,即原始像素内容的细节信息。
考虑到空域是不稳定的,当图像收到干扰后,很容易丢失信息,而频域具有抗干扰能力强的特点,因此可以先通过域转换的方法,将图像统一从空域转换到频域,然后在频域进行水印嵌入。进一步的,考虑到若将整个图像转换到频域以进行水印嵌入,则水印会分布在整个图像中,一旦图像被裁剪,就会导致水印被裁剪;因此,为了提升水印的抗裁剪性,可以通过步骤S202根据水印抗裁剪策略从图像包含的多行像素中选取N行像素,从而通过后续步骤S203-S204将选取出的N行像素转换到频域进行水印嵌入。
S202,根据水印抗裁剪策略,从图像包含的多行像素中选取N行像素,N为正整数。其中,水印抗裁剪策略可根据实际需求设置。
例如,考虑图像中越靠近图像中心的行像素,其抗裁剪能力越强,若在这些行像素中嵌入水印,则可以有效避免水印因图像裁剪操作所裁剪掉,因此可以设置水印抗裁剪策略为:通过选取图像包含的多行像素中的中间行像素来进行水印嵌入,以使得水印可以抗裁剪的策略;在此情况下,N=1。其中,中间行像素是指:图像包含的多行像素中,处于中间位置的一行像素;设多行像素的数量为S,则当S为奇数时,此处提及的中间位置可以是按照从上到下的顺序所确定出的第((S+1)/2)个位置,当S为偶数时,此处提及的中间位置可以是按照从上到下的顺序所确定出的第(S/2)个位置或者第((S/2)+1)个位置。示例性地,采用小圆点表示像素,则参见图3所示,设图像总共包含11行像素,则中间行像素则是按照从上到下的顺序所确定的第6行像素。或者,设图像总共包含10行像素,则中间行像素则可以是第5行像素,也可以是第6行像素。
又如,考虑到水印分布在越多的行像素中,其抗干扰性越强,因此为了提高水印的抗干扰性,可以设置水印抗裁剪策略是:通过从图像包含的多行像素中随机选取至少两行像素来进行水印嵌入。以使得水印可以抗裁剪的策略;在此情况下,N>1。或者,可以设置水印抗裁剪策略为:通过选取图像包含的多行像素中的中间行像素以及随机选取其他的至少一行像素来进行水印嵌入,以使得水印可以抗裁剪的策略;在此情况下,N>1。
进一步的,考虑到对于图像而言,相邻的像素点一般具有相似的信息,且因真实物理世界是一个连续的空间,那么将真实物理世界反映到照片上,也可以认为相邻的像素点代表的信息是相对连续的,突变的概率比较小,因此相邻行的像素具有相关性,携带的信息也具有相关性。由于具有相关性的数据在受到扰动时,信息容易出现大面积丢失,因此为了减少相关性带来的信息不稳定的情况,可以约束选取出的各行像素互不相邻。基于此,可以设置水印抗裁剪策略为:从图像包含的多行像素中随机选取至少两行互不相邻的像素来进行水印嵌入,以使得水印可以抗裁剪的策略;在此情况下,N≥2。或者,可以设置水印抗裁剪策略为:根据目标行距离值,从图像包含的多行像素中选取至少两行互不相邻的像素来进行水印嵌入,以使得水印可以抗裁剪的策略;在此情况下,N≥2。又或者,可以设置水印抗裁剪策略为:从图像包含的多行像素中选取中间行像素,以及根据目标行距离值在中间行像素的上侧两侧分别选取至少一行像素,通过选取的各行像素来进行水印嵌入,以使得水印可以抗裁剪的策略;在此情况下,N≥3。
需要说明的是,上述只是示例性地列举了几种水印抗裁剪策略,并非穷举。另外,上述提及的目标行距离值可以根据实际需求设定,例如可以设定目标行距离值为50行像素,或者80行像素,等等。除此之外,还需说明的是:考虑到当图像被裁剪时,该图像包含的多行像素的首行像素和末行像素是最容易被裁剪掉的,因此水印抗裁剪策略还可指示禁止选取首行像素和末行像素来进行水印嵌入。其中,参见图3可知,首行像素是指:按照从上到下的顺序所确定的第一行像素(即最上边的一行像素);末行像素是指:按照从上到下的顺序所确定的最后一行像素(即最下边的一行像素)。
S203,将从图像中选取的N行像素从空域转换到频域,得到多个频域系数。
在具体实现中,计算机设备可对从图像中选取的N行像素进行离散傅里叶变换(Discrete Fourier Transform,DFT)、离散余弦变换、沃尔什变换或者小波变换等,以将该N行像素从空域转换到频域,得到多个频域系数。其中,该多个频域系数可构成N行M列的系数矩阵,M为大于1的整数;也就是说,多个频域系数本质上是N行一维的频域系数,每行频域系数中包括M个频域系数。
S204,将水印嵌入至多个频域系数中,得到水印嵌入结果。
在一种实施方式中,计算机设备在执行步骤S204时,可以直接将水印嵌入至多个频域系数,得到水印嵌入结果。
另一种实施方式中,由前述可知,本申请实施例所提及的水印可以是任一类型的数据,如01比特流数据、图片数据或文字数据;基于此,为了将水印嵌入到多个频域系数中,计算机设备在执行步骤S204时,可以先将该水印统一编码成比特流的形式,得到水印对应的目标比特流,从而将该水印对应的目标比特流嵌入至多个频域系数,得到水印嵌入结果。其中,在将水印对应的目标比特流嵌入至多个频域系数时,计算机设备可以直接将水印对应的目标比特流嵌入至多个频域系数中,得到水印嵌入结果;也可以根据目标比特流中的比特的数量,从多个频域系数构成的系数矩阵中选取相应数量列频域系数,然后将目标比特流嵌入至选取出的各列频域系数中,得到水印嵌入结果。
需要说明的是,计算机设备在嵌入目标比特流时,可以采取直接嵌入的方式来实现目标比特流的嵌入,直接嵌入可理解成是将目标比特流中的各个比特,直接叠加至相应频域系数上。或者,计算机设备也可采取间接表示的方式来实现目标比特流的嵌入,间接表示可理解成是通过采用一个或多个频域系数来表示目标比特流中的单个比特的操作。
S205,将水印嵌入结果从频域转换至空域,得到N行新的像素。
在具体实现中,计算机设备可对水印嵌入结果进行离散傅里叶逆变换、离散余弦逆变换、沃尔什逆变换或者小波逆变换等,以将该水印嵌入结果从频域转换到空域,得到N行新的像素。可理解的是,N行新的像素是指:嵌入了水印的N行像素;并且,由于水印是在频域上嵌入的,因此对于N行新的像素而言,从视觉上是看不见该水印的,即该水印是一种盲水印。
S206,采用N行新的像素替换图像中被选取的N行像素,得到添加了水印的新图像。其中,图像中被选取的N行像素中的第n行像素,是采用N行新的像素中的第n行新的像素进行替换的。
本申请实施例通过根据水印抗裁剪策略从图像包含的多行像素中选取N行像素,将选取的N行像素从空域转换到频域,得到多个频域系数,并将该水印嵌入至多个频域系数,将水印嵌入结果从频域转换至空域,得到N行新的像素,从而采用N行新的像素替换图像中被选取的N行像素的方式,来实现在频域上完成水印嵌入的目的,这样可保证嵌入的水印对肉眼的不可见性,并使得水印对图像的感官影响较小,从而提升水印的隐蔽性和稳定性。并且,通过选取N行像素进行后续的水印嵌入操作,可避免对整个图像的像素进行修改,这样不仅可进一步降低水印对图像的感官影响,从而进一步提升水印的隐蔽性和稳定性,还可提升水印的嵌入效率,节省处理资源。进一步的,由于N行像素是根据水印抗裁剪策略来选取出的,这样可保证在图像传输过程或者处理过程中受到干扰时,在图像中嵌入的水印可以被稳定保留,且在图像受到部分裁剪的时候,可以依然保留稳定的水印信息,避免图像中所嵌入的水印被裁剪掉,从而提升水印的稳定性和抗裁剪性,进而使得水印具有较高的鲁棒性。
基于上述图2所示的图像处理方法实施例的相关描述,本申请实施例进一步提出了一种更为具体的图像处理方法;在本申请实施例中,仍以计算机设备执行该图像处理方法为例进行说明。请参见图4所示,该图像处理方法可包括以下步骤S401-S407:
S401,获取待添加水印的图像,该图像位于空域且图像包含多行像素。
S402,根据水印抗裁剪策略,从图像包含的多行像素中选取N行像素。
在具体实现中,若水印抗裁剪策略为:从图像包含的多行像素中选取中间行像素,以及根据目标行距离值在中间行像素的上侧两侧分别选取一行像素,通过选取的各行像素来进行水印嵌入,以使得水印可以抗裁剪的策略,则计算机设备在执行步骤S402时,可以按照该水印抗裁剪策略的指示,从图像包含的多行像素中选取中间行像素,并基于中间行像素和目标行距离值,从图像包含的多行像素中选取两行像素。其中,选取出的两行像素分别位于中间行像素的两侧,即在选取出的两行像素中,存在一行像素位于中间行像素的上方,另一行像素位于中间行像素的上方;并且,该两行像素中的每行像素与中间行像素之间的行距离值为目标行距离值(如50行像素)。可理解的是,此处提及的两行像素和中间行像素,构成从图像包含的多行像素中选取出的N行像素;即在此情况下,N=3。
需说明的是,上述只是示例性地列举了水印抗裁剪策略的一种具体实现;在实际应用中,本申请实施例提及的水印抗裁剪策略可以是前述图2所示的方法实施例中所提及的任一种水印抗裁剪策略。无论该水印抗裁剪策略是哪一种策略,计算机设备在执行步骤S402时,均是按照该水印抗裁剪策略的指示,从图像所包含的多行像素中选取N行像素的。例如,该水印抗裁剪策略可以是前述图2所示的方法实施例中所提及的:通过选取图像包含的多行像素中的中间行像素来进行水印嵌入,以使得水印可以抗裁剪的策略,在此情况下,计算机设备在执行步骤S402时,可以按照该水印抗裁剪策略的指示,从图像包含的多行像素中选取中间行像素,即此情况下,N=1。
S403,将从图像中选取的N行像素从空域转换到频域,得到多个频域系数,该多个频域系数构成N行M列的系数矩阵,M为大于1的整数。
S404,对水印进行编码,得到水印对应的目标比特流。
其中,目标比特流是指对水印进行编码所得到的比特流,该比特流是指由多个比特(二进制位)所组成的数据流。在本申请实施例中,目标比特流中可以包括H个比特,H为正整数;且该H个比特中的任一比特的取值要么是第一数值,要么是第二数值。此处的第一数值和第二数值可以根据实际需求设置,例如,第一数值可以是数值0,第二数值可以是数值1;或者,第一数值可以是数值1,第二数值可以是数值0。为便于阐述,后续均以第一数值为数值0,第二数值为数值1进行说明。
在具体实现中,计算机设备可先将该水印编码成比特流的形式,得到编码后的比特流。具体的,可以使用base64方式将该水印编码成一串ascii码,从而将该ascii码转换成比特流的形式,得到编码后的比特流。其中,base64方式是一种用于传输8Bit字节码的编码方式,ascii的全称是American Standard Code for Information Interchange,ascii码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。当然应理解的是,计算机设备也可采用出base64方式以外的其他可传输8Bit字节码的编码方式来得到ascii码,从而得到编码后的比特流;或者,计算机设备也可采用其他方式(如调用编码模型的方式)直接将水印编码成比特流的形式,得到编码后的比特流。
在得到编码后的比特流后,计算机设备可直接将该编码后的比特流作为水印对应的目标比特流。或者,考虑到由于图像数据在传输过程中可能会受到干扰,从而导致水印可能会被扰动;为了抵御这种扰动,减少后续提取水印时所产生的水印提取错误的情况,计算机设备可进一步采用纠错校验码对编码后的比特流进行编码,得到水印对应的目标比特流。其中,此处提及的纠错校验码可以是海明码(或称为海明校验码),也可以是循环冗余校验码,还可以是其他具有纠错校验能力的码,对此不作限定。并且,采用纠错校验码对编码后的比特流进行编码,可以理解成是:按照纠错校验码的编码方式,对编码后的比特流进行编码。
S405,从多个频域系数构成的系数矩阵中,选取H个系数组;其中,一个系数组包括系数矩阵中的一列频域系数,不同系数组对应不同列。
在一种具体实现中,可以在执行步骤S405时,可以从多个频域系数构成的系数矩阵中,随机选取H列频域系数,并采用随机选取出的H列频域系数构建出H个系数组,一列频域系数用于构成一列系数组。
另一种具体实现中,考虑到当对图像进行干扰(比如压缩)时,一般会导致图像丢失更多的细节信息,若将水印嵌入到表示细节信息的频域系数中,则容易导致水印被丢失。可见,在频域上选择合适的位置来嵌入水印,可以提高水印的抗干扰能力。由于在多个频域系数构成的系数矩阵中,离中间列频域系数越远的频域系数,其代表越高频的信息(即细节信息),因此计算机设备在执行步骤S405时,可以从多个频域系数构成的系数矩阵中,定位出中间列频域系数;然后,从中间列频域系数开始,从系数矩阵中选取H列频域系数,采用H列频域系数构建出H个系数组。
其中,上述提及的中间列频域系数是指:系数矩阵中,处于中间位置的一列频域系数。当系数矩阵的列数M为奇数时,此处提及的中间位置可以是按照从左到右的顺序所确定出的第((M+1)/2)个位置,当M为偶数时,此处提及的中间位置可以是按照从左到右的顺序所确定出的第(M/2)个位置或者第((M/2)+1)个位置。例如,若系数矩阵总共包含11列频域系数,则中间列频域系数则是按照从左到右的顺序所确定的第6列频域系数;又如,若系数矩阵总共包含10列频域系数,则中间列频域系数则是按照从左到右的顺序所确定的第5列频域系数,或者第6列频域系数。
在此具体实现中,该H列频域系数包含中间列频域系数。并且,H列频域系数中除中间列频域系数以外的其他列频域系数,也可分布在中间列频域系数的同一侧(如左侧或右侧)。或者,H列频域系数中除中间列频域系数以外的其他列频域系数,分布在中间列频域系数的两侧。具体的,其他列频域系数可以均匀分布在中间列频域系数的两侧,即其他列频域系数关于中间列频域系数对称;或者,其他列频域系数也可不均匀地分布在中间列频域系数的两侧,例如其他列频域系数中存在3列频域系数位于中间列频域系数的左侧,存在2列频域系数位于中间列频域系数的右侧。
以H列频域系数中除中间列频域系数以外的其他列频域系数,分布在中间列频域系数的两侧为例,计算机设备从中间列频域系数开始,从系数矩阵中选取H列频域系数的具体方式也可以包括以下步骤s11-s13:
s11,选取系数矩阵中的中间列频域系数;s12,根据H的取值,确定在朝着首列(即按照从左往右的顺序所确定出的第1列)频域系数的方向(即中间列频域系数的左侧方向)上所需选取的频域系数的列数(采用F表示),以及在朝着末列(即按照从左往右的顺序所确定出的最后1列)频域系数的方向(即中间列频域系数的右侧方向)上所需选取的频域系数的列数(采用T表示);s13,基于中间列频域系数,朝着首列频域系数的方向依次选取F列频域系数,以及基于中间列频域系数,朝着末列频域系数的方向依次选取T列频域系数。其中,F+T+1=H,且F和T的取值可以相同或不同;可选的,为尽可能避免选取出表示细节信息的频域系数,可以尽可能地从中间列频域系数的两侧均匀选取出H-1列频域系数,那么此情况下,当H为奇数时,F和T可以等于(H-1)/2。
示例性地,设系数矩阵包含3行7列的频域系数,H=5,则计算机设备从系数矩阵中选取H列频域系数的过程可以如下:优先从系数矩阵中选取第4列频域系数(即中间列频域系数);其次,可以根据H的取值,确定在朝着首列频域系数的方向上所需选取的频域系数的列数为2(即F=2),以及在朝着末列频域系数的方向上所需选取的频域系数的列数为2(即T=2);然后,可以基于第4列频域系数,朝着首列频域系数的方向依次选取2列频域系数(即依次选取第3列频域系数和第2列频域系数),以及基于中间列频域系数,朝着末列频域系数的方向依次选取2列频域系数(即依次选取第5列频域系数和第6列频域系数)。
或者,以H列频域系数中除中间列频域系数以外的其他列频域系数,分布在中间列频域系数的两侧为例,计算机设备从中间列频域系数开始,从系数矩阵中选取H列频域系数的具体方式可以包括以下步骤s21-s25:
s21,将指针放置在系数矩阵中的中间列频域系数上;s22,从系数矩阵中选取该指针当前所处的列频域系数;s23,确定当前已选取的频域系数的列数;s24,若确定出的列数大于或等于H,则确定已选取出H列频域系数,并结束H列频域系数的选取流程;s25,若确定出的列数小于H,则确定指针的当前偏移方向,以及指针最近一次在当前偏移方向上所处的历史位置,并控制指针从确定出的历史位置开始,沿着当前偏移方向向外偏移一个位置,并跳转至步骤s22。
其中,①当前偏移方向是指:判定确定出的列数小于H时,控制指针偏移所需的偏移方向。在首次判定确定出的列数小于H时,当前偏移方向可以是朝着首列频域系数的方向(即中间列频域系数的左侧方向),也可以是朝着末列频域系数的方向(即中间列频域系数的右侧方向)。在非首次判定确定出的列数小于H时,当前偏移方向可以是与前一次确定出的偏移方向相反的方向,如前一次确定出的偏移方向是朝着首列频域系数的方向,则当前偏移方向可以是朝着末列频域系数的方向。②指针最近一次在当前偏移方向上所处的历史位置是指:指针最近一次沿着当前偏移方向向外偏移一个位置后所处的位置。若指针历史未沿着当前偏移方向向外偏移过,则指针最近一次在当前偏移方向上所处的历史位置为中间列频域系数。
示例性地,仍设系数矩阵包含3行7列的频域系数,H=5,且采用三角形表示频域系数,则计算机设备从系数矩阵中选取H列频域系数的过程可以参见图5a所示:计算机设备可以优先将指针51放置在第4列频域系数(即中间列频域系数)上,以选取出第4列频域系数。然后,可以将朝着首列频域系数的方向(即第4列频域系数的左侧方向)确定为当前偏移方向,以及确定指针51最近一次在朝着首列频域系数的方向上所处的历史位置为第4列频域系数,并控制指针51从第4列频域系数开始,沿着朝着首列频域系数的方向向外偏移一个位置,使得指针51处于第3列频域系数上,从而选取第3列频域系数。由于此时当前已选取的频域系数的列数为2,其小于H,所以可以将朝着末列偏移系数的方向(即第4列频域系数的右侧方向)确定为当前偏移方向,以及确定指针51最近一次在朝着末列频域系数的方向上所处的历史位置为第4列频域系数,并控制指针51从第4列频域系数开始,沿着朝着末列频域系数的方向向外偏移一个位置,使得指针51处于第5列频域系数上,从而选取第5列频域系数。由于此时当前已选取的频域系数的列数为3,其小于H,所以又可以将朝着首列频域系数的方向确定为当前偏移方向,以及确定指针51最近一次在朝着首列频域系数的方向上所处的历史位置为第3列频域系数,并控制指针51从第3列频域系数开始,沿着朝着首列频域系数的方向向外偏移一个位置,使得指针51处于第2列频域系数上,从而选取第2列频域系数。由于此时当前已选取的频域系数的列数为4,其小于H,所以可以将朝着末列偏移系数的方向确定为当前偏移方向,以及确定指针51最近一次在朝着末列偏移系数的方向上所处的历史位置为第5列频域系数,并控制指针51从第5列频域系数开始,沿着朝着末列偏移系数的方向向外偏移一个位置,使得指针51处于第6列频域系数上,从而选取第6列频域系数。由于此时当前已选取的频域系数的列数为5,其等于H,因此可以结束H列频域系数的选取流程。
基于上述可知,计算机设备可以优先选取中间列频域系数,然后从中间列频域系数开始,分别从中间列频域系数的两侧依次选取相应数量列的频域系数;或者,可以从中间列频域系数开始,按照左右交替的选取策略,从中间列频域系数的两侧,选取出H-1列频域系数,本申请实施例对计算机设备选取H列频域系数的逻辑不作限定。
S406,将水印对应的目标比特流,嵌入至系数矩阵的H个系数组,得到水印嵌入结果;其中,所述目标比特流中的不同比特被嵌入至不同的系数组。
在具体实现中,计算机设备可以依次遍历水印对应的目标比特流中的H个比特,确定当前遍历的第h个比特,h∈[1,H]。其次,可根据系数矩阵中的H个系数组的排列顺序(即从左到右的顺序),将H个系数组中的第h个系数组作为用于嵌入第h个比特的系数组。并对第h个系数组中的各个频域系数进行整合,得到整合值;其中,此处提及的整合是指用于将第h个系数组中的各个频域系数合并成一个数值的处理,其具体可以是均值处理或求和处理等,对此不作限定。然后,计算机设备可以根据第h个比特的取值,确定整合值和水印的强度参数之间需满足的目标大小关系。若整合值和强度参数之间满足目标大小关系,则可以保持第h个系数组中的各个频域系数不变,并确定第h个比特已被嵌入至相应系数组。也就是说,此情况下,可以认为第h个系数组本身所包含的各个频域系数可以直接表示第h个比特,所以无需对第h个系数组中的各个频域系数进行修改,直接将第h个系数组作为已嵌入第h个比特的新系数组。若整合值和强度参数之间不满足目标大小关系,则可以迭代地对第h个系数组中的各个频域系数进行缩放处理,直至缩放后的各个频域系数的整合值和强度参数之间满足目标大小关系,确定第h个比特已被嵌入至相应系数组。也就是说,此情况下,可以通过修改第h个系数组中的各个频域系数,并通过修改(即缩放)后的第h个系数组来表示第h个比特,即将修改后的第h个系数组作为已嵌入第h个比特的新系数组。然后,可以继续遍历,直至目标比特流中的各个比特均被嵌入至相应系数组,得到水印嵌入结果。
其中,①上述提及的强度参数(alpha)用于指示水印的显示强度,其是一个可以调整的参数,根据不同的应用场景,可以设置不同的强调参数;强度参数越大,水印的显示强度就越大,水印就越明显,水印的抗干扰能力就越强,反之,强度参数越小,水印的显示强度就越小,水印就越不可见,水印对图片本身的影响就越小,从而使得水印的抗干扰能力就越弱。②上述提及的目标大小关系可以根据实际需求进行自定义。例如,由前述可知,第h个比特的取值为第一数值(数值0)或第二数值(数值1),那么当第h个比特的取值为第一数值时,目标大小关系可以是指:整合值(如均值)小于水印的强度参数的关系;当第h个比特的取值为第二取值时,目标大小关系可以是指:整合值(如均值)大于或等于水印的强度参数的关系。或者,也可以反过来,即当第h个比特的取值为第一数值时,目标大小关系可以是指:整合值(如均值)大于或等于水印的强度参数的关系,当第h个比特的取值为第二取值时,目标大小关系可以是指:整合值(如均值)小于水印的强度参数的关系。③当目标大小关系是指:整合值小于水印的强度参数的关系时,上述提及的缩放处理是指缩小处理,且该缩小处理包括:在频域系数上减少缩放参数的处理;当目标大小关系是指:整合值大于或等于水印的强度参数的关系时,上述提及的缩放处理是指放大处理,且该放大处理包括:在频域系数上增加缩放参数的处理。
另外,若整合值和所述强度参数之间不满足目标大小关系,则计算机设备在迭代地对第h个系数组中的各个频域系数进行缩放处理,直至缩放后的各个频域系数的整合值和强度参数之间满足目标大小关系时,可以分别获取当前的第h个系数组中的各个频域系数的缩放参数;根据获取到的各个缩放参数,对当前的第h个系数组中的相应频域系数进行缩放处理,并重新计算缩放后的各个频域系数的整合值(即重新对缩放后的各个频域系数进行整合,得到相应的整合值)。若重新计算出的整合值和强度参数之间不满足目标大小关系,则跳转至分别获取当前的第h个系数组中的各个频域系数的缩放参数的步骤;若重新计算出的整合值和强度参数之间满足目标大小关系,则结束缩放处理。
综上可知,计算机设备将第h个比特嵌入至第h个系数组的一种逻辑可以是:对第h个系数组中的各个频域系数进行整合(如均值运算),得到整合值。当第h个比特的取值为第一数值(如数值0)时,若整合值小于强度参数,则保持第h个系数组中的各个频域系数不变,若整合值大于或等于强度参数,则迭代地对第h个系数组中的各个频域系数进行缩小处理,每次缩小处理时,各个频域系数分别减少相应的缩放参数,直至缩小后的各个频域系数的整合值小于强度参数。当第h个比特的取值为第二数值(如数值1)时,若整合值大于或等于强度参数,则保持第h个系数组中的各个频域系数不变,若整合值小于强度参数,则迭代地对第h个系数组中的各个频域系数进行放大处理,每次放大处理时,各个频域系数分别增加相应的放大参数,直至放大后的各个频域系数的整合值大于或等于强度参数。
其中,分别获取当前的第h个系数组中的各个频域系数的缩放参数的具体实施方式可以包括以下任一种:
实施方式一:对当前的第h个系数组中的各个频域系数进行求和运算,得到求和结果;针对当前的第h个系数组中的第n个频域系数,计算第n个频域系数和求和结果之间的比值;然后,可根据计算出的比值,确定第n个频域系数的缩放参数,如将计算出的比值确定为第n个频域系数的缩放参数,或者对计算出的比值进行线性处理(对预设参数和计算出的比值进行乘法运算的处理),得到第n个频域系数的缩放参数。其中,n∈[1,N]。示例性地,设第h个系数组包括3个频域系数,且第1个频域系数表示为a、第2个频域系数表示为b、第3个频域系数表示为c,则第1个频域系数的缩放参数可以为,第2个频域系数的缩放参数可以为/>,第3个频域系数的缩放参数可以为/>。通过此实施方式来计算各频域系数的缩放参数,可以在根据各频域系数的缩放参数同步对各频域系数进行修改时,保证各频域系数的修改幅度和自身的大小成正比,从而保持水印对图像内容的影响的均衡性,实现让水印对图像内容的修改具有渐变,不容易出现突变的情况。
实施方式二:获取预设的缩放因子,该缩放因子可以是一个小于1的数值;针对当前的第h个系数组中的第n个频域系数,采用该缩放因子对第n个频域系数进行缩放处理(如乘法运算),得到第n个频域系数的缩放参数。示例性地,仍设第h个系数组包括3个频域系数,且第1个频域系数表示为a、第2个频域系数表示为b、第3个频域系数表示为c,以及采用L表示缩放因子,则第1个频域系数的缩放参数可以为aL,第2个频域系数的缩放参数可以为b/>L,第3个频域系数的缩放参数可以为c/>L,此处的/>表示乘法运算。
实施方式三:获取预设的缩放参数,并将获取到的缩放参数,分别作为当前的第h个系数组中的各个频域系数的缩放参数。也就是说,此情况下,各个频域系数的缩放参数是相同的,均是一个预设的缩放参数。
S407,将水印嵌入结果从频域转换至空域,得到N行新的像素;并采用N行新的像素替换图像中被选取的N行像素,得到添加了水印的新图像。
本申请实施例通过根据水印抗裁剪策略从图像包含的多行像素中选取N行像素,将选取的N行像素从空域转换到频域,得到多个频域系数,并将该水印嵌入至多个频域系数,将水印嵌入结果从频域转换至空域,得到N行新的像素,从而采用N行新的像素替换图像中被选取的N行像素的方式,来实现在频域上完成水印嵌入的目的,这样可保证嵌入的水印对肉眼的不可见性,并使得水印对图像的感官影响较小,从而提升水印的隐蔽性和稳定性。并且,通过选取N行像素进行后续的水印嵌入操作,可避免对整个图像的像素进行修改,这样不仅可进一步降低水印对图像的感官影响,从而进一步提升水印的隐蔽性和稳定性,还可提升水印的嵌入效率,节省处理资源。进一步的,由于N行像素是根据水印抗裁剪策略来选取出的,这样可保证在图像传输过程或者处理过程中受到干扰时,在图像中嵌入的水印可以被稳定保留,且在图像受到部分裁剪的时候,可以依然保留稳定的水印信息,避免图像中所嵌入的水印被裁剪掉,从而提升水印的稳定性和抗裁剪性,进而使得水印具有较高的鲁棒性。
进一步的,在实际应用中,在基于上述图2或图4所示的图像处理方法得到添加了水印的新图像后,本申请实施例还可支持按照相应逻辑,从新图像中提取出该水印。参见图5b所示,从新图像中提取出水印的流程可包括以下步骤S501-S503:
S501,响应于针对新图像的水印提取操作,根据水印抗裁剪策略,从新图像中选取N行像素。
S502,将从新图像中选取的N行像素从空域转换至频域,得到多个新的频域系数。
在具体实现中,步骤S501-S502的具体实施方式可以类比前述方法实施例中的相关步骤,在此不作赘述。应理解的是,前述实施例所提及的从图像中选取N行像素所采用的水印抗裁剪策略,与步骤S501中从新图像中选取N行像素所采用的水印抗裁剪策略是同一个策略,因此通过步骤S501从新图像中选取的N行像素本质上就是前述实施例所提及的N行新的像素。且需说明的是,此处提及的多个新的频域系数是指:将新图像中的N行像素转换到频域所得到的频域系数,本质上就是前述提及的水印嵌入结果。这多个新的频域系数构成N行M列的新系数矩阵,即新系数矩阵本质就是N行M列新的频域系数的矩阵。
S503,从多个新的频域系数中,提取出新图像中所添加的水印。
在一种具体实现中,若计算机设备是直接将水印嵌入多个频域系数中的,则计算机设备在执行步骤S503时,可以获取原始未添加水印的图像,并根据水印抗裁剪策略从该图像中选取出N行像素,将从该图像中选取出的N行像素从空域转换至频域,得到多个频域系数。然后,可以将这多个频域系数和多个新的频域系数进行对比,根据对比结果提取出新图像中所添加的水印。
另一种具体实现中,若计算机设备是将水印对应的目标比特流嵌入至多个频域系数中的,则计算机设备在执行步骤S503时,可以从多个新的频域系数中提取出目标比特流,并对目标比特流进行解码,得到新图像中所添加的水印。应理解的是,对目标比特流进行解码的过程,本质上就是前述提及的编码得到目标比特流的过程所对应的逆过程。例如,若计算机设备是通过先使用base64方式将该水印编码成一串ascii码,再将该ascii码转换成比特流的形式,得到编码后的比特流,最后采用纠错校验码对编码后的比特流进行编码,得到目标比特流的,则计算机设备对目标比特流进行解码的过程可包括:先将目标比特流解码成ascii码,然后再用base64的逆向解码操作将ascii码还原成水印。
进一步的,若计算机设备是采取直接嵌入的方式来将目标比特流嵌入至多个频域系数的,则计算机设备从多个新的频域系数中提取出目标比特流的方式可以包括:获取原始未添加水印的图像所对应的多个频域系数,将这多个频域系数和多个新的频域系数进行对比,根据对比结果提取出目标比特流。若计算机设备是通过从多个频域系数中选取H个系数组,并将目标比特流嵌入至这H个系数组中的,则计算机设备从多个新的频域系数中提取出目标比特流的方式可以包括:从多个新的频域系数构成的新系数矩阵中,选取H个新系数组;其中,一个新系数组包括新系数矩阵中的一列新的频域系数,不同新系数组对应不同列。应理解的是,此处选取H个新系数组的方式与前述实施例提及的选取H个系数组的方式是相同的,在此不作赘述。然后,计算机设备可以从H个新系数组中提取出目标比特流。
具体的,若计算机设备是采取直接嵌入的方式将目标比特流嵌入至H个系数组的,则计算机设备从H个新系数组中提取出目标比特流的方式可以包括:确定从原始未添加水印的图像所对应的多个频域系数中选取的H个系数组,将这H个系数组和H个新系数组进行对比,根据对比结果提取出目标比特流。若计算机设备是采用间接表示的方式(如前述步骤S406的具体方式)将目标比特流嵌入至H个系数组的,则计算机设备从H个新系数组中提取出目标比特流的方式可以包括:依次遍历H个新系数组,确定当前遍历的第h个新系数组;并对第h个新系数组中的各个新的频域系数进行整合,得到新整合值;应理解的是,此处提及的整合与前述嵌入水印的过程中所提及的整合是相同的。然后,可根据新整合值和水印的强度参数之间的大小关系,提取出第h个新系数组中所嵌入的比特;继续遍历,直至H个新系数组均被遍历,采用提取出的H个比特构成目标比特流。
由前述可知,计算机设备是将目标比特流中的第h个比特嵌入至第h个系数组的,得到第h个新系数组的,因此从第h个新系数组提取的比特为第h个比特。并且,基于前述图4所示的方法实施例中的步骤S406所提及的将第h个比特嵌入第h个系数组的逻辑,计算机设备在根据新整合值和水印的强度参数之间的大小关系,提取出第h个新系数组中所嵌入的比特时,可以将新整合值和水印的强度参数进行比较;若新整合值小于水印的强度参数,则确定从第h个新系数组中提取出第一数值的比特,即确定提取出第h个比特并确定第h个比特的取值为第一数值;若新整合值大于或等于水印的强度参数,则确定从第h个新系数组中提取出第二数值的比特,即确定提取出第h个比特并确定第h个比特的取值为第二数值。
基于上述可知,当计算机设备通过前述图4所示的方法实施例中的步骤S406的方式来实现水印嵌入时,可以使得在提取水印的过程中,不需要使用原始未添加水印的图像来辅助处理,这样可减少因处理原始未添加水印的图像所需的处理资源和处理时间,提升水印提取效率。
基于上述图2、图4以及图5b所示的方法实施例,本申请实施例还提出了一种水印嵌入检出系统,该水印嵌入检出系统可以在图像上嵌入一段肉眼不可见的水印。在嵌入过程中,该水印嵌入检出系统主要是通过将图像中合适的部分数据转换到频域,在频域上选择合适的频段(即系数组)来嵌入水印的目标比特流的方法,来完成水印嵌入的目的。这种方法可以使得在图像数据传输过程或者处理过程中受到干扰时,嵌入的水印可以稳定保留,且在图像受到部分裁剪的时候,依然可以保留稳定的水印,从而形成一套对图像数据传输过程进行溯源的方法。应理解的是,该方法不仅可以适用于单个图片,还可以适用于视频数据;在适用于视频数据时,可以通过将视频数据抽帧出一个或多个图片帧的形式,使用该方法在每个图片帧中加入水印。
具体的,该水印嵌入检出系统的工作流程大致包括水印嵌入和水印检出两部分。下面以N=3为例,对这两部分的内容进行大致阐述:
(一)水印嵌入。
(1)预处理:
对于视频数据,先进行抽帧操作,将视频抽成一张张的图片帧。应理解的是,对于单个图片而言,无需单独进行预处理。并且,后续将图片帧和单个图片均称为图像。
(2)域转换过程:
首先,可以选择距离中间行像素50行像素的上下两行和中间行像素,一共3行像素来进行水印嵌入,可采用row1,row2和row3来分别表示每一行像素。然后,用一维的离散傅里叶变将选取的3行像素从空域转换到频域,得到3行频域系数,每行频域系数都是一维的,且这3行频域系数在竖直方向上对齐,便形成3行M列的系数矩阵。
(3)水印编码过程:
考虑到水印可以是不同类型的数据,比如01比特流数据,图片数据,文字数据等等,这里不做限定。为了将水印嵌入3行频域系数中,先要将不同类型的水印进行编码,统一编码成比特流的形式。这里可以采用base64的方式,将水印编码成一串ascii码,然后再根据ascii码的bit表示,将ascii码转化成比特流的形式,得到编码后的比特流。考虑到由于图像数据在传输过程中可能受到干扰,水印信息可能会被扰动,为了抵御这种扰动,减少水印提取错误的情况,将编码后的比特流用海明码(汉明码)进行编码,得到目标比特流,后续会对这串目标比特流嵌入到3行频域系数中。
(4)嵌入目标比特流:
考虑到目标比特流中的每个bit可能是0或1,为了提高水印的抗干扰能力,可以从每行频域系数中各选一个频域系数来表示一个0bit或者1bit。具体的,针对3行频域系数而言,可以从中间点开始,从3行频域系数中依次选取出系数组。每次在相同的排列位置上,从3行频域系数中的每行频域系数中各取一个频域系数,这样可以得到3个频域系数,并将这3个频域系数编码为一个系数组。然后,基于当前选取的频域系数所处的位置,再向外偏移一个位置,继续从3行频域系数取3个频域系数以得到一个系数组。一直重复此过程,有多少个bit需要嵌入,就取多少次;即目标比特流中包括多少个bit,就取多少次,从而得到K个系数组,K为目标比特流中的bit的数量。
其中,一个系数组用于嵌入一个比特的信息,具体的嵌入方法可以是:将一个系数组中的3个频域系数用a、b和c来代表,为了嵌入一个比特的信息,我们要对abc三个频域系数的大小进行调整,让3个频域系数的大小变得有规律,从而可以代表一个具体的比特信息。具体的,采用alpha来表示水印的强度参数,其默认值可以设置为80;采用avg来表示abc这3个频域系数的均值(即前述提及的整合值),,然后采用如下逻辑将abc这3个频域系数调整成不同的规律:
1)如果要嵌入比特0,则按照如下逻辑考虑abc这3个频域系数的值:
①如果,则保持abc这3个频域系数的值不用修改;
②否则,对abc这3个频域系数的值进行同步的迭代修改,每次a、b、c分别减少、/>、/>,直到avg<alpha。
2)如果要嵌入比特1,则按照如下逻辑考虑abc这3个频域系数的值:
①如果,则保持abc这3个频域系数的值不用修改;
②否则,对abc这3个频域系数的值进行同步的迭代修改,每次a、b、c增加、/>、/>,直到/>。
按照上述逻辑,对所有的系数组都进行对应的修改,就可以把水印嵌入到3行一维的频域系数上了,得到水印嵌入结果。
(5)后处理:
将嵌完水印的3行频域系数(即水印嵌入结果)分别进行一维的逆向离散傅里叶变换,以实现将嵌完水印的3行频域系数从频域转换回空域,得到3行新的像素,采用这3行新的像素替换掉原始的3行像素,得到添加了水印的新图像。
另外,需说明的是,针对视频数据而言,可以对视频数据进行抽帧后的每个图片帧执行上述操作,以将水印添加值每个图片帧,然后将所有图片帧进行重新组装,得到添加了水印的视频数据。
至此,就完成了整个水印嵌入过程。
(二)水印检出。
(1)预处理:
对于视频数据,提取出图片帧;对于单个图片而言,数据,不需要单独处理。后续图片帧和单个图片都简单地用新图像来描述,对应的操作同样适用于视频帧数据。
(2)提取过程:
1.从新图像中取离中心行像素50行像素的上下两行像素,以及最中间行像素,一共3行像素,作为候选数据行。
2.将3行候选数据行分别做一维离散傅里叶变换,以将这3行候选数据行从空域转换到频域,得到3行新的频域系数。
3.从中间点开始,从3行新的频域系数中依次选取出新系数组。每次在相同的排列位置上,从3行新的频域系数中的每行新的频域系数中各取一个新的频域系数,这样可以得到3个新的频域系数,并将这3个新的频域系数编码为一个新系数组。然后,基于当前选取的新的频域系数所处的位置,再向外偏移一个位置,继续从3行新的频域系数取3个新的频域系数以得到一个新系数组。一直重复此过程,直至取完包含水印的全部新的频域系数,得到K个新系数组。
4.对于每个新系数组,我们用ABC来分别表示新系数组中的3个新的频域系数。对于ABC这3个新的频域系数而言:
①如果,则表示提取出了比特0;
②如果,则表示提取出了比特1。
5.按照上述逻辑,对K个新系数组均执行提取操作后,就得到了一串比特序列,这一串比特序列就是目标比特流。
6、对目标比特流用海明码(汉明码)进行解码和纠错,得到一串解码后的比特流,根据比特序列,将解码后的比特流转换回ascii码,然后再用base64的逆向解码操作将ascii码还原回原始的水印。
通过上述流程,便完成了一个完整的水印嵌入检出系统。
基于上述可知,本申请实施例提出的水印嵌入检出系统可以通过在图像上选取不相邻的3行像素,并将其分别转换到频域后,在频域上嵌入水印的目标比特流,从而来完成水印嵌入的目的。这种方法不仅可以保证对肉眼的不可见性,还可保证对图像的感官影响较小,使得基本感知不出图像的变化;同时由于使用不相邻且相距较远的3行像素分别进行嵌入,可以去除相关性,使得各行像素不会相互干扰,从而可以相距较远的3行上用一维的离散傅里叶变换来分别进行转换和信息嵌入,可以去除相关性,提高水印信息在传播过程中的抗干扰能力,同时对视频和图像的感官影响更小。并且,由于图像上的大部分区域都不含水印,因此对于抵抗裁剪处理,这种方法尤其有效,只要图像裁剪的幅度没有将3行像素裁剪掉,那么水印就可以一直保留,提取的时候可以成功提取水印。
基于上述方法实施例的描述,本申请实施例还公开了一种图像处理装置;请参见图6,所述图像处理装置可以运行如下单元:
获取单元601,用于获取待添加水印的图像,所述图像位于空域且所述图像包含多行像素;
处理单元602,用于根据水印抗裁剪策略,从所述图像包含的多行像素中选取N行像素,N为正整数;并将从所述图像中选取的N行像素从空域转换到频域,得到多个频域系数;
所述处理单元602,还用于将所述水印嵌入至所述多个频域系数中,得到水印嵌入结果;并将所述水印嵌入结果从所述频域转换至所述空域,得到N行新的像素;
所述处理单元602,还用于采用所述N行新的像素替换所述图像中被选取的N行像素,得到添加了所述水印的新图像。
在一种实施方式中,处理单元602在用于根据水印抗裁剪策略,从所述图像包含的多行像素中选取N行像素时,可具体用于:
按照水印抗裁剪策略的指示,从所述图像包含的多行像素中选取中间行像素,所述中间行像素是指:所述多行像素中,处于中间位置的一行像素;
基于所述中间行像素和目标行距离值,从所述图像包含的多行像素中选取两行像素;其中,所述两行像素分别位于所述中间行像素的两侧,且所述两行像素中的每行像素与所述中间行像素之间的行距离值为所述目标行距离值;
其中,所述两行像素和所述中间行像素,构成从所述图像包含的多行像素中选取出的N行像素。
另一种实施方式中,所述多个频域系数构成N行M列的系数矩阵,M为大于1的整数;相应的,处理单元602在用于将所述水印嵌入至所述多个频域系数中,得到水印嵌入结果时,可具体用于:
对所述水印进行编码,得到所述水印对应的目标比特流;所述目标比特流中包括H个比特,H为正整数;
从所述多个频域系数构成的系数矩阵中,选取H个系数组;其中,一个系数组包括所述系数矩阵中的一列频域系数,不同系数组对应不同列;
将所述水印对应的目标比特流,嵌入至所述系数矩阵中的H个系数组,得到水印嵌入结果;其中,所述目标比特流中的不同比特被嵌入至不同的系数组。
另一种实施方式中,处理单元602在用于对所述水印进行编码,得到所述水印对应的目标比特流时,可具体用于:
将所述水印编码成比特流的形式,得到编码后的比特流;
采用纠错校验码对所述编码后的比特流进行编码,得到所述水印对应的目标比特流。
另一种实施方式中,处理单元602在用于从所述多个频域系数构成的系数矩阵中,选取H个系数组时,可具体用于:
从所述多个频域系数构成的系数矩阵中,定位出中间列频域系数;所述中间列频域系数是指:所述系数矩阵中,处于中间位置的一列频域系数;
从所述中间列频域系数开始,从所述系数矩阵中选取H列频域系数,采用所述H列频域系数构建出H个系数组;
其中,所述H列频域系数包含所述中间列频域系数,所述H列频域系数中除所述中间列频域系数以外的其他列频域系数,分布在所述中间列频域系数的两侧。
另一种实施方式中,处理单元602在用于将所述水印对应的目标比特流,嵌入至所述系数矩阵中的H个系数组,得到水印嵌入结果时,可具体用于:
依次遍历所述水印对应的目标比特流中的H个比特,确定当前遍历的第h个比特,h∈[1,H];
根据所述系数矩阵中的H个系数组的排列顺序,将所述H个系数组中的第h个系数组作为用于嵌入所述第h个比特的系数组;并对所述第h个系数组中的各个频域系数进行整合,得到整合值;
根据所述第h个比特的取值,确定所述整合值和所述水印的强度参数之间需满足的目标大小关系,所述强度参数用于指示所述水印的显示强度;
若所述整合值和所述强度参数之间满足所述目标大小关系,则保持所述第h个系数组中的各个频域系数不变,并确定所述第h个比特已被嵌入至相应系数组;
若所述整合值和所述强度参数之间不满足所述目标大小关系,则迭代地对所述第h个系数组中的各个频域系数进行缩放处理,直至缩放后的各个频域系数的整合值和所述强度参数之间满足所述目标大小关系,确定所述第h个比特已被嵌入至相应系数组;
继续遍历,直至所述目标比特流中的各个比特均被嵌入至相应系数组,得到水印嵌入结果。
另一种实施方式中,处理单元602在用于若所述整合值和所述强度参数之间不满足所述目标大小关系,则迭代地对所述第h个系数组中的各个频域系数进行缩放处理,直至缩放后的各个频域系数的整合值和所述强度参数之间满足所述目标大小关系时,可具体用于:
若所述整合值和所述强度参数之间不满足所述目标大小关系,则分别获取当前的第h个系数组中的各个频域系数的缩放参数;
根据获取到的各个缩放参数,对当前的第h个系数组中的相应频域系数进行缩放处理,并重新计算缩放后的各个频域系数的整合值;
若重新计算出的整合值和所述强度参数之间不满足所述目标大小关系,则跳转至所述分别获取当前的第h个系数组中的各个频域系数的缩放参数的步骤;
若重新计算出的整合值和所述强度参数之间满足所述目标大小关系,则结束缩放处理。
另一种实施方式中,处理单元602在用于分别获取当前的第h个系数组中的各个频域系数的缩放参数时,可具体用于:
对当前的第h个系数组中的各个频域系数进行求和运算,得到求和结果;
针对所述当前的第h个系数组中的第n个频域系数,计算所述第n个频域系数和所述求和结果之间的比值;其中,n∈[1,N];
根据计算出的比值,确定所述第n个频域系数的缩放参数。
另一种实施方式中,所述第h个比特的取值为第一数值或第二数值;
当所述第h个比特的取值为第一数值时,所述目标大小关系是指:整合值小于水印的强度参数的关系;缩放处理是指缩小处理,且所述缩小处理包括:在频域系数上减少缩放参数的处理;
当所述第h个比特的取值为第二取值时,所述目标大小关系是指:整合值大于或等于水印的强度参数的关系;缩放处理是指放大处理,且所述放大处理包括:在频域系数上增加缩放参数的处理。
另一种实施方式中,处理单元602还可用于:
响应于针对所述新图像的水印提取操作,根据所述水印抗裁剪策略,从所述新图像中选取N行像素;
将从所述新图像中选取的N行像素从所述空域转换至所述频域,得到多个新的频域系数;
从所述多个新的频域系数中,提取出所述新图像中所添加的水印。
另一种实施方式中,所述多个新的频域系数构成N行M列的新系数矩阵;相应的,处理单元602在用于从所述多个新的频域系数中,提取出所述新图像中所添加的水印时,可具体用于:
从所述多个新的频域系数构成的新系数矩阵中,选取H个新系数组;其中,一个新系数组包括所述新系数矩阵中的一列新的频域系数,不同新系数组对应不同列;
从所述H个新系数组中提取出目标比特流,并对所述目标比特流进行解码,得到所述新图像中所添加的水印。
另一种实施方式中,处理单元602在用于从所述H个新系数组中提取出目标比特流时,可具体用于:
依次遍历所述H个新系数组,确定当前遍历的第h个新系数组;并对所述第h个新系数组中的各个新的频域系数进行整合,得到新整合值;
根据所述新整合值和所述水印的强度参数之间的大小关系,提取出所述第h个新系数组中所嵌入的比特;
继续遍历,直至所述H个新系数组均被遍历,采用提取出的H个比特构成目标比特流。
另一种实施方式中,处理单元602在用于根据所述新整合值和所述水印的强度参数之间的大小关系,提取出所述第h个新系数组中所嵌入的比特时,可具体用于:
若所述新整合值小于所述水印的强度参数,则确定从所述第h个新系数组中提取出第一数值的比特;
若所述新整合值大于或等于所述水印的强度参数,则确定从所述第h个新系数组中提取出第二数值的比特。
根据本申请的另一个实施例,图6所示的图像处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2、图4或图5b中所示的相应方法所涉及的各步骤的计算机程序(包括一条或多条指令),来构造如图6中所示的图像处理装置设备,以及来实现本申请实施例的图像处理方法。所述计算机程序可以记载于例如计算机可读存储介质上,并通过计算机可读存储介质装载于上述计算设备中,并在其中运行。
本申请实施例通过根据水印抗裁剪策略从图像包含的多行像素中选取N行像素,将选取的N行像素从空域转换到频域,得到多个频域系数,并将该水印嵌入至多个频域系数,将水印嵌入结果从频域转换至空域,得到N行新的像素,从而采用N行新的像素替换图像中被选取的N行像素的方式,来实现在频域上完成水印嵌入的目的,这样可保证嵌入的水印对肉眼的不可见性,并使得水印对图像的感官影响较小,从而提升水印的隐蔽性和稳定性。并且,通过选取N行像素进行后续的水印嵌入操作,可避免对整个图像的像素进行修改,这样不仅可进一步降低水印对图像的感官影响,从而进一步提升水印的隐蔽性和稳定性,还可提升水印的嵌入效率,节省处理资源。进一步的,由于N行像素是根据水印抗裁剪策略来选取出的,这样可保证在图像传输过程或者处理过程中受到干扰时,在图像中嵌入的水印可以被稳定保留,且在图像受到部分裁剪的时候,可以依然保留稳定的水印信息,避免图像中所嵌入的水印被裁剪掉,从而提升水印的稳定性和抗裁剪性,进而使得水印具有较高的鲁棒性。
基于上述方法实施例以及装置实施例的描述,本申请实施例还提供一种计算机设备。请参见图7,该计算机设备至少包括处理器701、输入接口702、输出接口703以及计算机存储介质704。其中,计算机设备内的处理器701、输入接口702、输出接口703以及计算机存储介质704可通过总线或其他方式连接。计算机存储介质704可以存储在计算机设备的存储器中,所述计算机存储介质704用于存储计算机程序,所述计算机程序包括一条或多条指令,所述处理器701用于执行所述计算机存储介质704存储的计算机程序中的一条或多条指令。处理器701(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能。
在一个实施例中,本申请实施例所述的处理器701可以用于进行一系列的图像处理,具体包括:获取待添加水印的图像,所述图像位于空域且所述图像包含多行像素;根据水印抗裁剪策略,从所述图像包含的多行像素中选取N行像素,N为正整数;并将从所述图像中选取的N行像素从空域转换到频域,得到多个频域系数;将所述水印嵌入至所述多个频域系数中,得到水印嵌入结果;并将所述水印嵌入结果从所述频域转换至所述空域,得到N行新的像素;采用所述N行新的像素替换所述图像中被选取的N行像素,得到添加了所述水印的新图像,等等。
本申请实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是计算机设备中的记忆设备,用于存放计算机程序和数据。可以理解的是,此处的计算机存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了计算机程序,该计算机程序包括适于被处理器701加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的程序代码。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机存储介质。在一个实施例中,可由处理器加载并执行计算机存储介质中存放的一条或多条指令,以实现上述有关图2、图4或图5b所示的方法实施例中的相应步骤。
本申请实施例通过根据水印抗裁剪策略从图像包含的多行像素中选取N行像素,将选取的N行像素从空域转换到频域,得到多个频域系数,并将该水印嵌入至多个频域系数,将水印嵌入结果从频域转换至空域,得到N行新的像素,从而采用N行新的像素替换图像中被选取的N行像素的方式,来实现在频域上完成水印嵌入的目的,这样可保证嵌入的水印对肉眼的不可见性,并使得水印对图像的感官影响较小,从而提升水印的隐蔽性和稳定性。并且,通过选取N行像素进行后续的水印嵌入操作,可避免对整个图像的像素进行修改,这样不仅可进一步降低水印对图像的感官影响,从而进一步提升水印的隐蔽性和稳定性,还可提升水印的嵌入效率,节省处理资源。进一步的,由于N行像素是根据水印抗裁剪策略来选取出的,这样可保证在图像传输过程或者处理过程中受到干扰时,在图像中嵌入的水印可以被稳定保留,且在图像受到部分裁剪的时候,可以依然保留稳定的水印信息,避免图像中所嵌入的水印被裁剪掉,从而提升水印的稳定性和抗裁剪性,进而使得水印具有较高的鲁棒性。
需要说明的是,根据本申请的一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括一条或多条指令,该一条或多条指令存储在计算机存储介质中。计算机设备的处理器从计算机存储介质读取一条或多条指令,处理器执行该一条或多条指令,使得该计算机设备执行上述图2、图4或图5b所示的方法实施例方面的各种可选方式中提供的方法。应理解的是,以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (16)
1.一种图像处理方法,其特征在于,包括:
获取待添加水印的图像,所述图像位于空域且所述图像包含多行像素;
根据水印抗裁剪策略,从所述图像包含的多行像素中选取N行像素,N为正整数;并将从所述图像中选取的N行像素从空域转换到频域,得到多个频域系数;
将所述水印嵌入至所述多个频域系数中,得到水印嵌入结果;并将所述水印嵌入结果从所述频域转换至所述空域,得到N行新的像素;其中,所述多个频域系数构成系数矩阵,所述水印嵌入结果是通过将所述水印对应的目标比特流嵌入至所述系数矩阵中的H个系数组得到的,H为正整数;不同系数组包括所述系数矩阵中的不同列的频域系数;所述目标比特流中的不同比特被嵌入至不同系数组,将第h个比特嵌入至相应系数组的方式包括:根据所述第h个比特的取值,确定相应系数组中的各个频域系数的整合值和所述水印的强度参数之间需满足的目标大小关系;若所述整合值和所述强度参数之间满足所述目标大小关系,则保持相应系数组中的各个频域系数不变,并确定所述第h个比特已被嵌入至相应系数组;若不满足,则迭代地对相应系数组中的各个频域系数进行缩放处理,直至缩放后的各个频域系数的整合值和所述强度参数之间满足所述目标大小关系,确定所述第h个比特已被嵌入至相应系数组,h∈[1,H];
采用所述N行新的像素替换所述图像中被选取的N行像素,得到添加了所述水印的新图像。
2.如权利要求1所述的方法,其特征在于,所述根据水印抗裁剪策略,从所述图像包含的多行像素中选取N行像素,包括:
按照水印抗裁剪策略的指示,从所述图像包含的多行像素中选取中间行像素,所述中间行像素是指:所述多行像素中,处于中间位置的一行像素;
基于所述中间行像素和目标行距离值,从所述图像包含的多行像素中选取两行像素;其中,所述两行像素分别位于所述中间行像素的两侧,且所述两行像素中的每行像素与所述中间行像素之间的行距离值为所述目标行距离值;
其中,所述两行像素和所述中间行像素,构成从所述图像包含的多行像素中选取出的N行像素。
3.如权利要求1所述的方法,其特征在于,所述多个频域系数构成N行M列的系数矩阵,M为大于1的整数;所述将所述水印嵌入至所述多个频域系数中,得到水印嵌入结果,包括:
对所述水印进行编码,得到所述水印对应的目标比特流;所述目标比特流中包括H个比特,H为正整数;
从所述多个频域系数构成的系数矩阵中,选取H个系数组;其中,一个系数组包括所述系数矩阵中的一列频域系数,不同系数组对应不同列;
将所述水印对应的目标比特流,嵌入至所述系数矩阵中的H个系数组,得到水印嵌入结果;其中,所述目标比特流中的不同比特被嵌入至不同的系数组。
4.如权利要求3所述的方法,其特征在于,所述对所述水印进行编码,得到所述水印对应的目标比特流,包括:
将所述水印编码成比特流的形式,得到编码后的比特流;
采用纠错校验码对所述编码后的比特流进行编码,得到所述水印对应的目标比特流。
5.如权利要求3所述的方法,其特征在于,所述从所述多个频域系数构成的系数矩阵中,选取H个系数组,包括:
从所述多个频域系数构成的系数矩阵中,定位出中间列频域系数;所述中间列频域系数是指:所述系数矩阵中,处于中间位置的一列频域系数;
从所述中间列频域系数开始,从所述系数矩阵中选取H列频域系数,采用所述H列频域系数构建出H个系数组;
其中,所述H列频域系数包含所述中间列频域系数,所述H列频域系数中除所述中间列频域系数以外的其他列频域系数,分布在所述中间列频域系数的两侧。
6.如权利要求3所述的方法,其特征在于,所述将所述水印对应的目标比特流,嵌入至所述系数矩阵中的H个系数组,得到水印嵌入结果,包括:
依次遍历所述水印对应的目标比特流中的H个比特,确定当前遍历的第h个比特;
根据所述系数矩阵中的H个系数组的排列顺序,将所述H个系数组中的第h个系数组作为用于嵌入所述第h个比特的系数组;并对所述第h个系数组中的各个频域系数进行整合,得到整合值;
根据所述第h个比特的取值,确定所述整合值和所述水印的强度参数之间需满足的目标大小关系,所述强度参数用于指示所述水印的显示强度;
若所述整合值和所述强度参数之间满足所述目标大小关系,则保持所述第h个系数组中的各个频域系数不变,并确定所述第h个比特已被嵌入至相应系数组;
若所述整合值和所述强度参数之间不满足所述目标大小关系,则迭代地对所述第h个系数组中的各个频域系数进行缩放处理,直至缩放后的各个频域系数的整合值和所述强度参数之间满足所述目标大小关系,确定所述第h个比特已被嵌入至相应系数组;
继续遍历,直至所述目标比特流中的各个比特均被嵌入至相应系数组,得到水印嵌入结果。
7.如权利要求6所述的方法,其特征在于,所述若所述整合值和所述强度参数之间不满足所述目标大小关系,则迭代地对所述第h个系数组中的各个频域系数进行缩放处理,直至缩放后的各个频域系数的整合值和所述强度参数之间满足所述目标大小关系,包括:
若所述整合值和所述强度参数之间不满足所述目标大小关系,则分别获取当前的第h个系数组中的各个频域系数的缩放参数;
根据获取到的各个缩放参数,对当前的第h个系数组中的相应频域系数进行缩放处理,并重新计算缩放后的各个频域系数的整合值;
若重新计算出的整合值和所述强度参数之间不满足所述目标大小关系,则跳转至所述分别获取当前的第h个系数组中的各个频域系数的缩放参数的步骤;
若重新计算出的整合值和所述强度参数之间满足所述目标大小关系,则结束缩放处理。
8.如权利要求7所述的方法,其特征在于,所述分别获取当前的第h个系数组中的各个频域系数的缩放参数,包括:
对当前的第h个系数组中的各个频域系数进行求和运算,得到求和结果;
针对所述当前的第h个系数组中的第n个频域系数,计算所述第n个频域系数和所述求和结果之间的比值;其中,n∈[1,N];
根据计算出的比值,确定所述第n个频域系数的缩放参数。
9.如权利要求6所述的方法,其特征在于,所述第h个比特的取值为第一数值或第二数值;
当所述第h个比特的取值为第一数值时,所述目标大小关系是指:整合值小于水印的强度参数的关系;缩放处理是指缩小处理,且所述缩小处理包括:在频域系数上减少缩放参数的处理;
当所述第h个比特的取值为第二取值时,所述目标大小关系是指:整合值大于或等于水印的强度参数的关系;缩放处理是指放大处理,且所述放大处理包括:在频域系数上增加缩放参数的处理。
10.如权利要求1-9任一项所述的方法,其特征在于,所述方法还包括:
响应于针对所述新图像的水印提取操作,根据所述水印抗裁剪策略,从所述新图像中选取N行像素;
将从所述新图像中选取的N行像素从所述空域转换至所述频域,得到多个新的频域系数;
从所述多个新的频域系数中,提取出所述新图像中所添加的水印。
11.如权利要求10所述的方法,其特征在于,所述多个新的频域系数构成N行M列的新系数矩阵;所述从所述多个新的频域系数中,提取出所述新图像中所添加的水印,包括:
从所述多个新的频域系数构成的新系数矩阵中,选取H个新系数组;其中,一个新系数组包括所述新系数矩阵中的一列新的频域系数,不同新系数组对应不同列;
从所述H个新系数组中提取出目标比特流,并对所述目标比特流进行解码,得到所述新图像中所添加的水印。
12.如权利要求11所述的方法,其特征在于,所述从所述H个新系数组中提取出目标比特流,包括:
依次遍历所述H个新系数组,确定当前遍历的第h个新系数组;并对所述第h个新系数组中的各个新的频域系数进行整合,得到新整合值;
根据所述新整合值和所述水印的强度参数之间的大小关系,提取出所述第h个新系数组中所嵌入的比特;
继续遍历,直至所述H个新系数组均被遍历,采用提取出的H个比特构成目标比特流。
13.如权利要求12所述的方法,其特征在于,所述根据所述新整合值和所述水印的强度参数之间的大小关系,提取出所述第h个新系数组中所嵌入的比特,包括:
若所述新整合值小于所述水印的强度参数,则确定从所述第h个新系数组中提取出第一数值的比特;
若所述新整合值大于或等于所述水印的强度参数,则确定从所述第h个新系数组中提取出第二数值的比特。
14.一种图像处理装置,其特征在于,包括:
获取单元,用于获取待添加水印的图像,所述图像位于空域且所述图像包含多行像素;
处理单元,用于根据水印抗裁剪策略,从所述图像包含的多行像素中选取N行像素,N为正整数;并将从所述图像中选取的N行像素从空域转换到频域,得到多个频域系数;
所述处理单元,还用于将所述水印嵌入至所述多个频域系数中,得到水印嵌入结果;并将所述水印嵌入结果从所述频域转换至所述空域,得到N行新的像素;其中,所述多个频域系数构成系数矩阵,所述水印嵌入结果是通过将所述水印对应的目标比特流嵌入至所述系数矩阵中的H个系数组得到的,H为正整数;不同系数组包括所述系数矩阵中的不同列的频域系数;所述目标比特流中的不同比特被嵌入至不同系数组,将第h个比特嵌入至相应系数组的方式包括:根据所述第h个比特的取值,确定相应系数组中的各个频域系数的整合值和所述水印的强度参数之间需满足的目标大小关系;若所述整合值和所述强度参数之间满足所述目标大小关系,则保持相应系数组中的各个频域系数不变,并确定所述第h个比特已被嵌入至相应系数组;若不满足,则迭代地对相应系数组中的各个频域系数进行缩放处理,直至缩放后的各个频域系数的整合值和所述强度参数之间满足所述目标大小关系,确定所述第h个比特已被嵌入至相应系数组,h∈[1,H];
所述处理单元,还用于采用所述N行新的像素替换所述图像中被选取的N行像素,得到添加了所述水印的新图像。
15.一种计算机设备,包括输入接口和输出接口,其特征在于,还包括:处理器以及计算机存储介质;
其中,所述处理器适于实现一条或多条指令,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由所述处理器加载并执行如权利要求1-13任一项所述的图像处理方法。
16.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如权利要求1-13任一项所述的图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310956246.5A CN116703686B (zh) | 2023-08-01 | 2023-08-01 | 图像处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310956246.5A CN116703686B (zh) | 2023-08-01 | 2023-08-01 | 图像处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116703686A CN116703686A (zh) | 2023-09-05 |
CN116703686B true CN116703686B (zh) | 2023-12-22 |
Family
ID=87831410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310956246.5A Active CN116703686B (zh) | 2023-08-01 | 2023-08-01 | 图像处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116703686B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111932432A (zh) * | 2020-10-14 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 盲水印的植入方法、检测方法、装置、设备及存储介质 |
CN112040337A (zh) * | 2020-09-01 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 视频的水印添加和提取方法、装置、设备及存储介质 |
WO2021093648A1 (zh) * | 2019-11-11 | 2021-05-20 | 阿里巴巴集团控股有限公司 | 一种水印信息嵌入方法以及装置 |
CN113538197A (zh) * | 2020-04-15 | 2021-10-22 | 北京达佳互联信息技术有限公司 | 水印提取方法、装置、存储介质以及电子设备 |
CN114022340A (zh) * | 2021-11-10 | 2022-02-08 | 北京房江湖科技有限公司 | 对图像添加水印及检测方法和装置、电子设备和存储介质 |
-
2023
- 2023-08-01 CN CN202310956246.5A patent/CN116703686B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021093648A1 (zh) * | 2019-11-11 | 2021-05-20 | 阿里巴巴集团控股有限公司 | 一种水印信息嵌入方法以及装置 |
CN113538197A (zh) * | 2020-04-15 | 2021-10-22 | 北京达佳互联信息技术有限公司 | 水印提取方法、装置、存储介质以及电子设备 |
CN112040337A (zh) * | 2020-09-01 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 视频的水印添加和提取方法、装置、设备及存储介质 |
CN111932432A (zh) * | 2020-10-14 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 盲水印的植入方法、检测方法、装置、设备及存储介质 |
CN114022340A (zh) * | 2021-11-10 | 2022-02-08 | 北京房江湖科技有限公司 | 对图像添加水印及检测方法和装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116703686A (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tan et al. | A robust watermarking scheme in YCbCr color space based on channel coding | |
Zhang et al. | Recursive histogram modification: establishing equivalency between reversible data hiding and lossless data compression | |
US20190200025A1 (en) | Coded-block-flag coding and derivation | |
Wahed et al. | Reversible data hiding with interpolation and adaptive embedding | |
CN113938952B (zh) | 信道状态信息压缩方法、重建方法、装置及计算机设备 | |
KR102637177B1 (ko) | 워터마크 기반의 이미지 무결성 검증 방법 및 장치 | |
CN113538197B (zh) | 水印提取方法、装置、存储介质以及电子设备 | |
CN111161124B (zh) | 基于均方误差评估的参考矩阵模型的图像隐写方法 | |
JP2024517359A (ja) | 画像処理ネットワークの訓練方法、装置、コンピュータ機器及びコンピュータプログラム | |
TWI533670B (zh) | 位元串流型式之畫像的解碼方法 | |
CN116703686B (zh) | 图像处理方法、装置、设备及存储介质 | |
CN110572713B (zh) | 一种自适应视频宽高比的转码方法及处理终端 | |
Wu et al. | Efficient reversible data hiding via two layers of double-peak embedding | |
CN111065000B (zh) | 视频水印处理方法、装置及存储介质 | |
Wahed et al. | Efficient LSB substitution for interpolation based reversible data hiding scheme | |
CN108024114B (zh) | 一种基于标志位参数修改的大容量无损hevc信息隐藏方法 | |
CN116437019A (zh) | 一种全0行和全0列编码的密文域可逆信息隐藏方法 | |
Mathews et al. | Histogram shifting based reversible data hiding using block division and pixel differences | |
Lv et al. | A novel auxiliary data construction scheme for reversible data hiding in JPEG images | |
Wahed et al. | Efficient data embedding for interpolation based reversible data hiding scheme | |
CN114387148A (zh) | 一种抗图像压缩的数字水印嵌入方法、装置及存储介质 | |
Chang | Efficient lossless watermarking algorithm using gradient sorting and selective embedding | |
Ma et al. | Large capacity and high quality reversible data hiding method based on enhanced side match vector quantization | |
Chang et al. | High-Capacity Reversible Data Hiding Method for JPEG Images. | |
JP3954032B2 (ja) | 画像符号化装置、画像符号化方法、画像符号化プログラムおよび画像符号化プログラムを記録したコンピュータ読取可能な記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40092318 Country of ref document: HK |