CN113393358A - 图像处理方法和***、存储介质、计算设备 - Google Patents
图像处理方法和***、存储介质、计算设备 Download PDFInfo
- Publication number
- CN113393358A CN113393358A CN202010172556.4A CN202010172556A CN113393358A CN 113393358 A CN113393358 A CN 113393358A CN 202010172556 A CN202010172556 A CN 202010172556A CN 113393358 A CN113393358 A CN 113393358A
- Authority
- CN
- China
- Prior art keywords
- image
- target
- fourier transform
- preset
- binary sequence
- 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.)
- Pending
Links
Images
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
- G06T1/005—Robust watermarking, e.g. average attack or collusion attack resistant
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
Abstract
本申请公开了一种图像处理方法和***、存储介质、计算设备。其中,该方法包括:获取原始图像和二值序列,其中,二值序列用于生成嵌入至原始图像中的水印;基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像,其中,目标图像中含有水印。本申请解决了相关技术中图像处理方法无法应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的技术问题。
Description
技术领域
本申请涉及图像水印技术领域,具体而言,涉及一种图像处理方法和***、存储介质、计算设备。
背景技术
随着互联网的快速发展,信息的传播速度也远超以往任何一个时期。数字图像作为一种常见的信息载体,在数字信息时代的今天,应用极为广泛。但是数字图像容易传播、容易复制、容易被篡改,在实际应用中仍然存在着难以界定的图像版权归属、防伪防篡改等问题。为了解决上述问题,提出了数字图像水印技术。数字图像水印技术是将一些标识信息嵌入数字图像当中,同时不影响原载体的使用价值。通过这些隐藏在图像中的信息,可以达到确认图像创建者、购买者、传送隐秘信息或者判断图像是否被篡改等目的。数字图像水印是保护数字图像安全、实现防伪溯源、版权保护的有效办法,是信息隐藏技术研究领域的重要分支和研究方向。
现在处于移动互联网应用非常发达的时期,图像在传播时经常会被旋转、缩放、平移、拼贴、压缩等等。这些攻击非常常见,但是对数字图像水印的破坏也非常严重,在这些攻击下,数字图像水印面临着失效的风险。而由于这种攻击方式的广泛存在,如果不能及时解决这种传播方式下造成的问题,会给图像的版权保护带来很大的困扰。
针对相关技术中图像处理方法无法应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种图像处理方法和***、存储介质、计算设备,以至少解决相关技术中图像处理方法无法应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的技术问题。
根据本申请实施例的一个方面,提供了一种图像处理方法,包括:获取原始图像和二值序列,其中,二值序列用于生成嵌入至原始图像中的水印;基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像,其中,目标图像中含有水印。
根据本申请实施例的另一方面,还提供了一种图像处理方法,包括:获取检测图像和二值序列,其中,二值序列用于生成检测图像中包含的水印;基于检测图像的傅里叶变换系数,生成目标幅值图像;利用二值序列对目标幅值图像进行滤波,得到第一滤波结果;基于第一滤波结果确定检测图像的检测结果,其中,检测结果用于表征检测图像中是否存在水印。
根据本申请实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述的图像处理方法。
根据本申请实施例的另一方面,还提供了一种计算设备,包括:处理器和存储介质,处理器用于运行存储介质中存储的程序,其中,程序运行时执行上述的图像处理方法。
根据本申请实施例的另一方面,还提供了一种图像处理***,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取原始图像和二值序列,其中,二值序列用于生成嵌入至原始图像中的水印;基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像,其中,目标图像中含有水印。
根据本申请实施例的另一方面,还提供了一种数据处理方法,包括:获取原始数据;对原始数据的第一傅里叶变换系数进行修改,生成嵌入水印的目标数据。
在本申请实施例中,在获取到原始图像之后,可以获取用于生成水印的二值序列,并基于二值序列对原始图像的傅里叶变换系数进行修改,得到含有水印的目标图像,实现水印嵌入的目的。与现有技术相比,通过对原始图像的傅里叶变换系数进行修改,利用二维傅里叶变换的特性,使得目标图像具有强鲁棒性,可以应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的联合攻击,并且具有嵌入速度快、计算简单、应用场景广阔的技术效果,进而解决了相关技术中图像处理方法无法应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现图像处理方法的计算机终端的硬件结构框图;
图2是根据本申请实施例的一种计算机设备作为接收端的示意图;
图3是根据本申请实施例1的一种图像处理方法的流程图;
图4是根据本申请实施例的一种基于傅里叶变换的模板水印嵌入的流程图;
图5是根据本申请实施例的一种以一幅图像为例的水印嵌入的示意图;
图6是根据本申请实施例的以一幅图像为例的傅里叶变换模板的示意图;
图7是根据本申请实施例的另一种基于傅里叶变换的模板水印嵌入的流程图;
图8是根据本申请实施例的极坐标图的相关性结果的流程图;
图9是根据本申请实施例的以一幅图像为例的水印检测的示意图;
图10是根据本申请实施例的一种基于傅里叶变换的模板水印检测与图像校正的流程图;
图11是根据本申请实施例2的一种图像处理方法的流程图;
图12是根据本申请实施例3的一种图像处理装置的示意图;
图13是根据本申请实施例4的一种图像处理装置的示意图;
图14是根据本申请实施例的一种计算机终端的结构框图;以及
图15是根据本申请实施例8的一种数据处理方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
DFT:离散傅里叶变换,Discrete Fourier Transform,离散傅里叶变换可以将离散的空域信号转换为离散的频域信号,变换基底是正弦和余弦函数。
二值序列:可以由一定数量的二值元素构成,二值元素可以是0或1。
实施例1
实际生活中针对图像的常见攻击有旋转、缩放、平移、镜像、剪切、拼贴、压缩等,相关的数字图像水印方案往往难以抵抗上述攻击的联合攻击,导致数字图像水印失效,数字图像安全性较低,仍然存在图像版权归属、防伪防篡改等问题。
为了解决上述问题,本申请实施例提供了一种图像处理方法,利用傅里叶变换的特征,提出了一种基于离散傅里叶变换的水印模板方法,具有强鲁棒性,可以应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击,并且可以给出图像的旋转缩放系数,是一种用于图像校正的水印方法。而且,该方法是一种盲提取的水印模板方案,嵌入和提取的时间都很快,可以和其他的定制嵌入信息的水印方法组合,应用场景十分广阔。
上述方案可以分为两部分,分别是:水印的嵌入,水印的检测,也即,上述的图像处理方法包括:基于傅里叶变换的模板水印的嵌入方法,以及基于傅里叶变换的模板水印检测方法。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例1所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。图1示出了一种用于实现图像处理方法的计算机终端(或移动设备,或服务器)的硬件结构框图。如图1所示,计算机终端10(或移动设备10,或服务器10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(BUS总线)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备,或服务器)中的其他元件中的任意一个内。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的图像处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的图像处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备,或服务器)的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算机设备(或移动设备,或服务器)可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算机设备(或移动设备,或服务器)中的部件的类型。
图1示出的硬件结构框图,不仅可以作为上述计算机终端10(或移动设备)的示例性框图,还可以作为上述服务器的示例性框图,一种可选实施例中,图2以框图示出了使用上述图1所示的计算机终端10(或移动设备)作为接收端的一种实施例。如图2所示,计算机终端10(或移动设备)可以经由数据网络连接或电子连接到一个或多个客户端20。一种可选实施例中,上述计算机终端10(或移动设备)可以是服务器。数据网络连接可以是局域网连接、广域网连接、因特网连接,或其他类型的数据网络连接。计算机终端10(或移动设备)可以向客户端提供网络服务。网络服务是基于网络的用户服务,诸如社交网络、云资源、电子邮件、在线支付或其他在线应用。
在上述运行环境下,本申请提供了如图3所示的图像处理方法。图3是根据本申请实施例1的一种图像处理方法的流程图。如图3所示,该方法包括如下步骤:
步骤S302,获取原始图像和二值序列,其中,二值序列用于生成嵌入至原始图像中的水印。
上述步骤中的原始图像可以是单通道灰度图像,在实际使用过程中,可以使用任意的单通道图像,例如,RGB、YUV等颜色空间分出的某一个颜色通道。上述步骤中的二值序列可以是具有一定长度的一维二值序列,其元素由0和1构成。一般情况下,二值序列的长度L可以在20-40之间,但不仅限于此,也可以是其他合适的长度。二值序列是水印添加者主动构造的一种确定的标识,不是随意设定的信息,用于判断图像中是否嵌入了水印,并且用于计算图像的旋转缩放系数。
需要说明的是,二值序列的构造满足如下至少一个条件:从二值序列的首部遍历至二值序列尾部得到的遍历结果与从二值序列的尾部遍历至二值序列首部得到的遍历结果不同;在由两个二值序列首尾相连构成的新的二值序列中,与二值序列相同的子序列的起始位置未位于二值序列的内部;二值序列中0的数量与1的数量的差值处于第一预设范围内。
具体地,以二值序列满足上述三个条件为例进行说明。三个条件分别为单向性、弱周期性和二值元素数量均衡性。通过上述三个条件构造出来的二值序列可以显著提升检测效果。
其中,单向性可以是指二值序列的非对称性,也即从二值序列的首部到尾部和从尾部到首部不同。例如,二值序列{010010001}具有单向性,从首部到尾部的序列为{010010001},而从尾部到首部的序列为{100010010},两者不相同;二值序列{00100100}不具备单向性,因为从首部到尾部的序列为{00100100},从尾部到首部的序列为{00100100},两者相同。
弱周期性可以是指将两个序列首尾相连,不存在从原始序列内部起始的与序列相同或相似的子序列。例如,二值序列{010010001}具备弱周期性,将两个该序列首位相接,得到新序列{010010001010010001},在新序列中,与原始序列相同的子序列的起始序列位置是第1位和第10位,都是位于原始序列的第1位,不存在从原始序列内部起始的与原始序列相同的子序列;序列{001001001}不具备弱周期性,将两个该序列首位相接,得到新序列{001001001001001001};在新序列中,与原始序列相同的子序列的起始序列位置是第1、4、7、10位,其中第4、7位在原始序列的内部,即子序列{001{001001001}001001}和{001001{001001001}001}与原始序列相同,因此不具备弱周期性。
二值元素数量均衡性可以是指二值序列中0和1的数量在第一预设范围内,相差不大,第一预设范围可以在实际使用过程中根据需要进行设置,本申请对此不作限定。例如,二值序列{01010011}中,0的数量为4,1的数量为4,也即0、1元素数量均衡;而二值序列{00000001}中,0的数量为7,1的数量为1,也即0、1元素数量不均衡,故序列{01010011}二值元素数量均衡性要优于序列{00000001}。
步骤S304,基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像,其中,目标图像中含有水印。
在一种可选的实施例中,利用二维傅里叶变换的旋转、平移不变性,并且利用缩放对傅里叶频谱的影响,可以基于水印添加者主动构造的二值序列对原始图像的傅里叶变换系数进行修改,使得原始图像的傅里叶变换系数具有二值序列的特征,实现在原始图像中嵌入水印的目的。
基于本申请上述实施例提供的方案,在获取到原始图像之后,可以获取用于生成水印的二值序列,并基于二值序列对原始图像的傅里叶变换系数进行修改,得到含有水印的图像,实现水印嵌入的目的。与现有技术相比,通过对原始图像的傅里叶变换系数进行修改,利用二维傅里叶变换的特性,使得目标图像具有强鲁棒性,可以应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的联合攻击,并且具有嵌入速度快、计算简单、应用场景广阔的技术效果,进而解决了相关技术中图像处理方法无法应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的技术问题。
本申请上述实施例中,基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像包括:对原始图像进行二维傅里叶变换,得到第一傅里叶变换系数;获取第一傅里叶变换系数中的待修改系数集合和修改强度,其中,待修改系数集合包含的多个待修改系数与二值序列包含的多个元素一一对应;基于每个待修改系数对应的元素的值和修改强度,对每个待修改系数的幅值进行修改,得到修改后的傅里叶变换系数,其中,修改强度用于表征对幅值进行扩大的程度;对修改后的傅里叶变换系数进行反变换,得到目标图像。
具体地,上述的待修改系数集合可以是从所有傅里叶变换系数中筛选出来的系数,数量与二值序列的长度相同,可以基于二值序列中每个元素的元素值,对相应的系数进行修改。修改强度可以是指符合修改条件的傅里叶变换系数扩大幅值的程度,可以根据原始图像自身的特点设定自适应的计算方法获得,也可以是提前设置的,本申请对此不作限定。
在一种可选的实施例中,可以对原始图像进行二维离散傅里叶变换,得到原始图像的傅里叶变换系数,从所有的傅里叶变换系数中筛选出需要修改的系数,基于二值序列中对应元素的元素值和修改强度,对相应系数的幅值进行扩大,实现将二值序列嵌入到傅里叶变换系数中,进一步通过将含有嵌入信息的傅里叶变换系数进行反变换,可以得到最终含有水印的图像。
本申请上述实施例中,获取第一傅里叶变换系数中的待修改系数集合包括:确定第一傅里叶变换系数的中心为圆环的圆心;基于二值序列的长度确定圆环的单位角度;基于获取到的预设系数和原始图像的尺寸,确定圆环的半径;基于圆心、单位角度和半径,确定待修改系数集合中的每个待修改系数。
在本申请实施例中,可以采用圆环形的方式将二值序列嵌入到傅里叶变换系数中。其中,基于二值序列的长度确定圆环的单位角度包括:获取预设角度与长度的比值,得到单位角度;基于获取到的预设系数确定圆环的半径包括:基于原始图像的尺寸确定目标长度;获取预设系数与目标长度的乘积;获取乘积与第一预设值的比值,得到半径。
具体地,上述步骤中的预设系数可以是用于控制嵌入圆环半径的系数,以p表示,是0到1之间的小数,例如可以是在0.2-0.8之间的小数。由于二维傅里叶变换系数是中心对称的,上述的预设角度可以是180°,在系数修改之后,与该系数关于圆心对称的系数可以按照相同的方式进行修改,从而二值序列覆盖的角度为180°,关于中心对称后,整个360°都会被覆盖。由于原始图像的尺寸并不固定,为了方便将二值序列以圆环形的方式嵌入至原始图像中,可以将原始图像补全成正方形图像,因此,在原始图像为正方形图像的情况下,目标长度可以是原始图像的长度;在原始图像不是正方形图像的情况下,目标长度可以是补全后的正方形图像的边长,以d表示。
在一种可选的实施例中,首先可以根据二值序列的长度L,计算单位角度θ,例如,然后以二维傅里叶变换系数矩阵的中心为圆心,以x轴正方向为0°,以逆时针方向为角度增加方向,并且以单位角度θ为每次递增的角度值,并且根据预设系数p和目标长度d计算半径长度r,半径(也即,上述的第一预设值为2)。根据圆心、单位角度和半径可以找到需要修改的系数的位置,从而确定待修改系数。
本申请上述实施例中,基于每个待修改系数对应的元素的值和修改强度,对每个待修改系数的幅值进行修改包括:判断每个待修改系数对应的元素的值是否为1;如果任意一个待修改系数对应的元素的值是1,则按照修改强度,对任意一个待修改系数的幅值进行扩大。
在一种可选的实施例中,基于二值序列对需要修改的系数进行修改的修改规则如下:如果二值序列中的元素的值为0,则无需对相应的系数进行修改;如果二值序列中的元素的值为1,则需要对相应的系数进行修改,根据修改强度对该系数的幅值进行扩大。
本申请上述实施例中,按照修改强度,对任意一个待修改系数的幅值进行扩大包括如下之一:将任意一个待修改系数的幅值扩大至修改强度;获取任意一个待修改系数的幅值与修改强度的乘积。
在一种可选的方案中,对傅里叶变换系数扩大幅值的方式可以根据实际情况进行设定,例如,可以将修改强度作为修改目标,也可以将修改强度作为扩大倍数。例如,假设使用预设的修改强度E=100作为修改目标,修改的傅里叶变换系数为10+5i,该系数的幅值为如果将该幅值扩大至修改强度E=100,则需要扩大倍,因此扩展后的系数为(10+5i)*8.94=89.4+44.7i;如果将修改强度作为扩大倍数使用,则直接在系数上乘以该修改强度即可,因此扩展后的系数为(10+5i)*100=100+500i。
本申请上述实施例中,在获取修改强度之前,该方法还包括:对第一傅里叶变换系数进行偏移操作,得到偏移后的傅里叶变换系数;获取偏移后的傅里叶变换系数的幅值中的最大幅值;基于最大幅值,得到修改强度。
在一种可选的实施例中,在得到傅里叶变换系数之后,可以对傅里叶变化系数进行shift操作,并计算经过shift操作之后的傅里叶变换系数的幅值,求出所有幅值的最大幅值,并根据最大幅值按照比例获得,例如,最大幅值为100,比例为0.1,则修改强度可以是100*0.1=10。
本申请上述实施例中,在对原始图像进行二维傅里叶变换,得到第一傅里叶变换系数之前,该方法还包括:对原始图像进行尺寸补全,得到补全后的图像;对补全后的图像进行二维傅里叶变换,得到第一傅里叶变换系数。
为了提升傅里叶变换的速度,便于圆环嵌入与提取,可以对原始图像进行补全,将原始图像补全到合适尺寸,使得补全后的图像成为正方形图像,然后对补全后的图像执行二维傅里叶变换,得到傅里叶变换系数,并基于二值序列对上述傅里叶变换系数进行修改,实现在原始图像中嵌入水印的目的。
本申请上述实施例中,对原始图像进行尺寸补全,得到补全后的图像包括:获取原始图像的最长边长;基于最长边长,确定目标边长,其中,目标边长大于最长边长,且目标边长为第二预设值的倍数;按照目标边长对原始图像进行尺寸补全,得到补全后的图像,其中,补全后的图像为正方形图像,补全后的图像中除原始图像部分之外的所有像素的像素值为第三预设值。
具体地,上述的第二预设值可以是2或3或5,但不见限于此。为了避免补全后的图像对原始图像的影响,上述的第三预设值可以是0。
在一种可选的方案中,图像补全的方法如下:选择原始图像中较长的变长,即l=max(w,h),然后计算大于等于l的最小的能够被2或3或5整除的数,令其为d,则将图像尺寸补全至d*d,补全使用的像素值为0。例如:图像的尺寸为19*23,较长的边长为23,那么能够被2或3或5整除的最小的大于等于23的数为24,所以需要将图像补全至尺寸为24*24。
需要说明的是,在图像补全时,原始图像可以位于左上角,右下补全部分的像素值为0。
本申请上述实施例中,在对修改后的傅里叶变换系数进行反变换,得到目标图像之前,该方法还包括:基于原始图像的尺寸,对目标图像进行裁剪。
在一种可选的方案中,由于二值序列嵌入至补全后的正方形图像中,为了确保最终得到的目标图像与原始图像的尺寸相同,在得到含有水印的补全尺寸的图像之后,可以根据原始图像的尺寸,将补全尺寸的图像裁剪成原始大小,得到最终的含有水印的图像。
下面结合图4和图5对本申请一种优选的实施例进行详细说明,如图4所示,该方法包括如下步骤:
步骤S41,输入载体图像和预设参数,预设参数包括:预设模板序列和标定频率位置;
可选地,上述步骤中的载体图像可以是需要嵌入水印的原始图像,上述步骤中的预设模板序列可以是具有一定长度的二值序列,标定频率位置可以是用于控制嵌入圆环半径的系数。
步骤S42,对载体图像进行尺寸补全,对补全的图像执行DFT变换,得到DFT系数;
可选地,可以对载体图像进行尺寸补全,补全成正方形图像,然后对补全的图像执行二维傅里叶变换,得到二维傅里叶变换系数。
步骤S43,对DFT系数执行shift操作,然后计算系数的幅值;
可选地,可以对傅里叶变换系数执行shift操作,并计算经过shift之后的二维傅里叶变换系数的幅值;
步骤S44,根据幅值中的最大值计算嵌入强度;
可选地,上述的嵌入强度可以是指将符合修改条件的系数扩大幅值的程度,可以求出二维傅里叶变换系数的幅值中的最大值,并根据最大值或其他规则计算嵌入强度。
步骤S45,根据模板序列、标定频率位置和嵌入强度,在DFT系数中嵌入圆环状模板序列;
可选地,可以根据模板序列、标定频率位置和嵌入强度,修改傅里叶变换系数,将模板序列以圆环形嵌入到傅里叶变换系数中,圆环的半径由标定频率位置确定。
步骤S46,将嵌入模板序列的DFT系数反变换,得到具有补全尺寸的图像;
可选地,可以将含有嵌入信息的傅里叶变换系数进行反变换,得到含有模板水印信息的补全尺寸的图像。
步骤S47,将补全尺寸的图像裁剪成原始大小,得到含模板水印的图像。
可选地,可以根据载体图像的尺寸,将补全尺寸的图像裁剪成原始大小。
如图5所示,设定的模板序列为{0100101100010111110010001010100000},标定频率位置为0.5,原始载体图像尺寸为512*430,补全图像的尺寸为512*512,对补全图像进行二维傅里叶变换,并且将低频系数移动到图像中心,求系数绝对值后得到频谱图像。模板序列长度L=34,单位角度设定嵌入强度为100,将半径为128的圆环上对应的系数的修改至指定的大小,修改过后的系数频谱图可以如图5中的“含水印频谱图像”所示。进一步将修改过后的系数使用逆傅里叶变换转换成空域图像。由于该图像的尺寸是补全后的尺寸,所以需要将该含水印补全图像的补全部分切除,得到含水印的图像。
本申请上述实施例中,基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像包括:基于二值序列对预设图像的第二傅里叶变换系数进行修改,生成水印图像,其中,预设图像中所有像素的像素值均为第四预设值;获取水印图像与预设图像之差,得到母空域模板;基于原始图像的尺寸,对母空域模板进行裁剪,得到空域模板;将空域模板与原始图像进行叠加,得到目标图像。
具体地,上述步骤中的第四预设值可以是128,但不仅限于此。上述步骤中的预设图像可以为正方形图形,预设图像的尺寸大于原始图像,且预设图像的边长为第二预设值的倍数。
在本申请实施例中,如图6所示,生成母空域模板的方法如下:二值序列为{0100101100010111110010001010100000},标定频率位置为0.5。首先构造所有像素的像素值为128的正方形灰度图像,该图像的尺寸大于等于原始图像的尺寸,而且变长是2或3或5的倍数;对正方形灰度图像进行二维傅里叶变换,得到傅里叶变换系数;设定修改强度,根据二值序列、预设系数和修改强度,修改傅里叶变换系数,将二值序列以圆环形嵌入到傅里叶变换系数中(如图6中的“含水印频谱图像”所示);将经过修改的系数进行反变换,得到水印图像(如图6中的“含水印图像”所示);将水印图像减去正方形灰度图像,得到残差,该残差就是生成的母空域模板(如图6中的“差值模板图像”所示)。
需要说明的是,对母空域模板进行裁剪的方法可以是获取母空域模板的中心部分,并且该部分的尺寸与原始图像的尺寸相同。
通过上述步骤,可以根二值序列生成空域模板,从而可以显著的减少嵌入过程耗费的时间,并且提升了水印的不可感知性。
本申请上述实施例中,将空域模板与原始图像进行叠加,得到目标图像包括:获取原始图像的权重值;获取权重值,预设比例系数和空域模板的乘积,得到乘积图像;获取原始图像与乘积图像之和,得到目标图像。
具体地,上述步骤中的权重值可以是指模板叠加时使用的局部权重,通过权重值可以调整水印的局部修改强度,也即可以将平滑区域的修改强度降低,并将非平滑区域的修改强度增加,从而降低肉眼对空域模板的注意,同时增强水印提取时的效果。上述的预设比例系数可以在实际使用中进行设置,本申请对此不作具体限定。
在一种可选的实施例中,原始图像用I标识,权重值用g表示,空域模板用w表示,预设比例系数用α表示,含水印的图像用于Iw可以通过如下公式得到:Iw(x,y)=I(x,y)+α*g(x,y)*w(x,y)。
本申请上述实施例中,获取原始图像的权重值包括:获取二维滤波矩阵;利用二维滤波矩阵对原始图像进行滤波,得到权重值。
具体地,上述步骤中的二维滤波矩阵可以如下公式所示,但不仅限于此:
在一种可选的实施例中,可以使用预先构建的二维滤波矩阵对原始图像进行滤波,得到滤波结果就是权重值。
下面结合图7对本申请一种优选的实施例进行详细说明,如图7所示,该方法包括如下步骤:
步骤S71,输入载体图像和预设参数,预设参数包括:预设模板序列和标定频率位置;
可选地,上述步骤中的载体图像可以是需要嵌入水印的原始图像,上述步骤中的预设模板序列可以是具有一定长度的二值序列,标定频率位置可以是用于控制嵌入圆环半径的系数。
步骤S72,根据图像内容,计算自适应增益;
可选地,上述步骤中的自适应增益可以是指模板叠加时使用的局部权重,用于调整水印的局部强度。
步骤S73,生成空域模板;
可选地,可以根据模板序列和标定频率位置生成空域模板。
步骤S74,根据自适应增益,将空域模板叠加在载体图像上。
本申请上述实施例中,在得到目标图像之后,该方法还包括:获取检测图像;基于检测图像的第三傅里叶变换系数,生成目标幅值图像;利用二值序列对目标幅值图像进行滤波,得到第一滤波结果;基于第一滤波结果确定检测图像的检测结果,其中,检测结果用于表征检测图像中是否存在水印。
具体地,上述步骤中的检测图像可以是需要检测是否含有水印的图像,可以是上述的目标图像,也可以是其他图像。由于原始图像中嵌入的水印采用圆环形,因此,目标幅值图像可以是极坐标幅值图像。
在本申请实施例中,基于上述嵌入水印的方法可知,含有水印的图像中,傅里叶变换系数具有水印添加者主动构造的二值序列的特征,可以利用相关方法,例如,利用信号的相关性去检测该特征,实现水印检测的目的。如图8所示,在极坐标幅值图像的相关性结果中显示有两个白色方框,表示这两个位置在图像没有经过旋转和缩放的时候容易出现峰值。因此,通过对极坐标幅值图像进行滤波,可以确定检测图像是否存在水印。
在一种可选的实施例中,利用二维傅里叶变换的旋转、平移不变性,也利用了缩放对傅里叶频谱的影响。在获取到需要进行水印检测的检测图像之后,可以对检测图像进行二维傅里叶变换,得到二维傅里叶变换系数,将二维傅里叶变换系数映射到极坐标系中,生成极坐标幅值图像,并利用二值序列对极坐标幅值图像进行滤波,从而可以确定检测图像中是否存在水印。
通过上述步骤,通过利用二值序列对目标幅值图像进行滤波,从而可以显著的提升检测效果与准确性。
本申请上述实施例中,基于检测图像的第三傅里叶变换系数,生成目标幅值图像包括:对检测图像进行二维傅里叶变换,得到第三傅里叶变换系数;剔除第三傅里叶变换系数的幅值中满足预设条件的幅值;将处理后的幅值映射至极坐标系中,得到第一幅值图像;获取第一幅值图像与第一幅值图像的均值的差值,得到目标幅值图像。
具体地,上述步骤中的满足预设条件的峰值可以是无关峰值,也即满足预设条件的峰值可以是第三傅里叶变换系数对应的第二幅值图像中,处于第二预设范围内的幅值。第二幅值图像可以是傅里叶变换系数的幅值图像,第二预设范围可以是指未嵌入水印的位置,例如,对于图5中所示的“含水印频谱图像”,无关峰值就是中心呈白色的部分,这些峰值会影响后续的水印提取,所以要使用算法将其去除,去除前后的效果如图9中的“频谱图像”和“去除无关峰值的频谱图像”所示。
在一种可选的实施例中,可以对检测图像进行二维傅里叶变换,得到二维傅里叶变换系数,计算二维傅里叶变换系数的幅值,然后去除幅值中的无关峰值,将经过处理的幅值映射到极坐标系中,得到第一幅值图像,将第一幅值图像减去第一幅值图像的均值,可以得到用于滤波的极坐标幅值图像。
本申请上述实施例中,剔除第三傅里叶变换系数的幅值中满足预设条件的幅值包括:获取预设滤波矩阵;利用预设滤波矩阵对第二幅值图像进行滤波,得到第二滤波结果;基于第二幅值图像、第二滤波结果和第一预设阈值,得到处理后的幅值。
具体地,上述步骤中的第一预设阈值可以是根据水印检测准确度确定的需要去除的无关峰值的阈值,本申请对此不作具体限定。预设滤波矩阵如下公式所示,但不仅限于此:
在一种可选的实施例中,可以输入傅里叶变换系数的幅值图像,可以是一个二维矩阵A,并且输入预设阈值Th;利用上述公式对幅值图像进行滤波,得到滤波结果F;根据如下公式得到去除无关峰值后的结果R:
本申请上述实施例中,在利用预设滤波矩阵对第二幅值图像进行滤波之前,该方法还包括:对二幅值图像进行高斯滤波,得到第三滤波结果;利用预设滤波矩阵对第三滤波结果进行滤波,得到第二滤波结果。
在一种可选的实施例中,可以输入傅里叶变换系数的幅值图像,可以是一个二维矩阵A,并且输入预设阈值Th;对幅值图像进行高斯滤波,得到低频结果L;利用上述公式对低频结果L进行滤波,得到滤波结果F;并根据上述公式得到去除无关峰值后的结果R。
本申请上述实施例中,利用二值序列对目标幅值图像进行滤波,得到第一滤波结果包括:基于二值序列生成二维检测矩阵;利用二维检测矩阵对目标幅值图像进行滤波,得到第一滤波结果。
具体地,二维检测矩阵可以是一个与极坐标幅值图像大小相同的二维矩阵。
在一种可选的实施例中,二维检测矩阵的生成可以是将二值序列转换为二维矩阵的过程,该生成过程不只一种,生成的原则是将模板序列转化成与之对应的具有序列特征的矩阵。
本申请上述实施例中,基于二值序列生成二维检测矩阵包括:构建目标矩阵,其中,目标矩阵中每个元素的值为第五预设值,目标矩阵的高基于目标幅值图像的高确定;基于二值序列的长度,得到平均分割距离;基于二值序列中每个第一元素的值,对目标矩阵中对应的第二元素的值进行修改,其中,对应的元素由每个元素和平均分割距离确定;获取修改后的目标矩阵与修改后的目标矩阵的均值之差,得到二维检测矩阵。
具体地,上述步骤中的目标矩阵可以是二维全零矩阵K,也即,上述的第五预设值为0。该矩阵的高为H/2,宽为w,其中,H为极坐标系幅值图像的高,w可以根据实际使用进行自定义,例如,w的取值可以是2或3。
需要说明的是,假设二值序列中每个元素所处的位数为x,对应的元素可以是二维全零矩阵K中第D*x行的全部元素,还可以是第D*x、(D*x-1)和(D*x+1)行的全部元素。
在一种可选的实施例中,可以根据极坐标系幅值图像的高H,构造一个二维全零矩阵K;设二值序列的长度为L,求出序列的平均分隔距离对于二值序列中每个元素的元素值,可以确定是否对二维全零矩阵中某些行的元素进行修改;在修改完成之后,可以将修改过的矩阵K减去L的均值,得到二维检测矩阵。
本申请上述实施例中,基于二值序列中每个第一元素的值,对目标矩阵中对应的第二元素的值进行修改包括:判断每个第一元素的值是否为1;如果任意一个第一元素的值是1,则将任意一个第一元素对应的第二元素的值修改为第六预设值。
具体地,上述的第六预设值可以是255,但不仅限于此。
在一种可选的实施例中,如果元素值为1,则对二维全零矩阵进行修改,将二维矩阵中相应行的元素全部设置为255;如果元素值为0,则不对二维全零矩阵进行修改。
本申请上述实施例中,基于第一滤波结果确定检测图像的检测结果包括:获取第一滤波结果中的最大值;判断最大值是否大于第二预设阈值;如果最大值大于第二预设阈值,则确定检测结果为检测图像中存在水印;如果最大值小于等于第二预设阈值,则确定检测结果为检测图像中不存在水印。
具体地,上述步骤中的第二预设阈值可以是用于确定检测图像是否含有水印,提前设置的一个值,本申请对此不作具体限定。
在一种可选的实施例中,在求出滤波结果中的元素最大值之后,如果滤波结果中的最大值大于上述第二预设阈值,则可以认为检测图像中含有水印,否则可以认为检测图像中不含有水印。
本申请上述实施例中,在确定检测结果为检测图像中存在水印之后,该方法还包括:获取最大值在极坐标系中对应的半径和角度;基于半径和补全后的图像的边长,确定缩放系数;基于角度确定旋转系数。
在一种可选的实施例中,在求出滤波结果中的元素最大值之后,可以获取该最大值所在极坐标中对应的半径和角度,进一步根据半径和角度计算旋转和缩放系数。其中,旋转角度可以是最大值对应的角度θ,或者是θ+180°;缩放系数可以通过如下公式得到:
D=0.5/r/size/2,其中,size是指对检测图像进行补全成正方形后的图像的边长,r为半径。
本申请上述实施例中,该方法还包括:获取二值序列的逆序序列;利用逆序序列对目标幅值图像进行滤波,得到第三滤波结果;基于第三滤波结果确定检测结果;在检测结果为检测图像中存在水印的情况下,基于缩放系数和旋转系数对检测图像进行校正;对校正后的图像进行镜面翻转,得到原始图像。
在一种可选的实施例中,本申请实施例提供的方案不仅可以实现水印的存在性检测,还可以进行图像的矫正。当需要确认检测图像是否为盗图时,可以进行镜面攻击的检测,具体方法可以是根据二值序列生成一个逆序的模板序列,例如二值序列为{0101001},那么它的逆序模板序列为{1001010},然后进行正常的检测过程。如果使用逆序模板序列同样可以得到含有水印的结论,则可以按照计算出的逆转和缩放系数进行矫正,进一步对校正过的图像进行镜面翻转,可以得到原始图像。
本申请上述实施例中,在获取检测图像之后,该方法还包括:判断检测图像的尺寸是否超过预设尺寸;如果检测图像的尺寸超过预设尺寸,则基于第三预设阈值,获取检测图像的子图像,并获取子图像对应的极坐标系下的目标幅值图像;如果检测图像的尺寸未超过预设尺寸,则获取检测图像对应的极坐标系下的目标幅值图像。
具体地,上述的预设尺寸可以是确定检测图像为较大图像的尺寸,例如,可以是1000*1000的图像。图像的尺寸较大时,检测耗时会上升。为了降低检测时间,并且不影响检测结果,则可以从检测图像中截取一定尺寸的部分图像进行检测。
在一种可选的实施例中,在获取到检测图像之后,判断检测图像是否为较大图像,也即检测图像的尺寸超过预设尺寸,如果超过,则可以截取一定尺寸的子图像,并将子图像的傅里叶变换系数映射至极坐标系,得到极坐标幅值图像;如果未超过,则可以直接将检测图像的傅里叶变换系数映射至极坐标系,得到极坐标幅值图像。
需要说明的是,截取的子图像的尺寸需要与预设阈值相匹配,例如,如果阈值为200,则子图像的尺寸为256*256;如果阈值为300,则子图像的尺寸为512*512,预设阈值可以根据实际使用进行设定。
还需要说明的是,为了避免截取的子图像的尺寸过小,会影响检测效果,子图像的尺寸大于等于200*200。
本申请上述实施例中,在获取检测图像对应的极坐标系下的目标幅值图像之前,该方法还包括:对检测图像进行尺寸补全,得到补全后的图像;获取补全后的图像对应的极坐标系下的目标幅值图像。
在一种可选的实施例中,与水印嵌入的方法相似,可以对检测图像或截取后的子图像进行尺寸补全,然后对补全的图像进行二维傅里叶变换,得到傅里叶变换系数,并对傅里叶变换系数执行shift操作,进一步计算经过shift操作之后的二维傅里叶变换系数的幅值。
本申请上述实施例中,在基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像之前,该方法还包括:接收客户端发送的处理请求;判断处理请求是否为预设处理请求;如果处理请求是预设处理请求,则基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像。
上述步骤中的客户端可以是有水印嵌入需求的用户的智能手机(包括Android手机和IOS手机)、平板电脑、笔记本电脑、IPAD、掌上电脑、个人计算机等设备,本申请对此不作具体限定。
在一种可选的实施例中,当用户需要在原始图像中嵌入水印时,用户可以通过客户端上传原始图像给服务器,此时,处理请求中携带有原始图像,服务器在接收到处理请求之后,采用上述实施例提供的水印嵌入方法在原始图像中嵌入水印,具体可以基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到包含有水印的目标图像。
采用上述实施例提供的水印嵌入方法具有安全性高的优点,但是,成本较高且处理时间较长。对于不同的用户,有些用户需要安全性较高的水印,而有些用户不需要。因此,为了满足用户的不同需求,可以给用户提供选择接口,由用户选择需要使用的水印嵌入方法。在此基础上,可以预先针对采用上述实施例提供的水印嵌入方法,设置相应的标识信息,上述步骤中的预设处理请求可以是携带有预设的标识信息的处理请求。
在一种可选的实施例中,用户在上传原始图像之前,可以对水印嵌入方法进行选择,默认可以是传统的水印嵌入方法,客户端根据用户选择结果生成相应的处理请求。当用户需要采用上述实施例提供的水印嵌入方法在原始图像中嵌入水印时,生成的处理请求中不仅仅携带有原始图像,该携带有预设的标识信息。而当用户采用传统的水印嵌入方法在原始图像中嵌入水印时,生成的处理请求中仅仅携带有原始图像。
本申请上述实施例中,在基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像之前,该方法还包括:检测预设功能开关的当前状态;在当前状态为预设状态的情况下,基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像。
为了满足用户的不同需求,还可以预先设置一个预设功能开关,用户通过触发该预设功能开关,切换不同的状态,不同的状态对应不同的水印嵌入方法,其中,上述步骤中的预设状态可以是上述实施例提供的水印嵌入方法对应的状态,例如,预设功能开关默认为打开状态,与上述实施例提供的水印嵌入方法相对应。
在一种可选的实施例中,当用户需要采用上述实施例提供的水印嵌入方法在原始图像中嵌入水印时,用户无需触发预设功能开关,此时预设功能开关的当前状态为预设状态。当用户采用传统的水印嵌入方法在原始图像中嵌入水印时,用户触发预设功能开关,将当前状态切换为非预设状态。
下面结合图9和图10对本申请一种优选的实施例进行详细说明,如图10所示,该方法包括:
步骤S101,输入待检测图像,获取预设参数包括:预设模板序列和标定频率位置;
可选地,上述步骤中的载体图像可以是需要嵌入水印的原始图像,上述步骤中的预设模板序列可以是具有一定长度的二值序列,标定频率位置可以是用于控制嵌入圆环半径的系数。如果待检测图像尺寸较大,可以截取图像的部分内容用于检测,可以加快检测时间。
步骤S102,对待检测图像进行尺寸补全,对补全的图像执行DFT变换,得到DFT系数;
可选地,可以对补全的图像执行二维傅里叶变换,得到二维傅里叶变换系数;对二维傅里叶变换系数执行shift操作;计算经过shift之后的二维傅里叶变换系数的幅值。
步骤S103,对DFT系数进行幅值计算,然后降低幅值中的无关峰值;
可选地,可以计算二维傅里叶变换系数的幅值,并去除幅值中最大且连续的点。
步骤S104,将上述幅值结果进行极坐标转换;
可选地,可以将经过处理的幅值映射到极坐标系中,得到极坐标幅值图,将极坐标幅值图减去极坐标幅值图的均值,得到用于滤波的极坐标幅值图。
步骤S105,根据模板序列,生成二维检测核;
可选地,上述步骤中的二维检测核可以是上述的二维检测矩阵。
步骤S106,计算极坐标系下的幅值与二维检测核的相关性;
可以地,可以使用该二维检测核对极坐标幅值图进行滤波,得到滤波结果。
步骤S107,求出相关结果中的最大值,并求出该值对应的角度和半径;
可以地,可以求出滤波结果中的元素最大值,并且获取该最大值在极坐标中对应的半径和角度。
步骤S108,判断最大值是否超过阈值;
可选地,如果是,则进入步骤S109,如果否,则进入步骤S110。
步骤S109,根据半径和角度计算旋转和缩放系数;
可选地,若滤波结果中的最大值超过阈值,则认为图像含有水印,并根据半径和角度计算旋转和缩放系数。
步骤S110,无法检测出水印。
可选地,若滤波结果中的最大值未超过阈值,则认为图像中不含有水印。
如图9所示,首先将待测图像进行补全,然后通过傅里叶变换和shift得到系数的幅值频谱图像,然后去除无关峰值,得到去除无关峰值的频谱图像,并将其转化到极坐标中,减去均值后得到用于滤波的极坐标图。之后根据预设的模板序列构建二维检测核,并对上述极坐标图进行滤波,得到滤波结果,求出滤波结果中的最大值及所在位置对应的半径和角度,若最大值大于预设的阈值,则可以判断图像中存在水印,并且可以根据半径和角度计算旋转和缩放系数用于后续的校正,反之则判断图像不含水印。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
根据本申请实施例,还提供了一种图像处理方法。图11是根据本申请实施例2的一种图像处理方法的流程图。如图11所示,该方法包括如下步骤:
步骤S112,获取检测图像和二值序列,其中,二值序列用于生成检测图像中包含的水印。
具体地,上述步骤中的检测图像可以是需要检测是否含有水印的图像,可以是上述的目标图像,也可以是其他图像。由于原始图像中嵌入的水印采用圆环形,因此,目标幅值图像可以是极坐标幅值图像。
需要说明的是,二值序列的构造满足如下至少一个条件:从二值序列的首部遍历至二值序列尾部得到的遍历结果与从二值序列的尾部遍历至二值序列首部得到的遍历结果不同;在由两个二值序列首尾相连构成的新的二值序列中,与二值序列相同的子序列的起始位置未位于二值序列的内部;二值序列中0的数量与1的数量的差值处于第一预设范围内。
具体地,以二值序列满足上述三个条件为例进行说明。三个条件分别为单向性、弱周期性和二值元素数量均衡性。通过上述三个条件构造出来的二值序列可以显著提升检测效果。
其中,单向性可以是指二值序列的非对称性,也即从二值序列的首部到尾部和从尾部到首部不同。弱周期性可以是指将两个序列首尾相连,不存在从原始序列内部起始的与序列相同或相似的子序列。二值元素数量均衡性可以是指二值序列中0和1的数量在第一预设范围内,相差不大,第一预设范围可以在实际使用过程中根据需要进行设置,本申请对此不作限定。
步骤S114,基于检测图像的傅里叶变换系数,生成目标幅值图像。
在本申请实施例中,如图8所示,在极坐标幅值图像的相关性结果中显示有两个白色方框,表示这两个位置在图像没有经过旋转和缩放的时候容易出现峰值。因此,通过对极坐标幅值图像进行滤波,可以确定检测图像是否存在水印。
步骤S116,利用二值序列对目标幅值图像进行滤波,得到第一滤波结果。
在本申请实施例中,基于上述嵌入水印的方法可知,含有水印的图像中,傅里叶变换系数具有水印添加者主动构造的二值序列的特征,可以利用相关方法,例如,利用信号的相关性去检测该特征,实现水印检测的目的。
步骤S118,基于第一滤波结果确定检测图像的检测结果,其中,检测结果用于表征检测图像中是否存在水印。
在一种可选的实施例中,利用二维傅里叶变换的旋转、平移不变性,也利用了缩放对傅里叶频谱的影响。在获取到需要进行水印检测的检测图像之后,可以对检测图像进行二维傅里叶变换,得到二维傅里叶变换系数,将二维傅里叶变换系数映射到极坐标系中,生成极坐标幅值图像,并利用二值序列对极坐标幅值图像进行滤波,从而可以确定检测图像中是否存在水印。
基于本申请上述实施例提供的方案,在获取到检测图像之后,可以基于检测图像的傅里叶变换系数,生成目标幅值图像,并获取用于生成水印的二值序列,进一步利用二值序列对目标幅值图像进行滤波,得到第一滤波结果,从而基于第一滤波结果确定检测图像中是否存在水印,实现水印检测的目的。与现有技术相比,利用二维傅里叶变换的特性,使得检测图像具有强鲁棒性,可以应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的联合攻击,并且利用二值序列对目标幅值图像进行滤波,可以显著的提升检测效果与准确性,进而解决了相关技术中图像处理方法无法应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的技术问题。
本申请上述实施例中,基于检测图像的第三傅里叶变换系数,生成目标幅值图像包括:对检测图像进行二维傅里叶变换,得到第三傅里叶变换系数;剔除第三傅里叶变换系数的幅值中满足预设条件的幅值;将处理后的幅值映射至极坐标系中,得到第一幅值图像;获取第一幅值图像与第一幅值图像的均值的差值,得到目标幅值图像。
本申请上述实施例中,剔除第三傅里叶变换系数的幅值中满足预设条件的幅值包括:获取预设滤波矩阵;利用预设滤波矩阵对第二幅值图像进行滤波,得到第二滤波结果;基于第二幅值图像、第二滤波结果和第一预设阈值,得到处理后的幅值。
本申请上述实施例中,在利用预设滤波矩阵对第二幅值图像进行滤波之前,该方法还包括:对二幅值图像进行高斯滤波,得到第三滤波结果;利用预设滤波矩阵对第三滤波结果进行滤波,得到第二滤波结果。
本申请上述实施例中,利用二值序列对目标幅值图像进行滤波,得到第一滤波结果包括:基于二值序列生成二维检测矩阵;利用二维检测矩阵对目标幅值图像进行滤波,得到第一滤波结果。
本申请上述实施例中,基于二值序列生成二维检测矩阵包括:构建目标矩阵,其中,目标矩阵中每个元素的值为第五预设值,目标矩阵的高基于目标幅值图像的高确定;基于二值序列的长度,得到平均分割距离;基于二值序列中每个第一元素的值,对目标矩阵中对应的第二元素的值进行修改,其中,对应的元素由每个元素和平均分割距离确定;获取修改后的目标矩阵与修改后的目标矩阵的均值之差,得到二维检测矩阵。
本申请上述实施例中,基于二值序列中每个第一元素的值,对目标矩阵中对应的第二元素的值进行修改包括:判断每个第一元素的值是否为1;如果任意一个第一元素的值是1,则将任意一个第一元素对应的第二元素的值修改为第六预设值。
本申请上述实施例中,基于第一滤波结果确定检测图像的检测结果包括:获取第一滤波结果中的最大值;判断最大值是否大于第二预设阈值;如果最大值大于第二预设阈值,则确定检测结果为检测图像中存在水印;如果最大值小于等于第二预设阈值,则确定检测结果为检测图像中不存在水印。
本申请上述实施例中,在确定检测结果为检测图像中存在水印之后,该方法还包括:获取最大值在极坐标系中对应的半径和角度;基于半径和补全后的图像的边长,确定缩放系数;基于角度确定旋转系数。
本申请上述实施例中,该方法还包括:获取二值序列的逆序序列;利用逆序序列对目标幅值图像进行滤波,得到第三滤波结果;基于第三滤波结果确定检测结果;在检测结果为检测图像中存在水印的情况下,基于缩放系数和旋转系数对检测图像进行校正;对校正后的图像进行镜面翻转,得到原始图像。
本申请上述实施例中,在获取检测图像之后,该方法还包括:判断检测图像的尺寸是否超过预设尺寸;如果检测图像的尺寸超过预设尺寸,则基于第三预设阈值,获取检测图像的子图像,并获取子图像对应的极坐标系下的目标幅值图像;如果检测图像的尺寸未超过预设尺寸,则获取检测图像对应的极坐标系下的目标幅值图像。
本申请上述实施例中,在获取检测图像对应的极坐标系下的目标幅值图像之前,该方法还包括:对检测图像进行尺寸补全,得到补全后的图像;获取补全后的图像对应的极坐标系下的目标幅值图像。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例3
根据本申请实施例,还提供了一种用于实施上述图像处理方法的图像处理装置,如图12所示,该装置1200包括:获取模块1202和修改模块1204。
其中,获取模块1202用于获取原始图像和二值序列,其中,二值序列用于生成嵌入至原始图像中的水印;修改模块1204用于基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像,其中,目标图像中含有水印。
此处需要说明的是,上述获取模块1202和修改模块1204对应于实施例1中的步骤S302至步骤S304,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
本申请上述实施例中,修改模块包括:变换子模块,用于对原始图像进行二维傅里叶变换,得到第一傅里叶变换系数;第一获取子模块,用于获取第一傅里叶变换系数中的待修改系数集合和修改强度,其中,待修改系数集合包含的多个待修改系数与二值序列包含的多个元素一一对应;第一修改子模块,用于基于每个待修改系数对应的元素的值和修改强度,对每个待修改系数的幅值进行修改,得到修改后的傅里叶变换系数,其中,修改强度用于表征对幅值进行扩大的程度;反变换子模块,用于对修改后的傅里叶变换系数进行反变换,得到目标图像。
本申请上述实施例中,第一获取子模块包括:第一确定单元,用于确定第一傅里叶变换系数的中心为圆环的圆心;第二确定单元,用于基于二值序列的长度确定圆环的单位角度;第三确定单元,用于基于获取到的预设系数和原始图像的尺寸,确定圆环的半径;第四确定单元,用于基于圆心、单位角度和半径,确定待修改系数集合中的每个待修改系数。
本申请上述实施例中,第一修改子模块包括:判断单元,用于判断每个待修改系数对应的元素的值是否为1;扩大单元,用于如果任意一个待修改系数对应的元素的值是1,则按照修改强度,对任意一个待修改系数的幅值进行扩大。
本申请上述实施例中,扩大单元用于将任意一个待修改系数的幅值扩大至修改强度;或获取任意一个待修改系数的幅值与修改强度的乘积。
本申请上述实施例中,该装置还包括:偏移模块,用于对第一傅里叶变换系数进行偏移操作,得到偏移后的傅里叶变换系数;获取模块还用于获取偏移后的傅里叶变换系数的幅值中的最大幅值;处理模块,用于基于最大幅值,得到修改强度。
本申请上述实施例中,该装置还包括:补全模块,用于对原始图像进行尺寸补全,得到补全后的图像;变换子模块还用于对补全后的图像进行二维傅里叶变换,得到第一傅里叶变换系数。
本申请上述实施例中,补全模块包括:第二获取子模块,用于获取原始图像的最长边长;第一确定子模块,用于基于最长边长,确定目标边长,其中,目标边长大于最长边长,且目标边长为第二预设值的倍数;补全子模块,用于按照目标边长对原始图像进行尺寸补全,得到补全后的图像,其中,补全后的图像为正方形图像,补全后的图像中除原始图像部分之外的所有像素的像素值为第三预设值。
本申请上述实施例中,该装置还包括:裁剪模块,用于基于原始图像的尺寸,对目标图像进行裁剪。
本申请上述实施例中,修改模块还包括:第二修改子模块,用于基于二值序列对预设图像的第二傅里叶变换系数进行修改,生成水印图像,其中,预设图像中所有像素的像素值均为第四预设值;第三获取子模块,用于获取水印图像与预设图像之差,得到母空域模板;裁剪子模块,用于基于原始图像的尺寸,对母空域模板进行裁剪,得到空域模板;叠加子模块,用于将空域模板与原始图像进行叠加,得到目标图像。
本申请上述实施例中,叠加子模块包括:第一获取单元,用于获取原始图像的权重值;第二获取单元,用于获取权重值,预设比例系数和空域模板的乘积,得到乘积图像;第三获取单元,用于获取原始图像与乘积图像之和,得到目标图像。
本申请上述实施例中,第一获取单元包括:获取子单元,用于获取二维滤波矩阵;滤波子单元,用于利用二维滤波矩阵对原始图像进行滤波,得到权重值。
本申请上述实施例中,该装置还包括:获取模块还用于获取检测图像;生成模块,用于基于检测图像的第三傅里叶变换系数,生成目标幅值图像;第一滤波模块,用于利用二值序列对目标幅值图像进行滤波,得到第一滤波结果;第一确定模块,用于基于第一滤波结果确定检测图像的检测结果,其中,检测结果用于表征检测图像中是否存在水印。
本申请上述实施例中,生成模块包括:变换子模块,用于对检测图像进行二维傅里叶变换,得到第三傅里叶变换系数;剔除子模块,用于剔除第三傅里叶变换系数的幅值中满足预设条件的幅值;映射子模块,用于将处理后的幅值映射至极坐标系中,得到第一幅值图像;第四获取子模块,用于获取第一幅值图像与第一幅值图像的均值的差值,得到目标幅值图像。
本申请上述实施例中,剔除子模块包括:第四获取单元,用于获取预设滤波矩阵;滤波单元,用于利用预设滤波矩阵对第二幅值图像进行滤波,得到第二滤波结果;第一处理单元,用于基于第二幅值图像、第二滤波结果和第一预设阈值,得到处理后的幅值。
本申请上述实施例中,该装置还包括:第二滤波模块,用于对二幅值图像进行高斯滤波,得到第三滤波结果;第三滤波模块,用于利用预设滤波矩阵对第三滤波结果进行滤波,得到第二滤波结果。
本申请上述实施例中,第一滤波模块包括:生成子模块,用于基于二值序列生成二维检测矩阵;滤波子模块,用于利用二维检测矩阵对目标幅值图像进行滤波,得到第一滤波结果。
本申请上述实施例中,生成子模块包括:构建单元,用于构建目标矩阵,其中,目标矩阵中每个元素的值为第五预设值,目标矩阵的高基于目标幅值图像的高确定;第二处理单元,用于基于二值序列的长度,得到平均分割距离;修改单元,用于基于二值序列中每个第一元素的值,对目标矩阵中对应的第二元素的值进行修改,其中,对应的元素由每个元素和平均分割距离确定;第五获取单元,用于获取修改后的目标矩阵与修改后的目标矩阵的均值之差,得到二维检测矩阵。
本申请上述实施例中,修改单元包括:判断子单元,用于判断每个第一元素的值是否为1;修改子单元,用于如果任意一个第一元素的值是1,则将任意一个第一元素对应的第二元素的值修改为第六预设值。
本申请上述实施例中,第一确定模块包括:第五获取子模块,用于获取第一滤波结果中的最大值;判断子模块,用于判断最大值是否大于第二预设阈值;第二确定子模块,用于如果最大值大于第二预设阈值,则确定检测结果为检测图像中存在水印,如果最大值小于等于第二预设阈值,则确定检测结果为检测图像中不存在水印。
本申请上述实施例中,该装置还包括:获取模块还用于获取最大值在极坐标系中对应的半径和角度;第二确定模块,用于基于半径和补全后的图像的边长,确定缩放系数;第三确定模块,用于基于角度确定旋转系数。
本申请上述实施例中,获取模块还用于获取二值序列的逆序序列;第一滤波模块还用于利用逆序序列对目标幅值图像进行滤波,得到第三滤波结果;第一确定模块还用于基于第三滤波结果确定检测结果;该装置还包括:校正模块,用于在检测结果为检测图像中存在水印的情况下,基于缩放系数和旋转系数对检测图像进行校正;翻转模块,用于对校正后的图像进行镜面翻转,得到原始图像。
本申请上述实施例中,该装置还包括:判断模块,用于判断检测图像的尺寸是否超过预设尺寸;获取模块还用于如果检测图像的尺寸超过预设尺寸,则基于第三预设阈值,获取检测图像的子图像,并获取子图像对应的极坐标系下的目标幅值图像;获取模块还用于如果检测图像的尺寸未超过预设尺寸,则获取检测图像对应的极坐标系下的目标幅值图像。
本申请上述实施例中,补全模块还用于对检测图像进行尺寸补全,得到补全后的图像;获取模块还用于获取补全后的图像对应的极坐标系下的目标幅值图像。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例4
根据本申请实施例,还提供了一种用于实施上述图像处理方法的图像处理装置,如图13所示,该装置1300包括:获取模块1302、生成模块1304、滤波模块1306和确定模块1308。
其中,获取模块1302用于获取检测图像和二值序列,其中,二值序列用于生成检测图像中包含的水印;生成模块1304用于基于检测图像的傅里叶变换系数,生成目标幅值图像;滤波模块1306用于利用二值序列对目标幅值图像进行滤波,得到第一滤波结果;确定模块1308用于基于第一滤波结果确定检测图像的检测结果,其中,检测结果用于表征检测图像中是否存在水印。
此处需要说明的是,上述获取模块1302、生成模块1304、滤波模块1306和确定模块1308对应于实施例2中的步骤S112至步骤S118,四个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
本申请上述实施例中,生成模块包括:变换子模块,用于对检测图像进行二维傅里叶变换,得到第三傅里叶变换系数;剔除子模块,用于剔除第三傅里叶变换系数的幅值中满足预设条件的幅值;映射子模块,用于将处理后的幅值映射至极坐标系中,得到第一幅值图像;第一获取子模块,用于获取第一幅值图像与第一幅值图像的均值的差值,得到目标幅值图像。
本申请上述实施例中,剔除子模块包括:第一获取单元,用于获取预设滤波矩阵;滤波单元,用于利用预设滤波矩阵对第二幅值图像进行滤波,得到第二滤波结果;第一处理单元,用于基于第二幅值图像、第二滤波结果和第一预设阈值,得到处理后的幅值。
本申请上述实施例中,滤波模块还用于对二幅值图像进行高斯滤波,得到第三滤波结果,利用预设滤波矩阵对第三滤波结果进行滤波,得到第二滤波结果。
本申请上述实施例中,滤波模块包括:生成子模块,用于基于二值序列生成二维检测矩阵;滤波子模块,用于利用二维检测矩阵对目标幅值图像进行滤波,得到第一滤波结果。
本申请上述实施例中,生成子模块包括:构建单元,用于构建目标矩阵,其中,目标矩阵中每个元素的值为第五预设值,目标矩阵的高基于目标幅值图像的高确定;第二处理单元,用于基于二值序列的长度,得到平均分割距离;修改单元,用于基于二值序列中每个第一元素的值,对目标矩阵中对应的第二元素的值进行修改,其中,对应的元素由每个元素和平均分割距离确定;第二获取单元,用于获取修改后的目标矩阵与修改后的目标矩阵的均值之差,得到二维检测矩阵。
本申请上述实施例中,修改单元包括:判断子单元,用于判断每个第一元素的值是否为1;修改子单元,用于如果任意一个第一元素的值是1,则将任意一个第一元素对应的第二元素的值修改为第六预设值。
本申请上述实施例中,确定模块包括:第二获取子模块,用于获取第一滤波结果中的最大值;判断子模块,用于判断最大值是否大于第二预设阈值;确定子模块,用于如果最大值大于第二预设阈值,则确定检测结果为检测图像中存在水印,如果最大值小于等于第二预设阈值,则确定检测结果为检测图像中不存在水印。
本申请上述实施例中,获取模块还用于获取最大值在极坐标系中对应的半径和角度;确定模块还用于基于半径和补全后的图像的边长,确定缩放系数,并基于角度确定旋转系数。
本申请上述实施例中,获取模块还用于获取二值序列的逆序序列;滤波模块还用于利用逆序序列对目标幅值图像进行滤波,得到第三滤波结果;确定模块还用于基于第三滤波结果确定检测结果;该装置还包括:校正模块,用于在检测结果为检测图像中存在水印的情况下,基于缩放系数和旋转系数对检测图像进行校正;翻转模块,用于对校正后的图像进行镜面翻转,得到原始图像。
本申请上述实施例中,该装置还包括:判断模块,用于判断检测图像的尺寸是否超过预设尺寸;获取模块还用于如果检测图像的尺寸超过预设尺寸,则基于第三预设阈值,获取检测图像的子图像,并获取子图像对应的极坐标系下的目标幅值图像;获取模块还用于如果检测图像的尺寸未超过预设尺寸,则获取检测图像对应的极坐标系下的目标幅值图像。
本申请上述实施例中,补全模块还用于对检测图像进行尺寸补全,得到补全后的图像;获取模块还用于获取补全后的图像对应的极坐标系下的目标幅值图像。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例5
根据本申请实施例,还提供了一种图像处理***,包括:
处理器;以及
存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:获取原始图像和二值序列,其中,二值序列用于生成嵌入至原始图像中的水印;基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像,其中,目标图像中含有水印。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例6
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行图像处理方法中以下步骤的程序代码:获取原始图像和二值序列,其中,二值序列用于生成嵌入至原始图像中的水印;基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像,其中,目标图像中含有水印。
可选地,图14是根据本申请实施例的一种计算机终端的结构框图。如图14所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器1402、以及存储器1404。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的安全漏洞检测方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的***漏洞攻击的检测方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取原始图像和二值序列,其中,二值序列用于生成嵌入至原始图像中的水印;基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像,其中,目标图像中含有水印。
可选的,上述处理器还可以执行如下步骤的程序代码:对原始图像进行二维傅里叶变换,得到第一傅里叶变换系数;获取第一傅里叶变换系数中的待修改系数集合和修改强度,其中,待修改系数集合包含的多个待修改系数与二值序列包含的多个元素一一对应;基于每个待修改系数对应的元素的值和修改强度,对每个待修改系数的幅值进行修改,得到修改后的傅里叶变换系数,其中,修改强度用于表征对幅值进行扩大的程度;对修改后的傅里叶变换系数进行反变换,得到目标图像。
可选的,上述处理器还可以执行如下步骤的程序代码:确定第一傅里叶变换系数的中心为圆环的圆心;基于二值序列的长度确定圆环的单位角度;基于获取到的预设系数和原始图像的尺寸,确定圆环的半径;基于圆心、单位角度和半径,确定待修改系数集合中的每个待修改系数。
可选的,上述处理器还可以执行如下步骤的程序代码:判断每个待修改系数对应的元素的值是否为1;如果任意一个待修改系数对应的元素的值是1,则按照修改强度,对任意一个待修改系数的幅值进行扩大。
可选的,上述处理器还可以执行如下步骤的程序代码:将任意一个待修改系数的幅值扩大至修改强度;或获取任意一个待修改系数的幅值与修改强度的乘积。
可选的,上述处理器还可以执行如下步骤的程序代码:在获取修改强度之前,对第一傅里叶变换系数进行偏移操作,得到偏移后的傅里叶变换系数;获取偏移后的傅里叶变换系数的幅值中的最大幅值;基于最大幅值,得到修改强度。
可选的,上述处理器还可以执行如下步骤的程序代码:在对原始图像进行二维傅里叶变换,得到第一傅里叶变换系数之前,对原始图像进行尺寸补全,得到补全后的图像;对补全后的图像进行二维傅里叶变换,得到第一傅里叶变换系数。
可选的,上述处理器还可以执行如下步骤的程序代码:获取原始图像的最长边长;基于最长边长,确定目标边长,其中,目标边长大于最长边长,且目标边长为第二预设值的倍数;按照目标边长对原始图像进行尺寸补全,得到补全后的图像,其中,补全后的图像为正方形图像,补全后的图像中除原始图像部分之外的所有像素的像素值为第三预设值。
可选的,上述处理器还可以执行如下步骤的程序代码:在对修改后的傅里叶变换系数进行反变换,得到目标图像之前,基于原始图像的尺寸,对目标图像进行裁剪。
可选的,上述处理器还可以执行如下步骤的程序代码:基于二值序列对预设图像的第二傅里叶变换系数进行修改,生成水印图像,其中,预设图像中所有像素的像素值均为第四预设值;获取水印图像与预设图像之差,得到母空域模板;基于原始图像的尺寸,对母空域模板进行裁剪,得到空域模板;将空域模板与原始图像进行叠加,得到目标图像。
可选的,上述处理器还可以执行如下步骤的程序代码:获取原始图像的权重值;获取权重值,预设比例系数和空域模板的乘积,得到乘积图像;获取原始图像与乘积图像之和,得到目标图像。
可选的,上述处理器还可以执行如下步骤的程序代码:获取二维滤波矩阵;利用二维滤波矩阵对原始图像进行滤波,得到权重值。
可选的,上述处理器还可以执行如下步骤的程序代码:在得到目标图像之后,获取检测图像;基于检测图像的第三傅里叶变换系数,生成目标幅值图像;利用二值序列对目标幅值图像进行滤波,得到第一滤波结果;基于第一滤波结果确定检测图像的检测结果,其中,检测结果用于表征检测图像中是否存在水印。
可选的,上述处理器还可以执行如下步骤的程序代码:对检测图像进行二维傅里叶变换,得到第三傅里叶变换系数;剔除第三傅里叶变换系数的幅值中满足预设条件的幅值;将处理后的幅值映射至极坐标系中,得到第一幅值图像;获取第一幅值图像与第一幅值图像的均值的差值,得到目标幅值图像。
可选的,上述处理器还可以执行如下步骤的程序代码:获取预设滤波矩阵;利用预设滤波矩阵对第二幅值图像进行滤波,得到第二滤波结果;基于第二幅值图像、第二滤波结果和第一预设阈值,得到处理后的幅值。
可选的,上述处理器还可以执行如下步骤的程序代码:在利用预设滤波矩阵对第二幅值图像进行滤波之前,对二幅值图像进行高斯滤波,得到第三滤波结果;利用预设滤波矩阵对第三滤波结果进行滤波,得到第二滤波结果。
可选的,上述处理器还可以执行如下步骤的程序代码:基于二值序列生成二维检测矩阵;利用二维检测矩阵对目标幅值图像进行滤波,得到第一滤波结果。
可选的,上述处理器还可以执行如下步骤的程序代码:构建目标矩阵,其中,目标矩阵中每个元素的值为第五预设值,目标矩阵的高基于目标幅值图像的高确定;基于二值序列的长度,得到平均分割距离;基于二值序列中每个第一元素的值,对目标矩阵中对应的第二元素的值进行修改,其中,对应的元素由每个元素和平均分割距离确定;获取修改后的目标矩阵与修改后的目标矩阵的均值之差,得到二维检测矩阵。
可选的,上述处理器还可以执行如下步骤的程序代码:判断每个第一元素的值是否为1;如果任意一个第一元素的值是1,则将任意一个第一元素对应的第二元素的值修改为第六预设值。
可选的,上述处理器还可以执行如下步骤的程序代码:获取第一滤波结果中的最大值;判断最大值是否大于第二预设阈值;如果最大值大于第二预设阈值,则确定检测结果为检测图像中存在水印;如果最大值小于等于第二预设阈值,则确定检测结果为检测图像中不存在水印。
可选的,上述处理器还可以执行如下步骤的程序代码:在确定检测结果为检测图像中存在水印之后,获取最大值在极坐标系中对应的半径和角度;基于半径和补全后的图像的边长,确定缩放系数;基于角度确定旋转系数。
可选的,上述处理器还可以执行如下步骤的程序代码:获取二值序列的逆序序列;利用逆序序列对目标幅值图像进行滤波,得到第三滤波结果;基于第三滤波结果确定检测结果;在检测结果为检测图像中存在水印的情况下,基于缩放系数和旋转系数对检测图像进行校正;对校正后的图像进行镜面翻转,得到原始图像。
可选的,上述处理器还可以执行如下步骤的程序代码:在获取检测图像之后,判断检测图像的尺寸是否超过预设尺寸;如果检测图像的尺寸超过预设尺寸,则基于第三预设阈值,获取检测图像的子图像,并获取子图像对应的极坐标系下的目标幅值图像;如果检测图像的尺寸未超过预设尺寸,则获取检测图像对应的极坐标系下的目标幅值图像。
可选的,上述处理器还可以执行如下步骤的程序代码:在获取检测图像对应的极坐标系下的目标幅值图像之前,对检测图像进行尺寸补全,得到补全后的图像;获取补全后的图像对应的极坐标系下的目标幅值图像。
可选的,上述处理器还可以执行如下步骤的程序代码:在基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像之前,接收客户端发送的处理请求;判断处理请求是否为预设处理请求;如果处理请求是预设处理请求,则基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像。
可选的,上述处理器还可以执行如下步骤的程序代码:在基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像之前,检测预设功能开关的当前状态;在当前状态为预设状态的情况下,基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像。
采用本申请实施例,提供了一种图像处理的方案。通过对原始图像的傅里叶变换系数进行修改,利用二维傅里叶变换的特性,使得目标图像具有强鲁棒性,可以应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的联合攻击,并且具有嵌入速度快、计算简单、应用场景广阔的技术效果,利用二值序列对目标幅值图像进行滤波,可以显著的提升检测效果与准确性,进而解决了相关技术中图像处理方法无法应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的技术问题。
本领域普通技术人员可以理解,图14所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图14其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图14中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图14所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例7
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的图像处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取原始图像和二值序列,其中,二值序列用于生成嵌入至原始图像中的水印;基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像,其中,目标图像中含有水印。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:对原始图像进行二维傅里叶变换,得到第一傅里叶变换系数;获取第一傅里叶变换系数中的待修改系数集合和修改强度,其中,待修改系数集合包含的多个待修改系数与二值序列包含的多个元素一一对应;基于每个待修改系数对应的元素的值和修改强度,对每个待修改系数的幅值进行修改,得到修改后的傅里叶变换系数,其中,修改强度用于表征对幅值进行扩大的程度;对修改后的傅里叶变换系数进行反变换,得到目标图像。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:确定第一傅里叶变换系数的中心为圆环的圆心;基于二值序列的长度确定圆环的单位角度;基于获取到的预设系数和原始图像的尺寸,确定圆环的半径;基于圆心、单位角度和半径,确定待修改系数集合中的每个待修改系数。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:判断每个待修改系数对应的元素的值是否为1;如果任意一个待修改系数对应的元素的值是1,则按照修改强度,对任意一个待修改系数的幅值进行扩大。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:将任意一个待修改系数的幅值扩大至修改强度;或获取任意一个待修改系数的幅值与修改强度的乘积。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在获取修改强度之前,对第一傅里叶变换系数进行偏移操作,得到偏移后的傅里叶变换系数;获取偏移后的傅里叶变换系数的幅值中的最大幅值;基于最大幅值,得到修改强度。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在对原始图像进行二维傅里叶变换,得到第一傅里叶变换系数之前,对原始图像进行尺寸补全,得到补全后的图像;对补全后的图像进行二维傅里叶变换,得到第一傅里叶变换系数。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取原始图像的最长边长;基于最长边长,确定目标边长,其中,目标边长大于最长边长,且目标边长为第二预设值的倍数;按照目标边长对原始图像进行尺寸补全,得到补全后的图像,其中,补全后的图像为正方形图像,补全后的图像中除原始图像部分之外的所有像素的像素值为第三预设值。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在对修改后的傅里叶变换系数进行反变换,得到目标图像之前,基于原始图像的尺寸,对目标图像进行裁剪。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于二值序列对预设图像的第二傅里叶变换系数进行修改,生成水印图像,其中,预设图像中所有像素的像素值均为第四预设值;获取水印图像与预设图像之差,得到母空域模板;基于原始图像的尺寸,对母空域模板进行裁剪,得到空域模板;将空域模板与原始图像进行叠加,得到目标图像。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取原始图像的权重值;获取权重值,预设比例系数和空域模板的乘积,得到乘积图像;获取原始图像与乘积图像之和,得到目标图像。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取二维滤波矩阵;利用二维滤波矩阵对原始图像进行滤波,得到权重值。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在得到目标图像之后,获取检测图像;基于检测图像的第三傅里叶变换系数,生成目标幅值图像;利用二值序列对目标幅值图像进行滤波,得到第一滤波结果;基于第一滤波结果确定检测图像的检测结果,其中,检测结果用于表征检测图像中是否存在水印。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:对检测图像进行二维傅里叶变换,得到第三傅里叶变换系数;剔除第三傅里叶变换系数的幅值中满足预设条件的幅值;将处理后的幅值映射至极坐标系中,得到第一幅值图像;获取第一幅值图像与第一幅值图像的均值的差值,得到目标幅值图像。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取预设滤波矩阵;利用预设滤波矩阵对第二幅值图像进行滤波,得到第二滤波结果;基于第二幅值图像、第二滤波结果和第一预设阈值,得到处理后的幅值。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在利用预设滤波矩阵对第二幅值图像进行滤波之前,对二幅值图像进行高斯滤波,得到第三滤波结果;利用预设滤波矩阵对第三滤波结果进行滤波,得到第二滤波结果。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于二值序列生成二维检测矩阵;利用二维检测矩阵对目标幅值图像进行滤波,得到第一滤波结果。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:构建目标矩阵,其中,目标矩阵中每个元素的值为第五预设值,目标矩阵的高基于目标幅值图像的高确定;基于二值序列的长度,得到平均分割距离;基于二值序列中每个第一元素的值,对目标矩阵中对应的第二元素的值进行修改,其中,对应的元素由每个元素和平均分割距离确定;获取修改后的目标矩阵与修改后的目标矩阵的均值之差,得到二维检测矩阵。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:判断每个第一元素的值是否为1;如果任意一个第一元素的值是1,则将任意一个第一元素对应的第二元素的值修改为第六预设值。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取第一滤波结果中的最大值;判断最大值是否大于第二预设阈值;如果最大值大于第二预设阈值,则确定检测结果为检测图像中存在水印;如果最大值小于等于第二预设阈值,则确定检测结果为检测图像中不存在水印。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在确定检测结果为检测图像中存在水印之后,获取最大值在极坐标系中对应的半径和角度;基于半径和补全后的图像的边长,确定缩放系数;基于角度确定旋转系数。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:获取二值序列的逆序序列;利用逆序序列对目标幅值图像进行滤波,得到第三滤波结果;基于第三滤波结果确定检测结果;在检测结果为检测图像中存在水印的情况下,基于缩放系数和旋转系数对检测图像进行校正;对校正后的图像进行镜面翻转,得到原始图像。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在获取检测图像之后,判断检测图像的尺寸是否超过预设尺寸;如果检测图像的尺寸超过预设尺寸,则基于第三预设阈值,获取检测图像的子图像,并获取子图像对应的极坐标系下的目标幅值图像;如果检测图像的尺寸未超过预设尺寸,则获取检测图像对应的极坐标系下的目标幅值图像。
可选地,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在获取检测图像对应的极坐标系下的目标幅值图像之前,对检测图像进行尺寸补全,得到补全后的图像;获取补全后的图像对应的极坐标系下的目标幅值图像。
可选的,上述处理器还可以执行如下步骤的程序代码:在基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像之前,接收客户端发送的处理请求;判断处理请求是否为预设处理请求;如果处理请求是预设处理请求,则基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像。
可选的,上述处理器还可以执行如下步骤的程序代码:在基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像之前,检测预设功能开关的当前状态;在当前状态为预设状态的情况下,基于二值序列对原始图像的第一傅里叶变换系数进行修改,得到目标图像。
实施例8
根据本申请实施例,还提供了一种数据处理方法。图15是根据本申请实施例8的一种数据处理方法的流程图。如图15所示,该方法包括如下步骤:
步骤S152,获取原始数据;
上述步骤中的原始数据可以是需要添加水印的数据,例如,可以是视频、图像、音频、文本等数据,但不仅限于此。在本申请实施例中,以图像为例进行说明。在原始数据为图像的情况下,可以采用单通道灰度图像,也可以是其他任意的单通道图像。
步骤S154,对原始数据的第一傅里叶变换系数进行修改,生成嵌入水印的目标数据。
在一种可选的实施例中,利用二维傅里叶变换的旋转、平移不变性,并且利用缩放对傅里叶频谱的影响,可以通过对原始数据的傅里叶变换系数进行修改,使得原始数据的傅里叶变换系数具有水印的特征,实现在原始数据中嵌入水印的目的。
基于本申请上述实施例提供的方案,在获取到原始数据之后,可以对原始数据的傅里叶变换系数进行修改,得到含有水印的目标数据,实现水印嵌入的目的。与现有技术相比,通过对原始数据的傅里叶变换系数进行修改,利用二维傅里叶变换的特性,使得目标数据具有强鲁棒性,可以应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的联合攻击,并且具有嵌入速度快、计算简单、应用场景广阔的技术效果,进而解决了相关技术中图像处理方法无法应对旋转、缩放、平移、镜像、剪切、拼贴、压缩等攻击的技术问题。
本申请上述实施例中,对原始数据的第一傅里叶变换系数进行修改,生成嵌入水印的目标数据包括:获取二值序列,其中,二值序列用于生成嵌入至水印;基于二值序列对第一傅里叶变换系数进行修改,得到目标数据。
上述的二值序列可以是具有一定长度的一维二值序列,其元素由0和1构成。一般情况下,二值序列的长度L可以在20-40之间,但不仅限于此,也可以是其他合适的长度。二值序列是水印添加者主动构造的一种确定的标识,不是随意设定的信息,用于判断数据中是否嵌入了水印,并且用于计算数据的旋转缩放系数。
需要说明的是,二值序列的构造满足如下至少一个条件:从二值序列的首部遍历至二值序列尾部得到的遍历结果与从二值序列的尾部遍历至二值序列首部得到的遍历结果不同;在由两个二值序列首尾相连构成的新的二值序列中,与二值序列相同的子序列的起始位置未位于二值序列的内部;二值序列中0的数量与1的数量的差值处于第一预设范围内。
本申请上述实施例中,基于二值序列对第一傅里叶变换系数进行修改,得到目标数据包括:对原始数据进行二维傅里叶变换,得到第一傅里叶变换系数;获取第一傅里叶变换系数中的待修改系数集合和修改强度,其中,待修改系数集合包含的多个待修改系数与二值序列包含的多个元素一一对应;基于每个待修改系数对应的元素的值和修改强度,对每个待修改系数的幅值进行修改,得到修改后的傅里叶变换系数,其中,修改强度用于表征对幅值进行扩大的程度;对修改后的傅里叶变换系数进行反变换,得到目标数据。
本申请上述实施例中,获取第一傅里叶变换系数中的待修改系数集合包括:确定第一傅里叶变换系数的中心为圆环的圆心;基于二值序列的长度确定圆环的单位角度;基于获取到的预设系数和原始数据的尺寸,确定圆环的半径;基于圆心、单位角度和半径,确定待修改系数集合中的每个待修改系数。
本申请上述实施例中,基于每个待修改系数对应的元素的值和修改强度,对每个待修改系数的幅值进行修改包括:判断每个待修改系数对应的元素的值是否为1;如果任意一个待修改系数对应的元素的值是1,则按照修改强度,对任意一个待修改系数的幅值进行扩大。
本申请上述实施例中,按照修改强度,对任意一个待修改系数的幅值进行扩大包括如下之一:将任意一个待修改系数的幅值扩大至修改强度;获取任意一个待修改系数的幅值与修改强度的乘积。
本申请上述实施例中,在获取修改强度之前,该方法还包括:对第一傅里叶变换系数进行偏移操作,得到偏移后的傅里叶变换系数;获取偏移后的傅里叶变换系数的幅值中的最大幅值;基于最大幅值,得到修改强度。
本申请上述实施例中,在对原始数据进行二维傅里叶变换,得到第一傅里叶变换系数之前,该方法还包括:对原始数据进行尺寸补全,得到补全后的数据;对补全后的数据进行二维傅里叶变换,得到第一傅里叶变换系数。
本申请上述实施例中,在对修改后的傅里叶变换系数进行反变换,得到目标数据之前,该方法还包括:基于原始数据的尺寸,对目标数据进行裁剪。
本申请上述实施例中,基于二值序列对原始数据的第一傅里叶变换系数进行修改,得到目标数据包括:基于二值序列对预设数据的第三傅里叶变换系数进行修改,生成水印数据,其中,预设数据中所有数据的值均为第四预设值;获取水印数据与预设数据之差,得到母空域模板;基于原始数据的尺寸,对母空域模板进行裁剪,得到空域模板;将空域模板与原始数据进行叠加,得到目标数据。
本申请上述实施例中,将空域模板与原始数据进行叠加,得到目标数据包括:获取原始数据的权重值;获取权重值,预设比例系数和空域模板的乘积,得到乘积数据;获取原始数据与乘积数据之和,得到目标数据。
本申请上述实施例中,获取原始数据的权重值包括:获取二维滤波矩阵;利用二维滤波矩阵对原始数据进行滤波,得到权重值。
本申请上述实施例中,该方法还包括:获取检测数据;对检测数据的第二傅里叶变换系数进行处理,得到处理结果;基于处理结果确定检测数据的检测结果,其中,检测结果用于表征检测数据中是否存在水印。
上述步骤中的检测数据可以是需要检测是否含有水印的数据,例如,可以是视频、图像、音频、文本等数据,但不仅限于此。在本申请实施例中,以图像为例进行说明。
在一种可选的实施例中,利用二维傅里叶变换的旋转、平移不变性,也利用了缩放对傅里叶频谱的影响。在获取到需要进行水印检测的检测数据之后,可以对检测数据进行二维傅里叶变换,得到二维傅里叶变换系数,对二维傅里叶变换系数进行处理,从而可以确定检测数据中是否存在水印。
本申请上述实施例中,对检测数据的第二傅里叶变换系数进行处理,得到处理结果包括:基于第二傅里叶变换***,生成目标幅值数据;利用二值序列对目标幅值数据进行滤波,得到处理结果。
基于上述嵌入水印的方法可知,含有水印的数据中,傅里叶变换系数具有水印添加者主动构造的二值序列的特征,可以利用相关方法,例如,利用信号的相关性去检测该特征,实现水印检测的目的。可选的,在检测数据为图像的情况下,由于图像中嵌入的水印采用圆环形,因此,目标幅值图像可以是极坐标幅值图像。
通过上述步骤,通过利用二值序列对目标幅值数据进行滤波,从而可以显著的提升检测效果与准确性。
本申请上述实施例中,基于第二傅里叶变换系数,生成目标幅值数据包括:对检测数据进行二维傅里叶变换,得到第二傅里叶变换系数;剔除第二傅里叶变换系数的幅值中满足预设条件的幅值;将处理后的幅值映射至极坐标系中,得到第一幅值数据;获取第一幅值数据与第一幅值数据的均值的差值,得到目标幅值数据。
可选的,第二幅值数据可以是傅里叶变换系数的幅值数据。
本申请上述实施例中,剔除第二傅里叶变换系数的幅值中满足预设条件的幅值包括:获取预设滤波矩阵;利用预设滤波矩阵对第二幅值数据进行滤波,得到第二滤波结果;基于第二幅值数据、第二滤波结果和第一预设阈值,得到处理后的幅值。
本申请上述实施例中,在利用预设滤波矩阵对第二幅值数据进行滤波之前,该方法还包括:对二幅值数据进行高斯滤波,得到第三滤波结果;利用预设滤波矩阵对第三滤波结果进行滤波,得到第二滤波结果。
本申请上述实施例中,利用二值序列对目标幅值数据进行滤波,得到第一滤波结果包括:基于二值序列生成二维检测矩阵;利用二维检测矩阵对目标幅值数据进行滤波,得到第一滤波结果。
本申请上述实施例中,基于二值序列生成二维检测矩阵包括:构建目标矩阵,其中,目标矩阵中每个元素的值为第五预设值,目标矩阵的尺寸基于目标幅值数据的尺寸确定;基于二值序列的长度,得到平均分割距离;基于二值序列中每个第一元素的值,对目标矩阵中对应的第二元素的值进行修改,其中,对应的元素由每个元素和平均分割距离确定;获取修改后的目标矩阵与修改后的目标矩阵的均值之差,得到二维检测矩阵。
本申请上述实施例中,基于二值序列中每个第一元素的值,对目标矩阵中对应的第二元素的值进行修改包括:判断每个第一元素的值是否为1;如果任意一个第一元素的值是1,则将任意一个第一元素对应的第二元素的值修改为第六预设值。
本申请上述实施例中,基于第一滤波结果确定检测数据的检测结果包括:获取第一滤波结果中的最大值;判断最大值是否大于第二预设阈值;如果最大值大于第二预设阈值,则确定检测结果为检测数据中存在水印;如果最大值小于等于第二预设阈值,则确定检测结果为检测数据中不存在水印。
本申请上述实施例中,在确定检测结果为检测数据中存在水印之后,该方法还包括:获取最大值在极坐标系中对应的半径和角度;基于半径和补全后的数据的尺寸,确定缩放系数;基于角度确定旋转系数。
本申请上述实施例中,该方法还包括:获取二值序列的逆序序列;利用逆序序列对目标幅值数据进行滤波,得到第三滤波结果;基于第三滤波结果确定检测结果;在检测结果为检测数据中存在水印的情况下,基于缩放系数和旋转系数对检测数据进行校正;对校正后的数据进行镜面翻转,得到原始数据。
本申请上述实施例中,在获取检测数据之后,该方法还包括:判断检测数据的尺寸是否超过预设尺寸;如果检测数据的尺寸超过预设尺寸,则基于第三预设阈值,获取检测数据的子数据,并获取子数据对应的极坐标系下的目标幅值数据;如果检测数据的尺寸未超过预设尺寸,则获取检测数据对应的极坐标系下的目标幅值数据。
本申请上述实施例中,在获取检测数据对应的极坐标系下的目标幅值数据之前,该方法还包括:对检测数据进行尺寸补全,得到补全后的数据;获取补全后的数据对应的极坐标系下的目标幅值数据。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (38)
1.一种图像处理方法,包括:
获取原始图像和二值序列,其中,所述二值序列用于生成嵌入至所述原始图像中的水印;
基于所述二值序列对所述原始图像的第一傅里叶变换系数进行修改,得到目标图像,其中,所述目标图像中含有所述水印。
2.根据权利要求1所述的方法,其中,基于所述二值序列对所述原始图像的第一傅里叶变换系数进行修改,得到目标图像包括:
对所述原始图像进行二维傅里叶变换,得到所述第一傅里叶变换系数;
获取所述第一傅里叶变换系数中的待修改系数集合和修改强度,其中,所述待修改系数集合包含的多个待修改系数与所述二值序列包含的多个元素一一对应;
基于每个待修改系数对应的元素的值和所述修改强度,对所述每个待修改系数的幅值进行修改,得到修改后的傅里叶变换系数,其中,所述修改强度用于表征对所述幅值进行扩大的程度;
对修改后的傅里叶变换系数进行反变换,得到所述目标图像。
3.根据权利要求2所述的方法,其中,获取所述第一傅里叶变换系数中的待修改系数集合包括:
确定所述第一傅里叶变换系数的中心为圆环的圆心;
基于所述二值序列的长度确定所述圆环的单位角度;
基于获取到的预设系数和所述原始图像的尺寸,确定所述圆环的半径;
基于所述圆心、所述单位角度和所述半径,确定所述待修改系数集合中的每个待修改系数。
4.根据权利要求3所述的方法,其中,
基于所述二值序列的长度确定所述圆环的单位角度包括:获取预设角度与所述长度的比值,得到所述单位角度;
基于获取到的预设系数确定圆环的半径包括:基于所述原始图像的尺寸确定目标长度;获取所述预设系数与所述目标长度的乘积;获取所述乘积与第一预设值的比值,得到所述半径。
5.根据权利要求2所述的方法,其中,基于每个待修改系数对应的元素的值和所述修改强度,对所述每个待修改系数的幅值进行修改包括:
判断所述每个待修改系数对应的元素的值是否为1;
如果任意一个待修改系数对应的元素的值是1,则按照所述修改强度,对所述任意一个待修改系数的幅值进行扩大。
6.根据权利要求5所述的方法,其中,按照所述修改强度,对所述任意一个待修改系数的幅值进行扩大包括如下之一:
将所述任意一个待修改系数的幅值扩大至所述修改强度;
获取所述任意一个待修改系数的幅值与所述修改强度的乘积。
7.根据权利要求2所述的方法,其中,在获取修改强度之前,所述方法还包括:
对所述第一傅里叶变换系数进行偏移操作,得到偏移后的傅里叶变换系数;
获取所述偏移后的傅里叶变换系数的幅值中的最大幅值;
基于所述最大幅值,得到所述修改强度。
8.根据权利要求2所述的方法,其中,在对所述原始图像进行二维傅里叶变换,得到所述第一傅里叶变换系数之前,所述方法还包括:
对所述原始图像进行尺寸补全,得到补全后的图像;
对所述补全后的图像进行二维傅里叶变换,得到所述第一傅里叶变换系数。
9.根据权利要求8所述的方法,其中,对所述原始图像进行尺寸补全,得到补全后的图像包括:
获取所述原始图像的最长边长;
基于所述最长边长,确定目标边长,其中,所述目标边长大于所述最长边长,且所述目标边长为第二预设值的倍数;
按照所述目标边长对所述原始图像进行尺寸补全,得到所述补全后的图像,其中,所述补全后的图像为正方形图像,所述补全后的图像中除所述原始图像部分之外的所有像素的像素值为第三预设值。
10.根据权利要求8所述的方法,其中,在对修改后的傅里叶变换系数进行反变换,得到所述目标图像之前,所述方法还包括:
基于所述原始图像的尺寸,对所述目标图像进行裁剪。
11.根据权利要求1所述的方法,其中,基于所述二值序列对所述原始图像的第一傅里叶变换系数进行修改,得到目标图像包括:
基于所述二值序列对预设图像的第二傅里叶变换系数进行修改,生成水印图像,其中,所述预设图像中所有像素的像素值均为第四预设值;
获取所述水印图像与所述预设图像之差,得到母空域模板;
基于所述原始图像的尺寸,对所述母空域模板进行裁剪,得到空域模板;
将所述空域模板与所述原始图像进行叠加,得到所述目标图像。
12.根据权利要求11所述的方法,其中,所述预设图像为正方形图形,所述预设图像的尺寸大于所述原始图像,且所述预设图像的边长为第二预设值的倍数。
13.根据权利要求11所述的方法,其中,将所述空域模板与所述原始图像进行叠加,得到所述目标图像包括:
获取所述原始图像的权重值;
获取所述权重值,预设比例系数和所述空域模板的乘积,得到乘积图像;
获取所述原始图像与所述乘积图像之和,得到所述目标图像。
14.根据权利要求13所述的方法,其中,获取所述原始图像的权重值包括:
获取二维滤波矩阵;
利用所述二维滤波矩阵对所述原始图像进行滤波,得到所述权重值。
15.根据权利要求1所述的方法,其中,所述二值序列满足如下至少一个条件:
从所述二值序列的首部遍历至所述二值序列尾部得到的遍历结果与从所述二值序列的尾部遍历至所述二值序列首部得到的遍历结果不同;
在由两个所述二值序列首尾相连构成的新的二值序列中,与所述二值序列相同的子序列的起始位置未位于所述二值序列的内部;
所述二值序列中0的数量与1的数量的差值处于第一预设范围内。
16.根据权利要求1所述的方法,其中,在得到目标图像之后,所述方法还包括:
获取检测图像;
基于所述检测图像的第三傅里叶变换系数,生成目标幅值图像;
利用所述二值序列对所述目标幅值图像进行滤波,得到第一滤波结果;
基于所述第一滤波结果确定所述检测图像的检测结果,其中,所述检测结果用于表征所述检测图像中是否存在水印。
17.根据权利要求16所述的方法,其中,基于所述检测图像的第三傅里叶变换系数,生成目标幅值图像包括:
对所述检测图像进行二维傅里叶变换,得到所述第三傅里叶变换系数;
剔除所述第三傅里叶变换系数的幅值中满足预设条件的幅值;
将处理后的幅值映射至极坐标系中,得到第一幅值图像;
获取所述第一幅值图像与所述第一幅值图像的均值的差值,得到所述目标幅值图像。
18.根据权利要求17所述的方法,其中,满足所述预设条件的峰值为所述第三傅里叶变换系数对应的第二幅值图像中,处于第二预设范围内的幅值。
19.根据权利要求18所述的方法,其中,剔除所述第三傅里叶变换系数的幅值中满足预设条件的幅值包括:
获取预设滤波矩阵;
利用所述预设滤波矩阵对所述第二幅值图像进行滤波,得到第二滤波结果;
基于所述第二幅值图像、所述第二滤波结果和第一预设阈值,得到所述处理后的幅值。
20.根据权利要求19所述的方法,其中,在利用所述预设滤波矩阵对所述第二幅值图像进行滤波之前,所述方法还包括:
对所述二幅值图像进行高斯滤波,得到第三滤波结果;
利用所述预设滤波矩阵对所述第三滤波结果进行滤波,得到第二滤波结果。
21.根据权利要求16所述的方法,其中,利用所述二值序列对所述目标幅值图像进行滤波,得到第一滤波结果包括:
基于所述二值序列生成二维检测矩阵;
利用所述二维检测矩阵对所述目标幅值图像进行滤波,得到所述第一滤波结果。
22.根据权利要求21所述的方法,其中,基于所述二值序列生成二维检测矩阵包括:
构建目标矩阵,其中,所述目标矩阵中每个元素的值为第五预设值,所述目标矩阵的高基于所述目标幅值图像的高确定;
基于所述二值序列的长度,得到平均分割距离;
基于所述二值序列中每个第一元素的值,对所述目标矩阵中对应的第二元素的值进行修改,其中,所述对应的元素由所述每个元素和所述平均分割距离确定;
获取修改后的目标矩阵与所述修改后的目标矩阵的均值之差,得到所述二维检测矩阵。
23.根据权利要求22所述的方法,其中,基于所述二值序列中每个第一元素的值,对所述目标矩阵中对应的第二元素的值进行修改包括:
判断所述每个第一元素的值是否为1;
如果任意一个第一元素的值是1,则将所述任意一个第一元素对应的第二元素的值修改为第六预设值。
24.根据权利要求16所述的方法,其中,基于所述第一滤波结果确定所述检测图像的检测结果包括:
获取所述第一滤波结果中的最大值;
判断所述最大值是否大于第二预设阈值;
如果所述最大值大于所述第二预设阈值,则确定所述检测结果为所述检测图像中存在水印;
如果所述最大值小于等于所述第二预设阈值,则确定所述检测结果为所述检测图像中不存在水印。
25.根据权利要求24所述的方法,其中,在确定所述检测结果为所述检测图像中存在水印之后,所述方法还包括:
获取所述最大值在极坐标系中对应的半径和角度;
基于所述半径和补全后的图像的边长,确定缩放系数;
基于所述角度确定旋转系数。
26.根据权利要求25所述的方法,其中,所述方法还包括:
获取所述二值序列的逆序序列;
利用所述逆序序列对所述目标幅值图像进行滤波,得到第三滤波结果;
基于所述第三滤波结果确定所述检测结果;
在所述检测结果为所述检测图像中存在水印的情况下,基于所述缩放系数和所述旋转系数对所述检测图像进行校正;
对校正后的图像进行镜面翻转,得到所述原始图像。
27.根据权利要求16所述的方法,其中,在获取检测图像之后,所述方法还包括:
判断所述检测图像的尺寸是否超过预设尺寸;
如果所述检测图像的尺寸超过所述预设尺寸,则基于第三预设阈值,获取所述检测图像的子图像,并获取所述子图像对应的极坐标系下的所述目标幅值图像;
如果所述检测图像的尺寸未超过所述预设尺寸,则获取所述检测图像对应的极坐标系下的目标幅值图像。
28.根据权利要求16所述的方法,其中,在获取所述检测图像对应的极坐标系下的目标幅值图像之前,所述方法还包括:
对所述检测图像进行尺寸补全,得到补全后的图像;
获取所述补全后的图像对应的极坐标系下的所述目标幅值图像。
29.根据权利要求1所述的方法,其中,在基于所述二值序列对所述原始图像的第一傅里叶变换系数进行修改,得到目标图像之前,所述方法还包括:
接收客户端发送的处理请求;
判断所述处理请求是否为预设处理请求;
如果所述处理请求是所述预设处理请求,则基于所述二值序列对所述原始图像的第一傅里叶变换系数进行修改,得到目标图像。
30.根据权利要求1所述的方法,其中,在基于所述二值序列对所述原始图像的第一傅里叶变换系数进行修改,得到目标图像之前,所述方法还包括:
检测预设功能开关的当前状态;
在所述当前状态为预设状态的情况下,基于所述二值序列对所述原始图像的第一傅里叶变换系数进行修改,得到目标图像。
31.一种图像处理方法,包括:
获取检测图像和二值序列,其中,所述二值序列用于生成所述检测图像中包含的水印;
基于所述检测图像的傅里叶变换系数,生成目标幅值图像;
利用所述二值序列对所述目标幅值图像进行滤波,得到第一滤波结果;
基于所述第一滤波结果确定所述检测图像的检测结果,其中,所述检测结果用于表征所述检测图像中是否存在水印。
32.一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至31中任意一项所述的图像处理方法。
33.一种计算设备,包括:处理器和存储介质,所述处理器用于运行所述存储介质中存储的程序,其中,所述程序运行时执行权利要求1至31中任意一项所述的图像处理方法。
34.一种图像处理***,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:获取原始图像和二值序列,其中,所述二值序列用于生成嵌入至所述原始图像中的水印;基于所述二值序列对所述原始图像的第一傅里叶变换系数进行修改,得到目标图像,其中,所述目标图像中含有所述水印。
35.一种数据处理方法,包括:
获取原始数据;
对所述原始数据的第一傅里叶变换系数进行修改,生成嵌入水印的目标数据。
36.根据权利要求35所述的方法,其中,对所述原始数据的第一傅里叶变换系数进行修改,生成嵌入水印的目标数据包括:
获取二值序列,其中,所述二值序列用于生成嵌入至所述水印;
基于所述二值序列对所述第一傅里叶变换系数进行修改,得到所述目标数据。
37.根据权利要求35所述的方法,其中,所述方法还包括:
获取检测数据;
对所述检测数据的第二傅里叶变换系数进行处理,得到处理结果;
基于所述处理结果确定所述检测数据的检测结果,其中,所述检测结果用于表征所述检测数据中是否存在水印。
38.根据权利要求37所述的方法,其中,对所述检测数据的第二傅里叶变换系数进行处理,得到处理结果包括:
基于所述第二傅里叶变换***,生成目标幅值数据;
利用二值序列对所述目标幅值数据进行滤波,得到所述处理结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010172556.4A CN113393358A (zh) | 2020-03-12 | 2020-03-12 | 图像处理方法和***、存储介质、计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010172556.4A CN113393358A (zh) | 2020-03-12 | 2020-03-12 | 图像处理方法和***、存储介质、计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113393358A true CN113393358A (zh) | 2021-09-14 |
Family
ID=77616094
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010172556.4A Pending CN113393358A (zh) | 2020-03-12 | 2020-03-12 | 图像处理方法和***、存储介质、计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113393358A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116962299A (zh) * | 2023-09-21 | 2023-10-27 | 广东云下汇金科技有限公司 | 一种数据中心算力调度方法、***、设备及可读存储介质 |
-
2020
- 2020-03-12 CN CN202010172556.4A patent/CN113393358A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116962299A (zh) * | 2023-09-21 | 2023-10-27 | 广东云下汇金科技有限公司 | 一种数据中心算力调度方法、***、设备及可读存储介质 |
CN116962299B (zh) * | 2023-09-21 | 2024-01-19 | 广东云下汇金科技有限公司 | 一种数据中心算力调度方法、***、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230215197A1 (en) | Systems and Methods for Detection and Localization of Image and Document Forgery | |
Piva | An overview on image forensics | |
Yahya | Steganography techniques for digital images | |
Atta et al. | A high payload steganography mechanism based on wavelet packet transformation and neutrosophic set | |
Sajjad et al. | Robust image hashing based efficient authentication for smart industrial environment | |
US20030123698A1 (en) | Image processing apparatus and method | |
CN112040337B (zh) | 视频的水印添加和提取方法、装置、设备及存储介质 | |
Su et al. | Geometrically resilient digital image watermarking by using interest point extraction and extended pilot signals | |
Murali et al. | Comparision and analysis of photo image forgery detection techniques | |
EP2770476A2 (en) | Digital watermark embedding method and digital watermark detection method | |
Munib et al. | Robust image watermarking technique using triangular regions and Zernike moments for quantization based embedding | |
Dhargupta et al. | Fuzzy edge detection based steganography using modified Gaussian distribution | |
JP2016035751A (ja) | 透かし入り二次元コード、認証システム、認証方法、及びプログラム | |
CN102956025B (zh) | 一种图像水印检测方法及其*** | |
CN115527101A (zh) | 图像的篡改检测方法和处理器 | |
CN111383254A (zh) | 一种深度信息获取方法、***及终端设备 | |
CN115375527A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN112070648A (zh) | 水印嵌入、提取方法、装置及电子设备 | |
CN113592698B (zh) | 基于十六元数矩的多视角彩色图像零水印处理方法及*** | |
Lee et al. | Digital watermarking based on JND model and QR code features | |
CN113393358A (zh) | 图像处理方法和***、存储介质、计算设备 | |
Kunhu et al. | A reversible watermarking scheme for ownership protection and authentication of medical images | |
JP2014082678A (ja) | マーカー埋め込み装置、マーカー検出装置、マーカー埋め込み方法、マーカー検出方法、及びプログラム | |
CN116757903A (zh) | 一种水印嵌入和提取方法、及水印处理装置 | |
JP6006676B2 (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 |