一种基于空间冗余关系的电子海图水印方法

文档序号:9305038阅读:524来源:国知局
一种基于空间冗余关系的电子海图水印方法
【技术领域】
[0001] 本发明属于地图学及地理信息科学的信息处理领域,尤其涉及一种基于空间冗余 关系的电子海图水印方法。
【背景技术】
[0002] 电子海图作为数字地图的一部分,是近年来逐步受到广泛重视的一种重要的地图 资源,特别是随着各国日益重视海洋资源的开发与利用,此外,其具有更加重要的战略价 值。对于如此重要的数字资源,与之相对的却是版权保护和信息安全技术的研究较为落后。 "一种用于海图版权标识的小波域数字水印技术"和"双特征下的二维电子海图水印技术研 究"是目前可检索到的有关电子海图版权保护的文献。电子海图本质上也是一种二维数字 地图,故具有一定的通用性。而学界对于电子海图的信息安全技术专门研究较少的原因有 两个:一是海图的自身价值较高,且制作及流通受到严格管理,很多研究人员苦于缺乏足够 的资源,而无法开展深入研究;另一方面,由于该领域部分应用技术的敏感性,很多成果并 没有得到及时发表。值得一提的是,随着近年来电子海图在商业领域的迅速应用,如何确保 电子海图的版权和对电子海图进行真伪鉴别已经成为亟待解决的技术问题。

【发明内容】

[0003] 本发明的目的是提供一种能保持电子海图空间拓扑关系无损,并能有效抵抗非法 复制,维护用户版权的,基于空间冗余关系的电子海图水印方法。
[0004] 一种基于空间冗余关系的电子海图水印方法,包括以下步骤,
[0005] 步骤一:读取海图文件,确定所有顶点的空间位置关系,顶点的空间位置关系为独 立、在线上或者在面上;
[0006] 步骤二:对于在线上以及围绕成环状的顶点集合,将其按照连接关系存储为链 表;
[0007] 步骤三:根据水印位图信息,转换为二进制的水印字符串;
[0008] 步骤四:读取链表内节点元素,并按照两个相邻节点为一组进行分组;
[0009] 步骤五:对于每一个比特的水印编码,顺序提取分组,获得每个分组内对象的数据 块,进而获得坐标值,采用向链表内的分组嵌入冗余对象的方式嵌入水印信息,得到嵌入水 印信息的海图文件;
[0010] 步骤六:构造可供水印提取的密钥,根据每次水印嵌入的顶点和分组情况标记顶 点ID,构建二维矩阵作为提取密钥;
[0011] 步骤七:根据提取密钥,依次读取二值水印序列;
[0012] 步骤八:根据读取二值水印序列,得到检测水印位图,同原始水印位图进行比较, 计算相似度,如果相似度大于阈值,将步骤五中得到的嵌入水印信息的海图文件输出,如果 相似度小于阈值,不输出海图文件。
[0013] 本发明一种基于空间冗余关系的电子海图水印方法,还可以包括:
[0014] 1、对于在线上以及围绕成环状的顶点集合,将其按照连接关系存储为链表结构的 方法为:
[0015] 对于任意节点Vi, ',若存在连接关系R,使得ViRVj成立,且vviRVj,则得到 链表Li=L七{vi,v』;
[0016] 对于描述区域的连接关系Q,存在ViQvi+1Q. . .vi+niQVhQv^,得到链表关系L;= L;U{vvi+1, . . . ,vi+n !,vn+1};
[0017] 若在关系R下,Li门L.j辛①,且L;门L.j=vm,LpLk=vn,vmRvn成立,说明多条 路线之间存在公共顶点,贝lj定义新链表L' =1^(1 {vm,vn};
[0018] 若在Q关系下QnL 〇,说明区域之间存在公共重叠的线路,得到新链表的连 接关系L' =QnL
[0019] 2、采用向链表内的分组嵌入冗余对象的方式嵌入水印信息的方法为:
[0020] 分组元素a,b的坐标值(xa,ya),(xb,yb),取得中点坐标为:
待嵌入的水印值为1,则在a,b之间增加一个冗余节点(x^y。); 如果水印值为〇,不在a,b之间插入节点。
[0021] 3、根据提取密钥,依次读取二值水印序列的操作为:
[0022] 根据提取密钥,得到关键顶点的链表,如果两个相邻顶点中存在一个中间节点,则 提取水印比特值为1,如果两个相邻顶点中无中间节点,则提取水印比特值为〇,得到二值 水印序列。
[0023]4、检测水印位图和原始水印位图的相似度为:
[0026] 其中,W为原始水印,Wt为检测出的水印,N为水印容量。
[0027] 有益效果:
[0028] 本发明实现了一种无损的水印嵌入方法,很好地保持了地图空间位置关系的完整 性,适合电子海图数据的分发使用。本发明提供一种能保持电子海图空间拓扑关系无损,并 能有效抵抗非法复制,维护用户版权的基于空间冗余关系的水印方法。根据水印生成规则, 转换水印序列,并通过相似度计算,获得与原始水印的相似数据,确定水印的完整性。
【附图说明】
[0029] 图1本发明方法的整体流程图;
[0030] 图2空间冗余的水印嵌入方法;
[0031] 图3水印嵌入示意图;
[0032] 图4水印嵌入前后的情况对比;图4(a)嵌入水印前的海图;图4(b)嵌入水印后的 海图;
[0033] 图5水印嵌入位置的部分解析;
[0034] 图6嵌入的水印位图。
【具体实施方式】
[0035] 下面将结合附图对本发明做进一步详细说明。
[0036] 1、本发明的目的是这样实现的:包括水印的嵌入和提取,其步骤包括:如图1所示
[0037] (1)读取海图文件,确定所有顶点空间位置关系。
[0038] (2)对于线上以及环状顶点集合,将其按照连接关系存储为链表结构。
[0039] (3)将水印位图转换为二进制字符串。
[0040] (4)读取链表内节点元素,按照两个节点为一组进行分组。
[0041] (5)对于每一个比特的水印编码,顺序提取分组对象的定义块。
[0042] (6)当水印值为1时,向分组对象内插入一新的元素,当水印值为0时,转入下一步 骤。
[0043] (7)构造可供水印提取的密钥,将水印序列依次写入载体对象内。
[0044] (8)根据提取密钥,依次读取二值水印序列。
[0045] (9)根据读取的二值水印序列和水印位图的大小,生成水印位图,同原始水印,进 行比较和相似度计算。
[0046] 本发明还可以包括:
[0047] 2、所述的"读取海图文件,确定所有顶点空间位置关系"的步骤中,对于电子海图 来说,也符合矢量数据结构的组织特点,故所有顶点的数据组织形式包括了对象定义信息、 对象属性信息以及对象描述信息等内容。对于任意顶点v来说,都需要通过确定顶点ID,获 得对象定义信息,并间接读取对象属性信息内的对象名称和空间位置,所谓对象的空间位 置即顶点v的二维坐标(vx,vy)。
[0048] 3、所述的"对于线上以及环状顶点集合,将其按照连接关系存储为链表结构"步骤 中,规则如下:
[0049] 对于任意链表L;,其表内元素应是{vdv2, . . .,'},即顺序连接的节点。
[0050] 对于海图V来说,其可能包含陆地信息,但必包含海洋航行信息,故关键性地理节 点之间的连接可能是航路、岛礁等关键信息。
[0051] 为此,对于任意节点Vi,Vj,若存在连接关系R,使得ViRVj成立,且vv贝lj LfLiU{v^Vj},即所定义的链表。
[0052] 同理,对于一个描述区域的连接关系Q来说,必然存在ViQvi+1Q. . .vi+n 立,此时,Li=L;U{v;,vi+1,. . .,vi+nvn+1},即所定义的链表关系。
[0053] 进一步地,如图1所示,若在关系R下,Q门L.j乒〇,且L;门L.j=vm,Q门Lk= vn,vmRvn成立,说明多条路线之间存在公共顶点,则定义L' =L;fl{vm,vn},即所定义的新 链表。
[0054] 同理,如图2所示,若在Q关系下QnLj# 说明区域之间存在公共重叠的线 路,则定义L'iQnL,。L'代表了海图内性关键的连接关系。
[0055]关键顶点和关键路线共同组成了供水印嵌入的链表。
[0056] 5、所述的"将水印位图转换为二进制字符串"步骤中,对水印位图进行逐行扫描, 得出一串二值水
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1