CN115526282A - 水印加密方法、水印提取方法、装置及存储介质 - Google Patents
水印加密方法、水印提取方法、装置及存储介质 Download PDFInfo
- Publication number
- CN115526282A CN115526282A CN202110711416.4A CN202110711416A CN115526282A CN 115526282 A CN115526282 A CN 115526282A CN 202110711416 A CN202110711416 A CN 202110711416A CN 115526282 A CN115526282 A CN 115526282A
- Authority
- CN
- China
- Prior art keywords
- image
- dimensional code
- watermark
- original
- shading
- 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
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06037—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/06009—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
- G06K19/06046—Constructional details
-
- 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
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
本发明提供了一种水印加密方法、水印提取方法、装置及存储介质,所述水印加密方法包括:根据第一水印图像的大小,将第一底纹图像分割为多个图像块,并计算每个图像块的DCT系数;根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,并对调整后的DCT系数进行逆DCT变换,生成携带有水印信息的第二底纹图像;将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像。本发明能够在对原始二维码图像加密的同时,减少对原二维码图像的损坏,提高了二维码信息的识读可靠性。另外,本发明还能够减少不同的光照条件的影响,提高水印提取精度。
Description
技术领域
本发明涉及二维码防伪验真技术领域,特别是指一种水印加密方法、水印提取方法、装置及存储介质。
背景技术
二维码又称为二维条码,常见的二维码为快速响应码(Quick Response, QRCode),是一个近几年来快速发展的一种编码方式,它比传统的条形码(Bar Code)条形码能存更多的信息,也能表示更多的数据类型。
二维码是用某种特定的用于记录数据符号信息的几何图形,按一定规律在平面(二维方向上)分布所形成的黑白相间的图形。在代码编制上,二维码巧妙地利用构成计算机内部逻辑基础的“0”、“1”比特流的概念,使用若干个与二进制相对应的几何形体来表示文字数值信息,通过图像输入设备或光电扫描设备自动识读以实现信息自动处理。
随着二维码技术的发展,运用二维码来进行防伪和验真,已经成为一种趋势。近年来,在产品外包装上粘贴带有水印的二维码是一种保护产品不被复制的加密方法。现有的二维码防伪技术,通常是利用现有智能手机拍照功能和移动网络通信功能进行防伪验真查询,消费者通过智能手机拍照扫描产品外包装印刷或者粘贴上的二维码图形,通过智能手机的通信网络将拍摄图形传递给服务器,服务器通过对图像二维码进行识别、译码、解密等一些列过程后,得到二维码中所蕴含的防伪信息,从数据库中获取对应的商品防伪信息,通过对比该防伪信息后将判决的结果反馈给消费者。该防伪技术中,可以通过复制的方式能够很容易的仿制二维码防伪标签;且二维码本身为明文可以直接被系统读取其中的信息。
现有技术在将防伪信息嵌入到二维码的过程中,通常是直接在二维码图像上进行嵌入,这在一定程度上会损坏二维码,影响二维码信息的识读。
发明内容
本发明要解决的技术问题是提供一种水印加密方法、水印提取方法、装置及计算机可读存储介质,在将水印信息嵌入到二维码的过程中,能够减少对二维码信息的损坏,提高二维码信息的识读的可靠性。
为解决上述技术问题,本发明的实施例提供技术方案如下:
一种水印加密方法,包括:
根据第一水印图像的大小,将第一底纹图像分割为多个图像块,并计算每个图像块的DCT系数,其中,每个图像块对应于所述第一水印图像的一个像素;
根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,并对调整后的DCT系数进行逆DCT变换,生成携带有水印信息的第二底纹图像;
将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像,其中,所述目标二维码中的第一类像素点为黑色,所述目标二维码中的第二类像素点中的至少部分像素点嵌入有所述第二底纹图像的信息;所述第一类像素点是与所述原始二维码图像中的黑色像素点位置相同的像素点,所述第二类像素点是与所述原始二维码图像中的白色像素点位置相同的像素点;
其中,所述第一水印图像和原始二维码图像均为二值化图像,所述第一底纹图像、第二底纹图像和原始二维码图像具有相同尺寸。
本发明实施例还提供了一种水印提取方法,包括:
从待处理图像中提取二维码区域的图像,得到与原始二维码图像相同尺寸的第一中间图像;
按照相同的分割方式,将所述第一中间图像与所述原始二维码图像分别分割为多个图像块,计算各个图像块的DCT系数以及相同位置的图像块的DCT 系数之间的差值;
根据所述相同位置的图像块的DCT系数之间的差值是否超出预设门限,生成目标水印图像。
本发明实施例还提供了一种水印加密装置,包括:
第一计算模块,用于根据第一水印图像的大小,将第一底纹图像分割为多个图像块,并计算每个图像块的DCT系数,其中,每个图像块对应于所述第一水印图像的一个像素;
调整模块,用于根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,并对调整后的DCT系数进行逆DCT 变换,生成携带有水印信息的第二底纹图像;
融合模块,用于将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像,其中,所述目标二维码中的第一类像素点为黑色,所述目标二维码中的第二类像素点中的至少部分像素点嵌入有所述第二底纹图像的信息;所述第一类像素点是与所述原始二维码图像中的黑色像素点位置相同的像素点,所述第二类像素点是与所述原始二维码图像中的白色像素点位置相同的像素点;
其中,所述第一水印图像和原始二维码图像均为二值化图像,所述第一底纹图像、第二底纹图像和原始二维码图像具有相同尺寸。
本发明实施例还提供了另一种水印加密装置,包括:
处理器;以及
存储器,在所述存储器中存储有计算机程序指令,
其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行以下步骤:
根据第一水印图像的大小,将第一底纹图像分割为多个图像块,并计算每个图像块的DCT系数,其中,每个图像块对应于所述第一水印图像的一个像素;
根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,并对调整后的DCT系数进行逆DCT变换,生成携带有水印信息的第二底纹图像;
将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像,其中,所述目标二维码中的第一类像素点为黑色,所述目标二维码中的第二类像素点中的至少部分像素点嵌入有所述第二底纹图像的信息;所述第一类像素点是与所述原始二维码图像中的黑色像素点位置相同的像素点,所述第二类像素点是与所述原始二维码图像中的白色像素点位置相同的像素点;
其中,所述第一水印图像和原始二维码图像均为二值化图像,所述第一底纹图像、第二底纹图像和原始二维码图像具有相同尺寸。
本发明实施例还提供了一种水印提取装置,包括:
提取模块,用于从待处理图像中提取二维码区域的图像,得到与原始二维码图像相同尺寸的第一中间图像;
计算模块,用于按照相同的分割方式,将所述第一中间图像与所述原始二维码图像分别分割为多个图像块,计算各个图像块的DCT系数以及相同位置的图像块的DCT系数之间的差值;
生成模块,用于根据所述相同位置的图像块的DCT系数之间的差值是否超出预设门限,生成目标水印图像。
本发明实施例还提供了一种水印提取装置,包括:
处理器;以及
存储器,在所述存储器中存储有计算机程序指令,
其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行以下步骤:
从待处理图像中提取二维码区域的图像,得到与原始二维码图像相同尺寸的第一中间图像;
按照相同的分割方式,将所述第一中间图像与所述原始二维码图像分别分割为多个图像块,计算各个图像块的DCT系数以及相同位置的图像块的DCT 系数之间的差值;
根据所述相同位置的图像块的DCT系数之间的差值是否超出预设门限,生成目标水印图像。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的水印加密方法、水印提取方法的步骤。
本发明的实施例具有以下有益效果:
本发明实施例在嵌入水印的过程中,生成带有水印的底纹图像,然后将该底纹图像与原始二维码图像融合在一起,能够减少对原二维码图像损坏,提高二维码信息的识读可靠性。另外,本发明实施例在水印提取过程中,通过校正图像的灰度,能够减少不同的光照条件的影响,提高水印提取精度。
附图说明
图1为本发明实施例提供的水印加密方法的流程示意图;
图2为本发明实施例提供的水印提取方法的流程示意图;
图3为本发明实施例提供的灰度校正的流程示意图;
图4为本发明实施例的水印加密装置的一种结构框图;
图5为本发明实施例的水印加密装置的另一种结构框图;
图6为本发明实施例的水印提取装置的一种结构框图;
图7为本发明实施例的水印提取装置的另一种结构框图。
具体实施方式
为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。在下面的描述中,提供诸如具体的配置和组件的特定细节仅仅是为了帮助全面理解本发明的实施例。因此,本领域技术人员应该清楚,可以对这里描述的实施例进行各种改变和修改而不脱离本发明的范围和精神。另外,为了清楚和简洁,省略了对已知功能和构造的描述。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,下述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。说明书以及权利要求中“和/或”表示所连接对象的至少其中之一。
为了增强二维码防伪的效果,可以将数字水印技术结合应用到二维码防伪技术中,离散余弦变换(Discrete Cosine Transform,DCT)是数字水印技术的常用方法。在数字图像处理中,为了减弱或去除数字图像数据相关性,可以用二维离散余弦变换,将图像从空间域转换到DCT变换域。
对一幅图像进行DCT变换后,与图像相关的重要可视信息大多集中在DCT变换的小部分系数中。因此,DCT变换是有损图像压缩JPEG的核心。例如,图像的一种DCT变换方式是首先把图像分为8*8的图像块,然后进行二维DCT变换,得到每个图像块对应的8*8的DCT系数,这些DCT系数从低频到高频需按照zig-zag次序排序,第一个值(即DCT系数中左上角的数值) 是直流系数,其余为交流系数。DCT系数中,左上角的是直流(低频)系数,右下角的是高频系数,中间区域是中频系数。对于DCT系数变换来说,图像的主要能量是集中在其DCT系数的一小部分,通常为DCT变换的直流系数(DC)。
本发明实施例可以将原始水印图像中的水印信息嵌入到原始二维码图像中,生成携带有水印信息的目标二维码图像。这里,原始水印图像和原始二维码图像均为二值化图像。
请参照图1,本发明实施例提供的水印加密方法,包括:
步骤11,根据第一水印图像的大小,将第一底纹图像分割为多个图像块,并计算每个图像块的DCT系数,其中,每个图像块对应于所述第一水印图像的一个像素。
这里,为了便于处理,第一底纹图像通常可以采用所有像素灰度值均相同的图像。在步骤11中,根据第一水印图像的大小,将第一底纹图像分割为多个图像块,使得第一水印图像中的每个像素都能与第一底纹图像中的一个图像块相对应。优选的,上述对应方式可以是第一水印图像中的像素与第一底纹图像中的图像块一一对应。
例如,在第一水印图像的像素大小为64*64,第一底纹图像的像素大小是 512*512的情况下,可以按照一个图像块8*8的尺寸,将第一底纹图像分割为 64*64个图像块,这样,第一水印图像中的每个像素可以对应于第一底纹图像中的一个图像块。一种具体的对应方式可以是:根据某个像素在第一水印图像中的位置坐标,在第一底纹图像中找到具有相同位置坐标的图像块,作为该像素对应的图像块。例如,第一水印图像中的位置坐标(x,y)的像素点,对应于第一底纹图像中位置坐标(x,y)的图像块。
本发明实施例中,第一水印图像中的水印信息将被嵌入到第一底纹图像中。在步骤11中,将获得第一底纹图像的每个图像块的DCT系数,从而将第一底纹图像从空间域转换到DCT变换域。另外,所述第一水印图像具体可以是二值化图像,即像素点或者为黑色(灰度值为0)或者为白色(灰度值为255)。
步骤12,根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,并对调整后的DCT系数进行逆DCT变换,生成携带有水印信息的第二底纹图像。
这里,根据第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,从而在DCT变换域中将第一水印图像中的水印信息嵌入到图像中。然后,根据调整后的DCT系数,通过逆DCT变换,将图像从 DCT变换域转换到空间域,生成第二底纹图像,实现了将第一水印图像中的水印信息嵌入到第二底纹图像中。这里,所述第一底纹图像和第二底纹图像具有相同尺寸。
步骤13,将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像,其中,所述目标二维码中的第一类像素点为黑色,所述目标二维码中的第二类像素点中的至少部分像素点嵌入有所述第二底纹图像的信息;所述第一类像素点是与所述原始二维码图像中的黑色像素点位置相同的像素点,所述第二类像素点是与所述原始二维码图像中的白色像素点位置相同的像素点;
其中,所述原始二维码图像也是为二值化图像,所述第一底纹图像、第二底纹图像和原始二维码图像都具有相同尺寸。
这里,在步骤13进行图像融合时,本发明实施例保证了参考二维码中的黑色像素点在融合图像中不会发生变化,即融合后的目标二维码中与该黑色像素点位置相同的像素点也是黑色。由于二维码图像中的黑色像素点更为重要,因此,通过上述融合方式,本发明实施例能够一定程度上减少参考二维码的图像损失,提高了二维码信息的识读可靠性。另外,对于第二类像素点,可以都嵌入所述第二底纹图像的信息,也可以仅对所述第二类像素点中的部分像素点嵌入所述第二底纹图像的信息。
也就是说,在上述融合处理中,在所述原始二维码图像中的第一像素点为黑色时,所述目标二维码中与所述第一像素点位置相同的第二像素点也是黑色;而在所述原始二维码图像中的第一像素点为白色时,所述目标二维码中与所述第一像素点位置相同的第二像素点可以嵌入所述第二底纹图像中的信息。
通过以上步骤,本发明实施例在将水印信息嵌入到二维码的过程中,减少了对二维码信息的损坏,提高了二维码信息的识读的可靠性。
在上述步骤12中,为了提高防伪信息的安全性,可以不直接使用原始的水印图像进行嵌入,而是嵌入加密后的水印图像。也就是说,第一水印图像可以是原始水印图像加密得到的,具体的,作为一种加密方式,可以对原始水印图像进行置乱变换(ScramblingTransformation),得到第一水印图像。这里,还可以保存加密所使用的密钥,以便于在后续进行水印提取时,利用该密钥进行解密(例如进行反置乱变换),以恢复出水印图像。
上述步骤13中,目标二维码图像中嵌入的所述第二底纹图像的信息,具体可以是第二底纹图像的原始信息,还可以是第二底纹图像的原始信息加密后的信息。例如,在嵌入第二底纹图像的原始信息时,在上述步骤13中,对所述第二底纹图像与原始二维码图像进行融合的一种实现方式,具体为:
根据所述原始二维码图像和第二底纹图像中第一位置的像素点的灰度值,设置所述目标二维码图像中该第一位置的像素点的灰度值,生成所述目标二维码图像,该第一位置具体可以是上述图像中的任一位置。其中:
在所述原始二维码图像中该第一位置的像素点为黑色像素点时,设置所述目标二维码图像中该第一位置的像素点为黑色像素点;
在所述原始二维码图像中该第一位置的像素点为白色像素点时,设置所述目标二维码图像中该第一位置的像素点的灰度值为:所述第二底纹图像中该第一位置的像素点的灰度值。
上述实现方式中,原始二维码图像中的某个位置的像素点为黑色时,融合图像(目标二维码图像)中相同位置的像素点也是黑色;而在原始二维码图像中的某个位置的像素点为黑色时,则根据第二底纹图像中相同位置的像素点的灰度值来设置融合图像中该位置的像素点的灰度,从而实现了两个图像的融合,生成了最终的目标二维码图像。
为了进一步提高信息安全性,本发明实施例在上述步骤13中进行图像融合时,还可以对第二底纹图像进行加密(如通过置乱变换进行加密),生成第三底纹图像。
又例如,在嵌入第二底纹图像的原始信息加密后的信息时,在上述步骤 13中,对所述第二底纹图像与原始二维码图像进行融合的一种实现方式,具体为:根据所述原始二维码图像和第三底纹图像中第一位置的像素点的灰度值,设置所述目标二维码图像中该第一位置的像素点的灰度值,生成所述目标二维码图像,所述第三底纹图像是对所述第二底纹图像加密后得到的,其中:
在所述原始二维码图像中该第一位置的像素点为黑色像素点时,设置所述目标二维码图像中该第一位置的像素点为黑色像素点;
在所述原始二维码图像中该第一位置的像素点为白色像素点时,设置所述目标二维码图像中该第一位置的像素点的灰度值为:第三底纹图像中该第一位置的像素点的灰度值。
以上融合方式可以用以下公式表示:
以上公式中,watermarked_QRDCT表示目标二维码图像中位置坐标(i,j) 的像素点的灰度值;QR(i,j)表示原始二维码图像中位置坐标(i,j)的像素点的灰度值;表示对第二底纹图像进行置乱操作得到的第三底纹图像;表示第三底纹图像中位置坐标(i,j)的像素点的灰度值。
在上述步骤12中,根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,具体可以包括:
在所述第一水印图像的像素点为黑色像素点(灰度值为0)的情况下,按照第一比例调整所述第一底纹图像中对应的图像块的DCT系数中的直流系数;
在所述第一水印图像的像素点为白色像素点(灰度值为255)的情况下,按照第二比例调整所述第一底纹图像中对应的图像块的DCT系数中的直流系数,其中,所述第一比例与第二比例不同
该调整方式可以用以下公式表示:
以上公式中,watermarked_shadingDCT表示调整后的DCT系数; watermark(i,j)表示第一水印图像中位置坐标(i,j)的像素点的灰度值;α和β分别表示一预设值,且0≤α,β<1,且α和β不能同时为0;DCTqrcode表示第一底纹图像中对应的图像块的DCT系数中的直流系数。
在获得调整后的DCT系数后,本发明实施例可以通过逆DCT变换,将所述调整后的DCT系数从DCT变换域转换到空间域,从而生成携带有水印信息的第二底纹图像。另外,为了避免逆DCT变换时图像像素点灰度值发生溢出,本发明实施例需要预先设置第一底纹图像的合适灰度值。
本发明实施例的第一底纹图像中的像素点的灰度值均相同。在上述步骤 11之前,本发明实施例可以按照以下方式生成第一底纹图像:创建一张与所述原始二维码图像尺寸相同的空白图像;将所述空白图像的所有像素的灰度值调整为预设值,得到所述第一底纹图像。这里所述预设值可以根据后续的逆 DCT变换的结果进行调整,以选择一个合适的数值,避免逆DCT变换时图像像素点灰度值发生溢出。
通过以上水印加密方法,本发明实施例可以获得目标二维码图像。该目标二维码图像可以被打印出来粘贴在产品外包装上,或者直接印刷在产品外包装上,以用于防伪验真。
在防伪验真的过程中,通常可以是用户拍摄需要进行防伪验真的图像,该图像通常含有二维码图像,可能是本发明实施例的所述目标二维码图像,也可能是其他的二维码图像。用户将拍摄的图像(这里称之为待处理图像)发送给网络侧的服务器,由服务器对该图像进行水印提取处理,并可以根据提取结果进行防伪验真。当然,也可以是用户利用某个具有本发明实施例的水印提取功能的终端,直接拍摄图像并在本地进行防伪验真。
下文中将进一步介绍一种水印提取方法,该方法能够从本发明实施例以上水印加密方法生成的目标二维码图像中提取出水印图像。
请参照图2,本发明实施例水印提取方法,包括:
步骤21,从待处理图像中提取二维码区域的图像,得到与原始二维码图像相同尺寸的第一中间图像。
这里,待处理图像可以是用户拍摄的含有二维码图案的图像,需要对该图像中的二维码区域进行分析,提取其中可能携带的水印信息。为便于处理,可以按照原始二维码图像的相同尺寸,从待处理图像中截取二维码区域的图像,获得第一中间图像。
步骤22,按照相同的分割方式,将所述第一中间图像与所述原始二维码图像分别分割为多个图像块,计算各个图像块的DCT系数以及相同位置的图像块的DCT系数之间的差值。
这里,对第一中间图像进行分割,假设得到m*m个图像块;对所述原始二维码图像也进行分割,假设也得到m*m个图像块;计算两个图像中各个图像块的DCT系数,并计算两个图像中相同位置的图像块的DCT系数之间的差值。
步骤23,根据所述相同位置的图像块的DCT系数之间的差值是否超出预设门限,生成目标水印图像。
按照上文的水印加密方法生成的目标二维码图像的过程中,第二底纹图像中的图像块的DCT系数是根据第一水印图像的不同灰度值(灰度值为0或255) 进行了不同调整,因此根据步骤23中相同位置的图像块的DCT系数的差异是否超出预设门限,能够确定出该位置对应的水印图像的像素点是黑色像素(灰度值0)或白色像素(灰度值255),从而恢复出水印图像。这里,DCT系数的差异具体是指两个DCT系数的直流系数之间的差异。该预设门限可以根据上述不同调整方式所引入的DCT系数的差异大小来设置,例如,设置为该差异大小的一半。
通过以上步骤,本发明实施例实现了从待处理图像中提取目标水印图像,进而可以与原始水印图像进行比较,生成待处理图像对应的产品的防伪或验真结果。
在生成目标二维码图像时,可以直接嵌入原始水印图像的水印信息,还可以嵌入加密水印图像(即对原始水印图像加密操作后的水印图像)的水印信息。针对以上不同的处理方式,在上述步骤23中,有不同的提取方式。
具体的,针对直接嵌入原始水印图像的水印信息的处理方式,上述步骤 23具体包括:
1)创建一空白图像,所述空白图像的每个像素分别对应所述原始二维码图像中的一个图像块。
2)在所述第一中间图像与所述原始二维码图像中相同位置的图像块的 DCT系数的差值大于或等于一预设门限时,设置所述空白图像中相同位置的像素点为白色,否则,设置所述空白图像中相同位置的像素点为黑色,得到所述目标水印图像。
针对嵌入加密水印图像的水印信息的处理方式,上述步骤23具体包括:
1)创建一空白图像,所述空白图像的每个像素分别对应所述原始二维码图像中的一个图像块。
2)在所述第一中间图像与所述原始二维码图像中相同位置的图像块的 DCT系数的差值大于或等于一预设门限时,设置所述空白图像中相同位置的像素点为白色,否则,设置所述空白图像中相同位置的像素点为黑色,得到中间水印图像。
该过程可以用以下公式表示:
以上公式中,DCT(IextRe)(i,j)表示第一中间图像IextRe中坐标(i,j)的图像块的DCT系数;,DCT(Iori)(i,j)表示原始二维码图像Iori中坐标(i,j)的图像块的DCT系数;threshold表示预设门限;watermarkarnold(i,j)表示中间水印图像中坐标(i,j)的像素点的灰度值。
3)对所述中间水印图像进行解密,得到目标水印图像。
在进行解密操作时,可以利用加密过程中保存的密钥进行解密。例如,在加密过程中使用置乱变换进行加密时,在解密操作中可以通过反置乱变换进行解密。
在实际应用中,不同光照条件下拍摄得到的待处理图像对最终的水印提取结果有着较大的影响,为了减少光照条件的影响,使得水印提取在不同的光照条件下能够保持较高的提取精度,本发明实施例在上述步骤21和22之间,还可以对所述第一中间图像进行灰度校正。具体的,灰度校正的流程如图3所示,包括:
步骤301,根据像素点的灰度值,对所述第一中间图像的像素点进行聚类,得到N个聚类,每个聚类包括有至少一个像素点,所述N为预设的大于1的正整数。
这里,这里使用K-means算法进行聚类处理。
步骤302,按照各个聚类中心的灰度值的递增或递减的顺序,对各个聚类中心进行排序,得到排序后的聚类;按照灰度值递增或递减的顺序,对N个预设灰度值进行排序,得到排序后的N个预设灰度值;将排序后的N个预设灰度值,依次分配给排序后的各个聚类。
这里,所述N个预设灰度值可以根据所述目标二维码图像中灰度值确定。
步骤303,根据每个聚类所分配的灰度值,对该聚类下的像素点的灰度值进行校正。
这里,根据每个聚类分配的灰度值,重新设置该聚类下的各个像素点的灰度值。
通过以上步骤,本发明实施例能够减少不同光照条件对拍摄的待处理图像的影响,使得校正后的图像符合目标二维图像的灰度要求,从而提高了后续水印提取的精度。
以上分别介绍了本发明实施例水印加密方法和水印提取方法,可以看出,本发明实施例在嵌入水印的过程中,生成带有水印的底纹图像,然后将该底纹图像与原始二维码图像融合在一起,以达到不损坏原二维码图像的目的。在水印提取过程中,本发明实施例可以使用K-means算法校正图像的灰度,以达到在不同的光照条件下依然保持高的水印提取精度的目的。
基于以上的水印加密方法,本发明实施例还提供了一种水印加密装置,如图4所示,包括:
第一计算模块41,用于根据第一水印图像的大小,将第一底纹图像分割为多个图像块,并计算每个图像块的DCT系数,其中,每个图像块对应于所述第一水印图像的一个像素;
调整模块42,用于根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,并对调整后的DCT系数进行逆 DCT变换,生成携带有水印信息的第二底纹图像;
融合模块43,用于将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像,其中,所述目标二维码中的第一类像素点为黑色,所述目标二维码中的第二类像素点中的至少部分像素点嵌入有所述第二底纹图像的信息;所述第一类像素点是与所述原始二维码图像中的黑色像素点位置相同的像素点,所述第二类像素点是与所述原始二维码图像中的白色像素点位置相同的像素点;
其中,所述第一水印图像和原始二维码图像均为二值化图像,所述第一底纹图像、第二底纹图像和原始二维码图像具有相同尺寸。
通过以上模块,本发明实施例能够减少水印嵌入过程中对二维码的损坏,提高了二维码信息的识读的可靠性。
优选的,所述装置还包括:
第一变换模块,用于在根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数之前,对原始水印图像进行加密,得到第一水印图像。
优选的,所述融合模块,具体用于:
根据所述原始二维码图像和第二底纹图像中第一位置的像素点的灰度值,设置所述目标二维码图像中该第一位置的像素点的灰度值,生成所述目标二维码图像,其中:
在所述原始二维码图像中该第一位置的像素点为黑色像素点时,设置所述目标二维码图像中该第一位置的像素点为黑色像素点;
在所述原始二维码图像中该第一位置的像素点为白色像素点时,设置所述目标二维码图像中该第一位置的像素点的灰度值为:所述第二底纹图像中该第一位置的像素点的灰度值。
优选的,所述融合模块,具体用于:
根据所述原始二维码图像和第三底纹图像中第一位置的像素点的灰度值,设置所述目标二维码图像中该第一位置的像素点的灰度值,生成所述目标二维码图像,所述第三底纹图像是对所述第二底纹图像加密后得到的,其中:
在所述原始二维码图像中该第一位置的像素点为黑色像素点时,设置所述目标二维码图像中该第一位置的像素点为黑色像素点;
在所述原始二维码图像中该第一位置的像素点为白色像素点时,设置所述目标二维码图像中该第一位置的像素点的灰度值为:第三底纹图像中该第一位置的像素点的灰度值。
优选的,所述调整模块,具体用于:
在所述第一水印图像的像素点为黑色像素点的情况下,按照第一比例调整所述第一底纹图像中对应的图像块的DCT系数中的直流系数;
在所述第一水印图像的像素点为白色像素点的情况下,按照第二比例调整所述第一底纹图像中对应的图像块的DCT系数中的直流系数,其中,所述第一比例与第二比例不同。
优选的,所述装置还包括:
生成模块,用于创建一张与所述原始二维码图像尺寸相同的空白图像;将所述空白图像的所有像素的灰度值调整为预设值,得到所述第一底纹图像,其中,所述预设值使得通过所述逆DCT变换生成的所述第二底纹图像中的像素的灰度值不发生溢出。
请参考图5,本发明实施例还提供了水印加密装置的一种硬件结构框图,如图5所示,该水印加密装置500包括:
处理器502;和
存储器504,在所述存储器504中存储有计算机程序指令,
其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器502 执行以下步骤:
根据第一水印图像的大小,将第一底纹图像分割为多个图像块,并计算每个图像块的DCT系数,其中,每个图像块对应于所述第一水印图像的一个像素;
根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,并对调整后的DCT系数进行逆DCT变换,生成携带有水印信息的第二底纹图像;
将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像,其中,所述目标二维码中的第一类像素点为黑色,所述目标二维码中的第二类像素点中的至少部分像素点嵌入有所述第二底纹图像的信息;所述第一类像素点是与所述原始二维码图像中的黑色像素点位置相同的像素点,所述第二类像素点是与所述原始二维码图像中的白色像素点位置相同的像素点;
其中,所述第一水印图像和原始二维码图像均为二值化图像,所述第一底纹图像、第二底纹图像和原始二维码图像具有相同尺寸。
进一步地,如图5所示,该水印加密装置500还可以包括网络接口501、输入设备503、硬盘505、和显示设备506。
上述各个接口和设备之间可以通过总线架构互连。总线架构可以是包括任意数量的互联的总线和桥。具体由处理器502代表的一个或者多个具有计算能力的处理器,所述处理器可以包括中央处理器(CPU,Central Processing Unit) 和/或图形处理器(GPU,Graphics Processing Unit),以及由存储器504代表的一个或者多个存储器的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起。可以理解,总线架构用于实现这些组件之间的连接通信。总线架构除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,这些都是本领域所公知的,因此本文不再对其进行详细描述。
所述网络接口501,可以连接至网络(如因特网、局域网等),从网络中接收数据,并可以将接收到的数据保存在硬盘505中。
所述输入设备503,可以接收操作人员输入的各种指令,并发送给处理器 502以供执行。所述输入设备503可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等)。
所述显示设备506,可以将处理器502执行指令获得的结果进行显示,例如显示模型训练的进度以及答案预测结果等。
所述存储器504,用于存储操作系统运行所必须的程序和数据,以及处理器502计算过程中的中间结果等数据。
可以理解,本发明实施例中的存储器504可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器 (EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。本文描述的装置和方法的存储器504旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器504存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统5041和应用程序5042。
其中,操作系统5041,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序5042,包含各种应用程序,例如浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序5042中。
本发明上述实施例揭示的水印加密方法可以应用于处理器502中,或者由处理器502实现。处理器502可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述水印加密方法、水印提取方法的各步骤可以通过处理器 502中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器502可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器504,处理器502读取存储器504中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
需要说明的是,该实施例中的装置是与上述图1所示的方法对应的装置,上述各实施例中的实现方式均适用于该设备的实施例中,也能达到相同的技术效果。本发明实施例提供的上述装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
在本发明的一些实施例中,还提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现以下步骤:
根据第一水印图像的大小,将第一底纹图像分割为多个图像块,并计算每个图像块的DCT系数,其中,每个图像块对应于所述第一水印图像的一个像素;
根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,并对调整后的DCT系数进行逆DCT变换,生成携带有水印信息的第二底纹图像;
将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像,其中,所述目标二维码中的第一类像素点为黑色,所述目标二维码中的第二类像素点中的至少部分像素点嵌入有所述第二底纹图像的信息;所述第一类像素点是与所述原始二维码图像中的黑色像素点位置相同的像素点,所述第二类像素点是与所述原始二维码图像中的白色像素点位置相同的像素点;
其中,所述第一水印图像和原始二维码图像均为二值化图像,所述第一底纹图像、第二底纹图像和原始二维码图像具有相同尺寸。
该程序被处理器执行时能实现上述水印加密方法中的所有实现方式,且能达到相同的技术效果,为避免重复,此处不再赘述。
请参照图6,本发明实施例提供了一种水印提取装置,包括:
提取模块61,用于从待处理图像中提取二维码区域的图像,得到与原始二维码图像相同尺寸的第一中间图像;
计算模块62,用于按照相同的分割方式,将所述第一中间图像与所述原始二维码图像分别分割为多个图像块,计算各个图像块的DCT系数以及相同位置的图像块的DCT系数之间的差值;
生成模块63,用于根据所述相同位置的图像块的DCT系数之间的差值是否超出预设门限,生成目标水印图像。
优选的,所述生成模块,具体用于:
创建一空白图像,所述空白图像的每个像素分别对应所述原始二维码图像中的一个图像块;
在所述第一中间图像与所述原始二维码图像中相同位置的图像块的DCT 系数的差值大于或等于一预设门限时,设置所述空白图像中相同位置的像素点为白色,否则,设置所述空白图像中相同位置的像素点为黑色,得到所述目标水印图像。
优选的,所述生成模块,具体用于:
创建一空白图像,所述空白图像的每个像素分别对应所述原始二维码图像中的一个图像块;
在所述第一中间图像与所述原始二维码图像中相同位置的图像块的DCT 系数的差值大于或等于一预设门限时,设置所述空白图像中相同位置的像素点为白色,否则,设置所述空白图像中相同位置的像素点为黑色,得到中间水印图像;
对所述中间水印图像进行解密,得到目标水印图像。
优选的,上述装置还包括:
校正模块,用于在将所述第一中间图像与所述原始二维码图像分别分割为多个图像块之前,对所述第一中间图像进行灰度校正。
优选的,所述校正模块,具体用于:
根据像素点的灰度值,对所述第一中间图像的像素点进行聚类,得到N 个聚类,每个聚类包括有至少一个像素点,所述N为预设的大于1的正整数;
按照各个聚类中心的灰度值的递增或递减的顺序,对各个聚类中心进行排序,并按照灰度值递增或递减的顺序,将N个预设灰度值分配给各个聚类;
根据每个聚类所分配的灰度值,对该聚类下的像素点的灰度值进行校正。
请参考图7,本发明实施例还提供了水印提取装置的一种硬件结构框图,如图7所示,该水印提取装置700包括:
处理器702;和
存储器704,在所述存储器704中存储有计算机程序指令,
其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器702 执行以下步骤:
从待处理图像中提取二维码区域的图像,得到与原始二维码图像相同尺寸的第一中间图像;
按照相同的分割方式,将所述第一中间图像与所述原始二维码图像分别分割为多个图像块,计算各个图像块的DCT系数以及相同位置的图像块的DCT 系数之间的差值;
根据所述相同位置的图像块的DCT系数之间的差值是否超出预设门限,生成目标水印图像。
进一步地,如图7所示,该水印提取装置700还可以包括网络接口701、输入设备703、硬盘707、和显示设备706。
上述各个接口和设备之间可以通过总线架构互连。总线架构可以是包括任意数量的互联的总线和桥。具体由处理器702代表的一个或者多个具有计算能力的处理器,所述处理器可以包括中央处理器(CPU,Central Processing Unit) 和/或图形处理器(GPU,Graphics Processing Unit),以及由存储器704代表的一个或者多个存储器的各种电路连接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其它电路连接在一起。可以理解,总线架构用于实现这些组件之间的连接通信。总线架构除包括数据总线之外,还包括电源总线、控制总线和状态信号总线,这些都是本领域所公知的,因此本文不再对其进行详细描述。
所述网络接口701,可以连接至网络(如因特网、局域网等),从网络中接收数据(如训练数据),并可以将接收到的数据保存在硬盘707中。
所述输入设备703,可以接收操作人员输入的各种指令,并发送给处理器 702以供执行。所述输入设备703可以包括键盘或者点击设备(例如,鼠标,轨迹球(trackball)、触感板或者触摸屏等)。
所述显示设备706,可以将处理器702执行指令获得的结果进行显示,例如显示模型训练的进度以及答案预测结果等。
所述存储器704,用于存储操作系统运行所必须的程序和数据,以及处理器702计算过程中的中间结果等数据。
可以理解,本发明实施例中的存储器704可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器 (EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。本文描述的装置和方法的存储器704旨在包括但不限于这些和任意其它适合类型的存储器。
在一些实施方式中,存储器704存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统7041和应用程序7042。
其中,操作系统7041,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序7042,包含各种应用程序,例如浏览器(Browser)等,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序7042中。
本发明上述实施例揭示的水印提取方法可以应用于处理器702中,或者由处理器702实现。处理器702可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述水印加密方法、水印提取方法的各步骤可以通过处理器 702中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器702可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器704,处理器702读取存储器704中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、现场可编程门阵列(FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
需要说明的是,该实施例中的装置是与上述图2所示的方法对应的装置,上述各实施例中的实现方式均适用于该设备的实施例中,也能达到相同的技术效果。本发明实施例提供的上述装置,能够实现上述方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
在本发明的一些实施例中,还提供了一种计算机可读存储介质,其上存储有程序,该程序被处理器执行时实现以下步骤:
从待处理图像中提取二维码区域的图像,得到与原始二维码图像相同尺寸的第一中间图像;
按照相同的分割方式,将所述第一中间图像与所述原始二维码图像分别分割为多个图像块,计算各个图像块的DCT系数以及相同位置的图像块的DCT 系数之间的差值;
根据所述相同位置的图像块的DCT系数之间的差值是否超出预设门限,生成目标水印图像。
该程序被处理器执行时能实现上述水印提取方法中的所有实现方式,且能达到相同的技术效果,为避免重复,此处不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的水印加密方法、水印提取方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁盘或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种水印加密方法,其特征在于,包括:
根据第一水印图像的大小,将第一底纹图像分割为多个图像块,并计算每个图像块的DCT系数,其中,每个图像块对应于所述第一水印图像的一个像素;
根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,并对调整后的DCT系数进行逆DCT变换,生成携带有水印信息的第二底纹图像;
将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像,其中,所述目标二维码中的第一类像素点为黑色,所述目标二维码中的第二类像素点中的至少部分像素点嵌入有所述第二底纹图像的信息;所述第一类像素点是与所述原始二维码图像中的黑色像素点位置相同的像素点,所述第二类像素点是与所述原始二维码图像中的白色像素点位置相同的像素点;
其中,所述第一水印图像和原始二维码图像均为二值化图像,所述第一底纹图像、第二底纹图像和原始二维码图像具有相同尺寸。
2.根据权利要求1所述的方法,其特征在于,在根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数之前,所述方法还包括:
对原始水印图像进行加密,得到第一水印图像。
3.根据权利要求1所述的方法,其特征在于,所述将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像,包括:
根据所述原始二维码图像和第二底纹图像中第一位置的像素点的灰度值,设置所述目标二维码图像中该第一位置的像素点的灰度值,生成所述目标二维码图像,其中:
在所述原始二维码图像中该第一位置的像素点为黑色像素点时,设置所述目标二维码图像中该第一位置的像素点为黑色像素点;
在所述原始二维码图像中该第一位置的像素点为白色像素点时,设置所述目标二维码图像中该第一位置的像素点的灰度值为:所述第二底纹图像中该第一位置的像素点的灰度值。
4.根据权利要求1所述的方法,其特征在于,所述将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像,包括:
根据所述原始二维码图像和第三底纹图像中第一位置的像素点的灰度值,设置所述目标二维码图像中该第一位置的像素点的灰度值,生成所述目标二维码图像,所述第三底纹图像是对所述第二底纹图像加密后得到的,其中:
在所述原始二维码图像中该第一位置的像素点为黑色像素点时,设置所述目标二维码图像中该第一位置的像素点为黑色像素点;
在所述原始二维码图像中该第一位置的像素点为白色像素点时,设置所述目标二维码图像中该第一位置的像素点的灰度值为:第三底纹图像中该第一位置的像素点的灰度值。
5.根据权利要求1所述的方法,其特征在于,所述原始水印图像为一二值化图像;所述根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,包括:
在所述第一水印图像的像素点为黑色像素点的情况下,按照第一比例调整所述第一底纹图像中对应的图像块的DCT系数中的直流系数;
在所述第一水印图像的像素点为白色像素点的情况下,按照第二比例调整所述第一底纹图像中对应的图像块的DCT系数中的直流系数,其中,所述第一比例与第二比例不同。
6.根据权利要求1所述的方法,其特征在于,在将第一底纹图像分割为多个图像块之前,所述方法还包括:
创建一张与所述原始二维码图像尺寸相同的空白图像;
将所述空白图像的所有像素的灰度值调整为预设值,得到所述第一底纹图像。
7.一种水印提取方法,其特征在于,包括:
从待处理图像中提取二维码区域的图像,得到与原始二维码图像相同尺寸的第一中间图像;
按照相同的分割方式,将所述第一中间图像与所述原始二维码图像分别分割为多个图像块,计算各个图像块的DCT系数以及相同位置的图像块的DCT系数之间的差值;
根据所述相同位置的图像块的DCT系数之间的差值是否超出预设门限,生成目标水印图像。
8.根据权利要求7所述的方法,其特征在于,所述根据所述相同位置的图像块的DCT系数之间的差值是否超出预设门限,生成目标水印图像,包括:
创建一空白图像,所述空白图像的每个像素分别对应所述原始二维码图像中的一个图像块;
在所述第一中间图像与所述原始二维码图像中相同位置的图像块的DCT系数的差值大于或等于一预设门限时,设置所述空白图像中相同位置的像素点为白色,否则,设置所述空白图像中相同位置的像素点为黑色,得到所述目标水印图像。
9.根据权利要求7所述的方法,其特征在于,所述根据所述相同位置的图像块的DCT系数之间的差值是否超出预设门限,生成目标水印图像,包括:
创建一空白图像,所述空白图像的每个像素分别对应所述原始二维码图像中的一个图像块;
在所述第一中间图像与所述原始二维码图像中相同位置的图像块的DCT系数的差值大于或等于一预设门限时,设置所述空白图像中相同位置的像素点为白色,否则,设置所述空白图像中相同位置的像素点为黑色,得到中间水印图像;
对所述中间水印图像进行解密,得到目标水印图像。
10.根据权利要求7所述的方法,其特征在于,在将所述第一中间图像与所述原始二维码图像分别分割为多个图像块之前,按照以下步骤,对所述第一中间图像进行灰度校正:
根据像素点的灰度值,对所述第一中间图像的像素点进行聚类,得到N个聚类,每个聚类包括有至少一个像素点,所述N为预设的大于1的正整数;
按照各个聚类中心的灰度值的递增或递减的顺序,对各个聚类中心进行排序,并按照灰度值递增或递减的顺序,将N个预设灰度值分配给各个聚类;
根据每个聚类所分配的灰度值,对该聚类下的像素点的灰度值进行校正。
11.一种水印加密装置,其特征在于,包括:
第一计算模块,用于根据第一水印图像的大小,将第一底纹图像分割为多个图像块,并计算每个图像块的DCT系数,其中,每个图像块对应于所述第一水印图像的一个像素;
调整模块,用于根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,并对调整后的DCT系数进行逆DCT变换,生成携带有水印信息的第二底纹图像;
融合模块,用于将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像,其中,所述目标二维码中的第一类像素点为黑色,所述目标二维码中的第二类像素点中的至少部分像素点嵌入有所述第二底纹图像的信息;所述第一类像素点是与所述原始二维码图像中的黑色像素点位置相同的像素点,所述第二类像素点是与所述原始二维码图像中的白色像素点位置相同的像素点;
其中,所述第一水印图像和原始二维码图像均为二值化图像,所述第一底纹图像、第二底纹图像和原始二维码图像具有相同尺寸。
12.一种水印加密装置,其特征在于,包括:
处理器;以及
存储器,在所述存储器中存储有计算机程序指令,
其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行以下步骤:
根据第一水印图像的大小,将第一底纹图像分割为多个图像块,并计算每个图像块的DCT系数,其中,每个图像块对应于所述第一水印图像的一个像素;
根据所述第一水印图像的像素点的灰度值,调整所述第一底纹图像中对应的图像块的DCT系数,并对调整后的DCT系数进行逆DCT变换,生成携带有水印信息的第二底纹图像;
将所述第二底纹图像与原始二维码图像进行融合,生成携带有水印信息的目标二维码图像,其中,所述目标二维码中的第一类像素点为黑色,所述目标二维码中的第二类像素点中的至少部分像素点嵌入有所述第二底纹图像的信息;所述第一类像素点是与所述原始二维码图像中的黑色像素点位置相同的像素点,所述第二类像素点是与所述原始二维码图像中的白色像素点位置相同的像素点;
其中,所述第一水印图像和原始二维码图像均为二值化图像,所述第一底纹图像、第二底纹图像和原始二维码图像具有相同尺寸。
13.一种水印提取装置,其特征在于,包括:
提取模块,用于从待处理图像中提取二维码区域的图像,得到与原始二维码图像相同尺寸的第一中间图像;
计算模块,用于按照相同的分割方式,将所述第一中间图像与所述原始二维码图像分别分割为多个图像块,计算各个图像块的DCT系数以及相同位置的图像块的DCT系数之间的差值;
生成模块,用于根据所述相同位置的图像块的DCT系数之间的差值是否超出预设门限,生成目标水印图像。
14.一种水印提取装置,其特征在于,包括:
处理器;以及
存储器,在所述存储器中存储有计算机程序指令,
其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行以下步骤:
从待处理图像中提取二维码区域的图像,得到与原始二维码图像相同尺寸的第一中间图像;
按照相同的分割方式,将所述第一中间图像与所述原始二维码图像分别分割为多个图像块,计算各个图像块的DCT系数以及相同位置的图像块的DCT系数之间的差值;
根据所述相同位置的图像块的DCT系数之间的差值是否超出预设门限,生成目标水印图像。
15.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时,实现如权利要求1至6中任一项所述的水印加密方法的步骤,或者,实现如权利要求7至10中任一项所述的水印提取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110711416.4A CN115526282A (zh) | 2021-06-25 | 2021-06-25 | 水印加密方法、水印提取方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110711416.4A CN115526282A (zh) | 2021-06-25 | 2021-06-25 | 水印加密方法、水印提取方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115526282A true CN115526282A (zh) | 2022-12-27 |
Family
ID=84694872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110711416.4A Pending CN115526282A (zh) | 2021-06-25 | 2021-06-25 | 水印加密方法、水印提取方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115526282A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116957893A (zh) * | 2023-06-26 | 2023-10-27 | 海易科技(北京)有限公司 | 水印生成方法、装置、电子设备和计算机可读介质 |
-
2021
- 2021-06-25 CN CN202110711416.4A patent/CN115526282A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116957893A (zh) * | 2023-06-26 | 2023-10-27 | 海易科技(北京)有限公司 | 水印生成方法、装置、电子设备和计算机可读介质 |
CN116957893B (zh) * | 2023-06-26 | 2024-04-16 | 海易科技(北京)有限公司 | 水印生成方法、装置、电子设备和计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wan et al. | A comprehensive survey on robust image watermarking | |
CN111784556B (zh) | 在图像中添加数字水印的方法、装置、终端及存储介质 | |
CN110084013B (zh) | 生物特征模板安全性及密钥产生 | |
CN105471575B (zh) | 一种信息加密、解密方法及装置 | |
CN103745151B (zh) | 一种二维码与动态密码相结合的身份认证方法 | |
Jia et al. | RIHOOP: Robust invisible hyperlinks in offline and online photographs | |
CN106503655B (zh) | 一种基于人脸识别技术的电子签名方法和验签方法 | |
CN110766594B (zh) | 信息隐藏方法及装置、检测方法、装置及防伪溯源方法 | |
KR20160006595A (ko) | 위조 방지용 2차 부호화로 바코드 보강 | |
WO2012041063A1 (en) | System and method for image authentication | |
Duan et al. | High-capacity image steganography based on improved FC-DenseNet | |
Tang et al. | Structural feature-based image hashing and similarity metric for tampering detection | |
CN106934440B (zh) | 一种编码信息中嵌入信息的方法和系统 | |
Li et al. | Data hiding in iris image for privacy protection | |
CN108038488B (zh) | 基于sift和lbp混合的鲁棒性图像哈希方法 | |
Aberna et al. | Digital image and video watermarking: methodologies, attacks, applications, and future directions | |
CN114998080A (zh) | 人脸防篡改水印生成方法、篡改检测方法及属性检测方法 | |
CN113538197A (zh) | 水印提取方法、装置、存储介质以及电子设备 | |
CN115526282A (zh) | 水印加密方法、水印提取方法、装置及存储介质 | |
CN108491913B (zh) | 一种含密美化qr码认证的方法 | |
CN114078071A (zh) | 图像溯源方法、装置及介质 | |
CN114330621B (zh) | 一种基于标识信息的二维码防伪方法、装置、存储介质 | |
CN109840574B (zh) | 一种二维码信息的隐藏方法、装置、电子设备及存储介质 | |
CN112329599A (zh) | 数字签名识别方法、装置、电子设备及存储介质 | |
CN113570494A (zh) | 一种加密数字水印添加方法及系统、设备和存储介质 |
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 |