基于电子图章的可见数字图像水印的嵌入与检测方法与流程

文档序号:13697446阅读:118来源:国知局
技术领域本发明涉及电子图章的水印实现方法,尤其涉及一种基于电子图章的可见数字图像水印的嵌入与检测方法。

背景技术:
由于各种电子表单的使用也越来越频繁,对电子表单的真实性和合法性的鉴别是一个无法回避的课题。本发明针对电子表单中广泛使用的电子图章提出可见数字图像水印技术,该技术旨在通过对电子表单中的电子图章嵌入可见的数字图像水印来对电子表单的真实性和合法性提供鉴别依据。通常数字图像水印存在以下问题:1)不可见的数字图像水印不能给合法的文件是否经过水印嵌入一个比较直观的感受;2)通常的可见数字图像水印的鲁棒性一般比较弱,尤其是针对特定情况下的旋转、缩放、压缩和噪声的鲁棒性很脆弱。

技术实现要素:
为了解决以上提到的不足,本发明提供了一种基于电子图章的可见数字图像水印的嵌入方法,包括如下步骤:S10:用ASCII码的值表示待嵌入的水印,然后依据预先确立的规则和映射关系对各编码进行变换后得到水印信息;S20:扫描待嵌入水印的电子图章,获得其像素信息;S30:依据所获取的像素信息和水印信息,确认水印嵌入的方式和位置;S40:依据所确认的水印嵌入方式和位置,实现水印的嵌入。可选的,在所述步骤S00中,对各编码进行变换所依据的规则和映射关系通过以下步骤确立:S001:基于ASCII表,选取一ASCII码区间33-127的95个字符,将其依次置于一个字符表容器V中;S002:针对每个字符随机生成一个互不重复的整数,且所有整数均落在[0,94]内;S003:依据每个字符所对应生成的整数,将各字符换至该整数所示的次序位置;进而生成映射表M,其中M[i]=Ω(V[i]),Ω(V[i])是ASCII码为V[i]的字符,Ω为映射规则;在所述步骤S10中,先将待嵌入的水印转换成对应的ASCII码,存储得到水印字符容器L,对其中每个ASCII码的码值减去32,然后依据步骤S003确立的映射规则对水印字符容器L中的元素进行映射变换,得到水印容器W,其中,W[i]=Ω(V[L[i]]),最后将水印容器中的字符用二进制数表示,存入二进制水印容器realCode,从而得到所述水印信息。可选的,所述步骤S20进一步包括:S201:对待嵌入水印的印章图像进行扫描,分别从左到右、从右到左、从上到下、从下到上检测得到印章图章中圆的四条切线;S202:根据所确定的切线确定印章图像圆心的坐标(c、r)和印章图像的圆环的外圈半径R;S203:沿着过圆心的直线的方向进行检测,确定印章图像的圆环的环宽realborder;所述像素信息至少包括步骤S202确定的圆心的坐标(c、r)和印章图像圆环的外圈半径R,以及步骤S203确定的环宽。可选的,所述步骤S203进一步包括:沿着过圆心的直线依次检测直线上点的颜色,自第一个检测到的具有图章颜色的点开始:每检测到一个点,无论其是图章颜色还是白色,累积叠加计算一个宽度值;其中,每当在具有颜色的点后检测到一个白色点时,则开始计算一个间隔值,且针对后续连续出现的每个白色点累积叠加计算一个间隔值,直至出现新的非白色点,或连续累积计算的间隔值达到预先自定义的阈值,若达到预先自定义的阈值,则停止检测,利用累积计算得到的宽度值减去本次累积计算得到的间隔值,最终得到所述环宽realborder。可选的,所述步骤S30进一步包括:若所述环宽realborder小于一预设的值,则确认该印章图像的圆环只适合嵌入一圈水印,且该水印的嵌入半径为:R1=R-realborder/2;水印嵌入的坐标为(x,y),其中:x=Cosα*R1+c;y=Sinα*R1+rα=-π+2*i*πrealCode_num]]>realCode_num为二进制水印容器realCode中数码的个数;i为二进制水印容器realCode中数码的序号;得到二进制水印容器realCode中每个数码对应的坐标;在所述步骤S40中,依据所确定的各坐标进行水印的嵌入。可选的,所述步骤S30进一步包括:若所述环宽realborder不小于一预设的值,则确认该印章图像的圆环适合嵌入两圈水印,且该水印的嵌入半径为:R1=R-realborder/3;R2=R-(realborder/3)*2第一圈水印嵌入的坐标为(x,y),其中:x=Cosα*R1+c;y=Sinα*R1+rα=-π+2*i*πrealCode_num]]>第二圈水印嵌入的坐标为(x,y),其中:x=cosα*R2+c,y=sinα*R2+rα=-π+4*i*πrealCode_num+2*πrealCode_num]]>realCode_num为二进制水印容器realCode中数码的个数;i为二进制水印容器realCode中数码的序号;得到二进制水印容器realCode中每个数码对应的坐标;在所述步骤S40中,依据所确定的各坐标进行水印的嵌入。可选的,在所述步骤S30中,确认水印嵌入的位置与方式时,包括确认水印嵌入印章图像的具体坐标(x,y);在所述步骤S40中,依据所确定的坐标将二进制水印容器中水印信息的0或1数码依据顺序嵌入到印章图像;嵌入时,若对应的数码为1,则对应的坐标(x,y)处不做变化,若对应的数码为0,则将以对应坐标(x,y)为中心的一个边长为N的正方形区域内的所有点变为白色。本发明还提供了一种基于电子图章的可见数字图像水印的检测方法,用以实现对本发明提供的基于电子图章的可见数字图像水印的嵌入方法嵌入的电子印章进行检测,包括如下步骤:S0:扫描待检测的电子图章,获得其像素信息;S1:依据嵌入时的规则提取水印信息;S2:将所提取的水印信息与原始的水印信息进行比对,根据两者的相似度判断所检测的电子印章的水印是否合法。可选的,所述步骤S0进一步包括:S01:对待嵌入水印的印章图像进行扫描,分别从左从左到右、从右到左、从上到下、从下到上检测得到印章图章中圆的四条切线;S02:根据所确定的切线确定印章图像圆心的坐标(c、r)和印章图像的圆环的外圈半径R;S03:沿着过圆心的直线的方向进行检测,确定印章图像的圆环的环宽realborder;所述像素信息至少包括步骤S02确定的圆心的坐标(c、r)和印章图像圆环的外圈半径R,以及步骤S03确定的环宽。可选的,所述步骤S1包括:S11:依据所确立的环宽确立水印的圈数,进而得到每圈水印的半径;S12:针对每圈水印,依据其半径和圆心,查找圆环的白色的点,依据白色的点找到边长为N的正方形区域,进而确认其水印信息为1;S13:将这些水印信息依次记录于检测水印容器F。可选的,在所述步骤S12中,若所找到的边长为N的正方形区域中白色点的个数满足以下公式:wp_num≥(N-1)2-[N-12*(2-1)]2*4(N-1)2*N2]]>则确认其水印信息为1,在步骤S13中进行记录。可选的,在所述步骤S1中,至少包括依据所提取的水印信息得到检测水印容器F;所述步骤S2进一步包括:依次将检测水印容器F中每8位二进制组成一个单字节数Bi存入比较容器B中,其中:Bi=b0*27+b1*26+b2*25+b3*24+b4*23+b5*22+b6*21+b7*20;依次比较检测水印容器B和原始水印信息对应的容器W中每个相同位置的元素,针对每个8位二进制数:累积计算字符相同的元素个数si;对应的相似度Si通过以下公式计算:Si=si*8/realcode_num;进而得到相似度容器S;最后选择相似度容器S中最大的一个元素Sm,将其与预设的置信相似度ST进行比较,若大于ST,则认为该水印合法。可见,本发明提供了一种基于电子图章的可见数字图像水印实现方法,可以理解为包括水印信息嵌入过程和水印信息检测过程,其中:水印信息嵌入的过程为:对需要嵌入水印的电子图章进行扫描检测,获得其像素信息,根据图章的信息确定水印嵌入的方式及嵌入的具体位置。临时生成一张随机的映射表,对需要嵌入图章中的水印信息使用该映射表进行随机映射,得到实际用于嵌入的水印信息,然后将该水印信息嵌入待嵌入位置;水印信息检测的过程为:对待检测的电子图章进行扫描,获得其具体的像素信息,根据水印的嵌入规则从中提取像素信息,将提取到的像素信息以旋转匹配以及阈值处理的方法生成待验证水印与原始的水印信息进行对比,判断该图章是否合法。本发明的非盲水印实现方法可以抵抗旋转、缩放、JPEG压缩、噪声等常规单一攻击,并且在抵抗联合攻击上也表现出较强的鲁棒性。附图说明图1是本发明一实施例中水印嵌入的流程示意图;图2是本发明一实施例中水印检测的流程示意图。具体实施方式以下将结合图1和图2对本发明提供的基于电子图章的可见数字图像水印的嵌入与检测方法进行详细的描述,其为本发明可选的实施例,可以认为,本领域技术人员在不改变本发明精神和内容的范围内,能够对其进行修改和润色。下文针对每一步骤,以两种方式对本发明的技术方案进行描述,以期待更全面、细致、准确地描述本发明请求保护以及所公开的方案。本发明提供了一种基于电子图章的可见数字图像水印的嵌入方法,包括如下步骤:S00:通过以下步骤确立各编码进行变换所依据的规则和映射关系:S001:基于ASCII表,选取一ASCII码区间33-127的95个字符,将其依次置于一个字符表容器V中;S002:针对每个字符随机生成一个互不重复的整数,且所有整数均落在[0,94]内;S003:依据每个字符所对应生成的整数,将各字符换至该整数所示的次序位置;进而生成映射表M,其中M[i]=Ω(V[i]),Ω(V[i])是ASCII码为V[i]的字符,Ω为映射规则;进一步具体来说,其又可区分为以下几个步骤进行描述:步骤1.1基于ASCII表,选取可输入的有意义字符的ASCII码区间33~127,一共95字符,将他们的ASCII码依次置于一个字符表容器V中。步骤1.2从V中的第一个元素开始,以当前系统时间T为种子,对每个元素生成一个随机整数k,k=random(T).(0,94),随机整数的范围是k∈[0,94];步骤1.3将元素V[i]与元素V[k]在容器中的位置作交换,直到V中的最后一个元素结束,其中元素V[i]与元素V[k]分别是字符表容器V中的第i个和第k个元素;步骤1.4用字符表容器V中的元素生成一张映射表M,M[i]=Ω(V[i]),其中Ω(V[i])是ASCII码为V[i]的字符,Ω为映射规则;S10:用ASCII码的值表示待嵌入的水印,然后依据预先确立的规则和映射关系对各编码的值进行变换后得到水印信息;在本发明可选的实施例中,在所述步骤S10中,先将待嵌入的水印转换成对应的ASCII码,存储得到水印字符容器L,对其中每个ASCII码的码值减去32,然后依据步骤S003确立的映射规则对水印字符容器L中的元素进行映射变换,得到水印容器W,其中,W[i]=Ω(V[L[i]]),最后将水印容器中的字符用二进制数表示,存入二进制水印容器realCode,从而得到所述水印信息。进一步具体来说,步骤S10又可区分为以下几个步骤进行描述:步骤1.5将待嵌入的水印转换成对应的ASCII码值存入水印字符容器L中,对容器L中的元素L[i]做变换L[i]=L[i]-32,其中L[i]是L中的第i个元素;步骤1.6将L中的元素用映射表M进行映射,得到预处理之后实际嵌入图章中的水印容器W,其中W[i]=Ω(V[L[i]]),W[i]是W中的第i个元素;步骤1.7将实际嵌入的字符的ASCII码值用8位二进制数表示,存入二进制水印容器realCode。S20:扫描待嵌入水印的电子图章,获得其像素信息;可选的,所述步骤S20进一步包括:S201:对待嵌入水印的印章图像进行扫描,分别从左从左到右、从右到左、从上到下、从下到上检测得到印章图章中圆的四条切线;S202:根据所确定的切线确定印章图像圆心的坐标(c、r)和印章图像的圆环的外圈半径R;S203:沿着过圆心的直线的方向进行检测,确定印章图像的圆环的环宽realborder;所述像素信息至少包括步骤S202确定的圆心的坐标(c、r)和印章图像圆环的外圈半径R,以及步骤S203确定的环宽。其中,所述步骤S203进一步包括:沿着过圆心的直线依次检测直线上点的颜色,自第一个检测到的具有图章颜色的点开始:每检测到一个点,无论其是图章颜色还是白色,累积叠加计算一个宽度值;其中,每当在具有颜色的点后检测到一个白色点时,则开始计算一个间隔值,且针对后续连续出现的每个白色点累积叠加计算一个间隔值,直至出现新的非白色点,或连续累积计算的间隔值达到预先自定义的阈值,若达到预先自定义的阈值,则停止检测,利用累积计算得到的宽度值减去本次累积计算得到的间隔值,最终得到所述环宽realborder。进一步具体来说,步骤S20又可区分为以下几个步骤进行描述:步骤1.8将待嵌入水印的图章进行扫描,分别从左到右、从右到左、从上到下、从下到上检测图章中圆的四条切线,分别为cmin、cmax、rmin、rmax;步骤1.9根据圆的四条切线计算圆心的横坐标c和纵坐标r,计算圆环的外圈半径R,R=r-rmin;步骤1.10沿着过圆心的直线检测圆环的宽度,圆环的宽度定义为border,依次检测直线上每个点的颜色,从第一个检测到图章颜色为红色的点开始,其中红色为图章中圆环的颜色;步骤1.11每遇到一个颜色为红色的点,border就加一,直到检测到一个颜色为白色的点,gap设为1,其中gap为防止噪声的抖动值;步骤1.12检测到一个点为白色,gap加一同时border加一,若gap<6,则继续检测下一个点P,否则进行步骤1.13。若P的颜色为红色则进行步骤1.11,否则进行步骤1.12。步骤1.13圆环的环宽检测完毕,实际的环宽定义为realborder,realborder=border-6;S30:依据所获取的像素信息和水印信息,确认水印嵌入的方式和位置;在本发明一可选实施例中,所述步骤S30进一步包括:若所述环宽realborder小于一预设的值,则确认该印章图像的圆环只适合嵌入一圈水印,且该水印的嵌入半径为:R1=R-realborder/2;水印嵌入的坐标为(x,y),其中:x=Cosα*R1+c;y=Sinα*R1+rα=-π+2*i*πrealCode_num]]>realCode_num为二进制水印容器realCode中数码的个数;i为二进制水印容器realCode中数码的序号;得到二进制水印容器realCode中每个数码对应的坐标;在本发明另一可选的实施例中,所述步骤S30进一步包括:若所述环宽realborder不小于一预设的值,则确认该印章图像的圆环适合嵌入两圈水印,且该水印的嵌入半径为:R1=R-realborder/3;R2=R-(realborder/3)*2第一圈水印嵌入的坐标为(x,y),其中:x=Cosα*R1+c;y=Sinα*R1+rα=-π+4*i*πrealCode_num]]>第二圈水印嵌入的坐标为(x,y),其中:x=cosα*R2+c,y=sinα*R2+rα=-π+4*i*πrealCode_num+2*πrealCode_num]]>realCode_num为二进制水印容器realCode中数码的个数;i为二进制水印容器realCode中数码的序号;得到二进制水印容器realCode中每个数码对应的坐标;在所述步骤S40中,依据所确定的各坐标进行水印的嵌入。进一步具体来说,步骤S30又可区分为以下几个步骤进行描述:步骤1.14若realborder<20则该圆环只适合嵌入一圈水印,否则转入步骤1.15。嵌入一圈水印时水印的嵌入半径R1=R-realborder/2,从第一个嵌入水印的位置开始,水印嵌入的坐标为(x,y),x=Cosα*R1+c;y=Sinα*R1+r。其中realCode_num为容器realCode中元素的个数,i为容器realCode中元素的序号。得到每个水印嵌入的坐标(x,y)后转入步骤1.16进行水印的嵌入。步骤1.15若realborder≥20则该圆环只适合嵌入两圈水印。嵌入两圈水印时水印的嵌入半径R1=R-realborder/3;R2=R-(realborde/r3)*2,从第一个嵌入水印的位置开始,第一圈水印嵌入的坐标为(x,y),x=Cosα*R1+c;y=Sinα*R1+r。其中realCode_num为容器realCode中元素的个数,i为容器realCode中元素的序号。第二圈水印嵌入的坐标为(x,y),x=cosα*R2+c,y=sinα*R2+r。其中α=-π+4*i*πrealCode_num+2*πrealCode_num,]]>realCode_num为容器realCode中元素的个数,i为容器realCode中元素的序号。得到每个水印嵌入的坐标(x,y)后转入步骤1.16进行水印的嵌入。S40:依据所确认的水印嵌入方式和位置,实现水印的嵌入。本发明可选的实施例中,在所述步骤S40中,依据所确定的坐标将二进制水印容器中水印信息的0或1数码依据顺序嵌入到印章图像;嵌入时,若对应的数码为1,则对应的坐标(x,y)处不做变化,若对应的数码为0,则将以对应坐标(x,y)为中心的一个边长为N的正方形区域内的所有点变为白色。进一步具体来说,步骤S30又可区分为以下几个步骤进行描述:步骤1.16根据坐标(x,y)处对应的待嵌入水印W[i]进行水印嵌入,若Wi=0则对应的坐标(x,y)处不做变化,若Wi=1则将以对应坐标(x,y)为中心的一个边长为5的正方形内的所有点变为白色。将所有待嵌入的水印按序嵌入之后就完成了水印信息嵌入过程。完成水印嵌入之后,可得到嵌入水印后的图章,然后将原始水印信息和映射表进行保存,作为水印提取时的依据,以备提取使用。本发明还提供了一种基于电子图章的可见数字图像水印的检测方法,用以实现对本发明提供的基于电子图章的可见数字图像水印的嵌入方法嵌入的电子印章进行检测,其方式其实可以参照嵌入时的方式进行操作,本实施例给出一具体方案:包括如下步骤:S0:扫描待检测的电子图章,获得其像素信息;所述步骤S0进一步包括:S01:对待嵌入水印的印章图像进行扫描,分别从左从左到右、从右到左、从上到下、从下到上检测得到印章图章中圆的四条切线;S02:根据所确定的切线确定印章图像圆心的坐标(c、r)和印章图像的圆环的外圈半径R;S03:沿着过圆心的直线的方向进行检测,确定印章图像的圆环的环宽realborder;所述像素信息至少包括步骤S02确定的圆心的坐标(c、r)和印章图像圆环的外圈半径R,以及步骤S03确定的环宽。进一步具体来说,步骤S0又可区分为以下几个步骤进行描述:步骤2.1将待检测水印的图章进行扫描,分别从左到右、从右到左、从上到下、从下到上检测图章中圆的四条切线,分别为cmin、cmax、rmin、rmax;步骤2.2根据圆的四条切线计算圆心的横纵坐标(c,r),圆的外圈半径R=r-rmin;步骤2.3沿着过圆心的直线检测圆环的宽度,圆环的宽度定义为border,依次检测直线上每个点的颜色,从第一个检测到图章颜色为红色的点开始,其中红色为图章中圆环的颜色;步骤2.4每遇到一个颜色为红色的点,border就加一,直到检测到一个颜色为白色的点,gap设为1,其中gap为防止噪声的抖动值;步骤2.5检测到一个点为白色,gap加一同时border加一,若gap<6,则继续检测下一个点P,否则进行步骤2.6。若P的颜色为红色则进行步骤2.4,否则进行步骤2.5。步骤2.6环宽检测完毕,实际的环宽realborder=border-Nc;S1:依据嵌入时的规则提取水印信息;本发明一可选的实施例中,所述步骤S1包括:S11:依据所确立的环宽确立水印的圈数,进而得到每圈水印的半径;S12:针对每圈水印,依据其半径和圆心,查找圆环的白色的点,依据白色的点找到边长为N的正方形区域,进而确认其水印信息为1;S13:将这些水印信息依次记录于检测水印容器F。再进一步可选实施例中,在所述步骤S12中,若所找到的边长为N的正方形区域中白色点的个数满足以下公式:wp_num≥(N-1)2-[N-12*(2-1)]2*4(N-1)2*N2]]>则确认其水印信息为1,在步骤S13中进行记录。进一步具体来说,步骤S1又可区分为以下几个步骤进行描述:步骤2.7根据圆环的宽度realborder判断水印嵌入的圈数,若realborder<20,则嵌入了一圈,则嵌入半径为R1=R-realborder/2,从以(c,r)为圆心R1为半径的圆的最左端的点p0(c-R1,r)开始,判断p0是否为白色的点。转入步骤2.9。步骤2.8水印嵌入了两圈,则水印嵌入的半径分别为R1=R-realborder/3;R2=R-(realborder/3)*2。步骤2.9若p0是白色的点,则转入步骤2.13。否则找另外三个点pu,pr,pur,其中pu.X=p0.X,pu.Y=p0.Y+1,pr.X=p0.X+1,pr.Y=p0.Y(其中p0.X+1≤c,否则转入步骤2.10),pur.X=p0.X+1,pur.Y=p0.Y+1。分别计算这三个点与圆心的距离Du,Dr,Dur,Du=(pu.X-c)2+(pu.Y-r)2,Dr=(pr.X-c)2+(pr.Y-r)2,]]>Dur=(pur.X-c)2+(pur.Y-r)2,]]>p0重新置为距离最小的那个点。转入步骤2.9。步骤2.10若p0是白色的点,则转入步骤2.13否则找另外三个点pr,pd,prd,其中pr.X=p0.X+1,pr.Y=p0.Y,pd.X=p0.X,pd.Y=p0.Y-1(其中p0.Y-1≤r,否则转入步骤2.12),prd.X=p0+1,prd.Y=p0.Y-1。分别计算这三个点与圆心的距离Dr,Dd,Drd,Du=(pu.X-c)2+(pu.Y-r)2,Dd=(pd.X-c)2+(pd.Y-r)2,]]>Drd=(prd.X-c)2+(prd.Y-r)2,]]>p0重新置为距离最小的那个点。转入步骤2.10。步骤2.11若p0是白色的点,则转入步骤2.13否则找另外三个点pl,pd,pld,其中pd.X=p0.X,pd.Y=p0.Y-1,pl.X=p0.X-1,pr.Y=p0.Y(其中p0.X-1≥c,否则转入步骤2.12)pld.X=p0.X-1,pld.Y=p0.Y-1。分别计算这三个点与圆心的距离Dl,Dd,Dld,Dl=(pl.X-c)2+(pl.Y-r)2,Dd=(pd.X-c)2+(pd.Y-r)2,]]>Dld=(pld.X-c)2+(pld.Y-r)2,]]>p0重新置为距离最小的那个点。转入步骤2.11。步骤2.12若p0是白色的点,则转入步骤2.13否则找另外三个点pl,pu,plu,其中pl.X=p0.X-1,pr.Y=p0.Y,pu.X=p0.X,pu.Y=p0.Y+1(其中p0.Y+1≤r,否则转入步骤2.18)pld.X=p0.X-1,pld.Y=p0.Y-1。分别计算这三个点与圆心的距离Dl,Du,Dlu,Dl=(pl.X-c)2+(pl.Y-r)2,Du=(pu.X-c)2+(pu.Y-r)2,]]>Dlu=(plu.X-c)2+(plu.Y-r)2,]]>p0重新置为距离最小的那个点。转入步骤2.12。步骤2.13p0为白点,以(p0.X,p0.Y-N/2)为中心N为边长的正方形为一个嵌入水印信息为1的位置,可以计算出第一个嵌入水印信息为1的位置与圆心构成的直线与直线y=r的夹角γ=Atan2(r-p0.Y-2,c-p0.X)。步骤2.14根据水印信息的字符个数num计算出实际嵌入的二进制位数realCode_num=num*8。如果水印嵌入了一圈,则从找到的第一个白点p0开始检测坐标(x,y)为中心N为边长的正方形处的点的像素,其中x=cosα*R1+c,y=sinα*R1+r,α=-π+γ+2*i*π/realcode_num;如果水印嵌入了两圈,则外圈从找到的第一个白点p0开始检测坐标(x,y)为中心N为边长的正方形处的点的像素,其中x=cosα*R1+c,y=sinα*R1+r,α=-π+γ+4*i*π/realcode_num;内圈检测坐标(x,y)为中心N为边长的正方形处的点的像素,其中x=cosα*R2+c,y=sinα*R2+r,α=-π+γ+4*i*π/realcode_num+2*π/realcode_num。步骤2.15统计上述每个位置处的正方形中像素点为白色的个数,若白色点的个数wp_num满足wp_num≥(5-1)2-[5-12*(2-1)]2*4(5-1)2*52,]]>则该位置处水印信息记为1,否则记为0,将每个水印信息依次记录进检测水印容器F。在本发明可选的实施例中,可以在嵌入时存储相关信息,在另一可选实施例中也可以据原始水印信息实时进行计算,从而获得原始水印信息,具体来说:将保存的原始水印转换成对应的ASCII码值存入水印字符容器L中,对容器L中的元素L[i]做变换L[i]=L[i]-32,其中L[i]为L中的第i个元素。将L中的元素用保存的对应的映射表M进行映射,得到预处理之后实际嵌入图章中的水印存入水印容器W中,其中W[i]=Ω(V[L[i]]),其中W[i]为水印容器W中的第i个元素。S2:将所提取的水印信息与原始的水印信息进行比对,根据两者的相似度判断所检测的电子印章的水印是否合法。在本发明可选的实施例中,所述步骤S2进一步包括:依次将检测水印容器F中每8位二进制组成一个单字节数Bi存入比较容器B中,其中:Bi=b0*27+b1*26+b2*25+b3*24+b4*23+b5*22+b6*21+b7*20;依次比较检测水印容器B和原始水印信息对应的容器W中每个相同位置的元素,针对每个8位二进制数:累积计算字符相同的元素个数si;对应的相似度Si通过以下公式计算:Si=si*8/realcode_num;进而得到相似度容器S;最后选择相似度容器S中最大的一个元素Sm,将其与预设的置信相似度ST进行比较,若大于ST,则认为该水印合法。进一步具体来说,步骤S2又可区分为以下几个步骤进行描述:步骤2.16依次将容器F中每8位二进制bi(i=0,1,...7)组成一个单字节数Bi存入比较容器B中,其中Bi=b0*27+b1*26+b2*25+b3*24+b4*23+b5*22+b6*21+b7*20,依次比较容器B和容器W中每个相同位置的元素,每有一个相同位置的元素相同则字符相同的个数si加一,其中si为比较结果容器s中的第i个元素,即第i次比较时容器B和容器W中对应位置元素相同的元素的个数,最后计算两个容器字符的相似度Si=si*8/realcode_num,其中Si为相似度容器S中的第i个元素,即第i次比较时的相似度。将容器F中最后一个元素移到第一个元素处,其他元素相应后移一位。如果此时元素容器F中的元素次序与F中初始的次序不同则转入步骤2.16。步骤2.17选择容器S中最大的一个元素,即为检测出的水印信息的相似度Sm,根据Sm判断检测出的水印信息是否合法,转入步骤2.19。步骤2.18水印检测失败,完成水印信息检测过程。步骤2.19若Sm≥0.9,则水印检测成功且水印信息合法,否则水印信息不合法。完成水印信息检测过程。可见,本发明提供了一种基于电子图章的可见数字图像水印实现方法,可以理解为包括水印信息嵌入过程和水印信息检测过程,其中:水印信息嵌入的过程为:对需要嵌入水印的电子图章进行扫描检测,获得其像素信息,根据图章的信息确定水印嵌入的方式及嵌入的具体位置。临时生成一张随机的映射表,对需要嵌入图章中的水印信息使用该映射表进行随机映射,得到实际用于嵌入的水印信息,然后将该水印信息嵌入待嵌入位置;水印信息检测的过程为:对待检测的电子图章进行扫描,获得其具体的像素信息,根据水印的嵌入规则从中提取像素信息,将提取到的像素信息以旋转匹配以及阈值处理的方法生成待验证水印与原始的水印信息进行对比,判断该图章是否合法。本发明的非盲水印实现方法可以抵抗旋转、缩放、JPEG压缩、噪声等常规单一攻击,并且在抵抗联合攻击上也表现出较强的鲁棒性。综上所述,本发明基于电子图章的可见数字图像水印实现方法,在水印信息预处理过程中使用映射表加密水印信息可以防止大量的机器实验模拟出水印的嵌入规则防止水印的伪造。在嵌入过程中根据图章的环宽和嵌入水印信息量的大小确定水印的嵌入规则是的嵌入更佳灵活难以伪造。在水印信息提取过程中使用旋转匹配的方法以及阈值处理的方法可以增强水印信息的识别率。本发明的技术方案在鲁棒性上,可以抵抗旋转、缩放、JPEG压缩、噪声等常规单一攻击,并且在抵抗联合攻击上也表现出较强的鲁棒性。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1