技术领域
本发明属于图形数据版权保护领域,具体涉及一种针对基于虚拟图形条码的图形水印嵌入方法及检测方法。
背景技术
随着计算机技术和互联网的发展与普及,以及多媒体数据存储和传输技术的进步,数字产品的传输和共享变得非常容易,也得数字产品的非法复制变得非常容易,随之带来了一系列有关版权的问题。为了保护版权所有者的利益,迫切需要找到一种有效的方法来保护数字产品的知识产权。
矢量图形数据水印算法不同于传统的基于图像水印算法,这主要是由于矢量图形数据不具有图像数据应用的普遍性等原因,同时还在于矢量图形数据在数据结构、存储形式、表现方式、应用环境、使用要求以及可能的攻击行为等方面与图像等多媒体数据都不一样,一般的图像水印算法还很难直接应用在矢量图形数据上。由此可见,数据水印技术在矢量图形数据上的应用具有更加潜在的用途。实际上,作为多媒体信息的一种重要形式,图形数据的版权保护问题也是一个非常重要的问题。随着计算机辅助设计/计算机辅助制造技术(CAD/CAM)的日益发展和逐渐广泛的应用,各种图纸、3D模型的安全性和知识产权保护问题开始备受重视。另外,还有各种 图形与动画等等,这些都属于图形数据。近年来,图形数据的数字水印技术开始逐渐得到重视。
发明内容
为了克服现有的矢量地图数据的容易被非法拷贝、被逆向破解和原始数据无损恢复的不足,本发明提供一种能以有效解决矢量图形数据被非法拷贝、被逆向破解和原始数据无损恢复问题的基于虚拟图形条码的矢量图形水印嵌入方法及检测方法。
本发明解决其技术问题所采用的技术方案是:
一种虚拟图形条码的矢量图形水印嵌入方法,所述矢量图形水印嵌入方法包括以下步骤:
(1)、定义一个包含版权信息的虚拟图形条码
(1.1)、把加密后的版权信息调制到虚拟图形条码中。
(1.2)、以地图正北方向为虚拟图形条码的基准方向,根据用户特定需求把虚拟图形条码旋转α(0≤α≤360)度,以防止非法用户检测虚拟图形条码;
(1.3)、虚拟图形条码中的各个间距λ(0≤λ),表示了加密的版权信息;
(1.4)、如果虚拟图形条码大于矢量图形数据范围,就按比例缩小虚拟图形条码;
(1.5)、如果虚拟图形条码小于矢量图形数据范围,就重复虚拟图形条码,直到覆盖矢量图形数据范围;
(1.6)、为了增强图形水印的鲁棒性,可以增加多个方向的虚拟图形条码,确保虚拟图形条码能被正确检测到;
(2)、虚拟图形条码水印特征点的嵌入策略
(2.1)、当虚拟图形条码线与矢量图形坐标序列相交,且交点与线段的端点重合时,那么就不需要做任何的处理,直接使用端点;
(2.2)、当虚拟图形条码线与矢量图形坐标序列相交,但交点与端点之间的距离小于一个限定的误差值d时,就删除原来最近的端点,以新的交点代替端点;
(2.3)、当虚拟图形条码线与矢量图形坐标序列正常相交,形成的交点并非以上两种特殊情况,采用交点沿着网格线左右移动一个限定的误差值d,那么这两个点中,选择其中一个点插入坐标串;
(3)、虚拟图形条码水印嵌入方法
对矢量图形坐标序列与虚拟图形条码直线中的每一条直线检测是否有交点,如果存在交点,那么就根据特征点嵌入策略,把相关交点插入到坐标序列中,具体方法步骤如下:
(3.1)、确定矢量图形的基准方向;
(3.2)、对矢量图形坐标序列数据中的相邻两点(X1,Y1)和(X2,Y2),判断虚拟图形条码直线Y=kX+b与线段(X1,Y1)-(X2,Y2)之间是否有交点,把(X1,Y1)和(X2,Y2)分别代入虚拟图形条码直线Y=KX+B得判别式(Y1-kX1-b)和 (Y2-kX2-b),再根据此二个判别式判断交点情况。
(3.3)、当(Y2-kX2-b)×(Y1-kX1-b)>0,则说明(X1,Y1)和(X2,Y2)在虚拟图形条码直线同一侧,因此不可能存在交点。
(3.4)、当
(3.5)、当(Y2-kX2-b)=0,则说明(X2,Y2)与虚拟图形条码直线相交于(X2,Y2)。
(3.6)、当(Y1-kX2-b)=0,则说明(X1,Y1)与虚拟图形条码直线相交于(X1,Y1)。
(3.7)、当(Y2-kX2-b)×(Y1-kX1-b)<0,则说明(X1,Y1)和(X2,Y2)在虚拟图形条码直线的两侧,存在虚拟图形条码特征点。
(3.8)、如果存在交点,则设交点为(X,Y),那么其一定是(X1,Y1)-(X2,Y2)线段上的一点,其(X,Y)坐标可以由(X1,Y1) -(X2,Y2)两点决定:
把公式(1)确定的交点(X,Y)代入已知的直线方程Y=K×X+B求得μ:
再把由(2)求得的μ代入(1)式,即可求得(X,Y)坐标的坐标值。
(3.9)、把(X,Y)坐标按水印特征点嵌入策略调整后插入到坐标序列中的(X1,Y1)与(X2,Y2)之间,从而实现虚拟图形条码水印嵌入到矢量图形中。
(4)、虚拟图形条码水印的检测方法
虚拟图形条码水印的检测是其嵌入方法的逆过程,具体方法步骤如下:
(4.1)、校准矢量图形数据基准方向;
(4.2)、从虚拟图形条码配置文件中输入图形水印参数;
(4.3)、执行(3.2)——(3.8)检测虚拟图形条码水印特征点。
(4.4)、当(Y2-kX2-b)=0,则说明(X2,Y2)与虚拟图形条码直线相交于(X2,Y2),此特征点为嵌入的虚拟图形条码水印特征点,水印特征点计数器S水印++;。
(4.5)、当(Y1-kX1-b)=0,则说明(X1,Y1)与虚拟图形条码直线相交于(X1,Y1),此特征点为嵌入的虚拟图形条码水印特征点,水印特征点计数器S水印++;。
(4.6)、除此外,都是非嵌入的水印特征点,噪声特征点计数器S噪声++。
(4.7)、全部虚拟图形条码直线的水印特征点检测完毕,计算
(4.8)、根据检测到的S水印图形水印特征点,在矢量图形数据中标识,并进行虚拟图形条码纠错,然后再用图形的形式表示出虚拟图形条码水印特征图。
(4.9)、提取虚拟图形条码,解释虚拟图形条码中的信息。
(4.10)、把获取的加密版权信息进行解密处理,获得版权信息。
本发明技术核心思想是在分析矢量图形特点的基础上,根据虚拟图形条码的几何约束特性,以及虚拟图形条码具有天然的自我纠错与 抗剪切性能,提出了一种基于虚拟图形条码的矢量图形水印算法,包括:水印的嵌入方法与检测方法。
本发明的优点是:解决了目前矢量图形水印算法对坐标数据序列组织形式的依赖,解决了矢量图形的水印定位、剪切和化简等水印攻击问题,极大地提高了水印的鲁棒性;通过设计一个特定的虚拟图形条码作为水印标识,以虚拟条码表示水印信息,实现了小容量嵌入数据表示水印大内容问题;算法对矢量图形数据造成的精度误差是可控的,且水印可以被精确提取出来。本发明能够为矢量图形数据的传播与应用提供有效的版权保护。
附图说明
图1为基于虚拟图形条码的矢量图形水印嵌入流程图
图2为调制有加密版权信息的虚拟图形条码标识。
图3图4图5为虚拟图形条码嵌入图形水印特征点的求解示意图。
具体实施方式
下面结合附图对本发明作进一步描述。
参照图2~图5,一种虚拟图形条码的矢量图形水印嵌入方法,所述矢量图形水印嵌入方法包括以下步骤:
(1)、图2定义一个包含版权信息的虚拟图形条码
(1.1)、把加密后的版权信息调制到虚拟图形条码中。
(1.2)、以地图正北方向为虚拟图形条码的基准方向,根据用户特定需求把虚拟图形条码旋转α(0≤α≤360)度,以防止非法用户 检测虚拟图形条码;
(1.3)、虚拟图形条码中的各个间距λ(0≤λ),表示了加密的版权信息;
(1.4)、如果虚拟图形条码大于矢量图形数据范围,就按比例缩小虚拟图形条码;
(1.5)、如果虚拟图形条码小于矢量图形数据范围,就重复虚拟图形条码,直到覆盖矢量图形数据范围;
(1.6)、为了增强图形水印的鲁棒性,可以增加多个方向的虚拟图形条码,确保虚拟图形条码能被正确检测到;
(2)、虚拟图形条码水印特征点的嵌入策略
(2.1)、当虚拟图形条码线与矢量图形坐标序列相交,且交点与线段的端点重合时,那么就不需要做任何的处理,直接使用端点;
(2.2)、当虚拟图形条码线与矢量图形坐标序列相交,但交点与端点之间的距离小于一个限定的误差值d时,就删除原来最近的端点,以新的交点代替端点;
(2.3)、当虚拟图形条码线与矢量图形坐标序列正常相交,形成的交点并非以上两种特殊情况,采用交点沿着网格线左右移动一个限定的误差值d,那么这两个点中,选择其中一个点插入坐标串;
(3)、虚拟图形条码水印嵌入方法
对矢量图形坐标序列与虚拟图形条码直线中的每一条直线检测是否有交点,如果存在交点,那么就根据特征点嵌入策略,把相关交点插入到坐标序列中,具体方法步骤如下:
(3.1)、确定矢量图形的基准方向;
(3.2)、对矢量图形坐标序列数据中的相邻两点(X1,Y1)和(X2,Y2),判断虚拟图形条码直线Y=kX+b与线段(X1,Y1)-(X2,Y2)之间是否有交点,把(X1,Y1)和(X2,Y2)分别代入虚拟图形条码直线Y=KX+B得判别式(Y1-kX1-b)和(Y2-kX2-b),再根据此二个判别式判断交点情况。
(3.3)、图3图4表示了:当(Y2-kX2-b)×(Y1-kX1-b)>0,则说明(X1,Y1)和(X2,Y2)在虚拟图形条码直线同一侧,因此不可能存在交点。
(3.4)、当
(3.5)、当(Y2-kX2-b)=0,则说明(X2,Y2)与虚拟图形条码直线相交于(X2,Y2)。
(3.6)、当(Y1-kX1-b)=0,则说明(X1,Y1)与虚拟图形条码直线相交于(X1,Y1)。
(3.7)、图5表示了:当(Y2-kX2-b)×(Y1-kX1-b)<0,则说明(X1,Y1)和(X2,Y2)在虚拟图形条码直线的两侧,存在虚拟图形条码特征点。
(3.8)、如果存在交点,则设交点为(X,Y),那么其一定是(X1,Y1)-(X2,Y2)线段上的一点,其(X,Y)坐标可以由(X1,Y1)-(X2,Y2)两点决定:
把公式(1)确定的交点(X,Y)代入已知的直线方程Y=K×X+B求得μ:
再把由(2)求得的μ代入(1)式,即可求得(X,Y)坐标的坐标值。
(3.9)、把(X,Y)坐标按水印特征点嵌入策略调整后插入到坐标序列中的(X1,Y1)与(X2,Y2)之间,从而实现虚拟图形条码水印嵌入到矢量图形中。
(4)、虚拟图形条码水印的检测方法
虚拟图形条码水印的检测是其嵌入方法的逆过程,具体方法步骤如下:
(4.1)、校准矢量图形数据基准方向;
(4.2)、从虚拟图形条码配置文件中输入图形水印参数;
(4.3)、执行(3.2)——(3.8)检测虚拟图形条码水印特征点。
(4.4)、当(Y2-kX2-b)=0,则说明(X2,Y2)与虚拟图形条码直线相交于(X2,Y2),此特征点为嵌入的虚拟图形条码水印特征点,水印特征点计数器s水印++;。
(4.5)、当(Y1-kX1-b)=0,则说明(X1,Y1)与虚拟图形条码直线相交于(X1,Y1),此特征点为嵌入的虚拟图形条码水印特征点,水印特征点计数器S水印++;。
(4.6)、除此外,都是非嵌入的水印特征点,噪声特征点计数器S噪声++。
(4.7)、全部虚拟图形条码直线的水印特征点检测完毕,计算
(4.8)、根据检测到的S水印图形水印特征点,在矢量图形数据中标识,并进行虚拟图形条码纠错,然后再用图形的形式表示出虚拟图形条码水印特征图。
(4.9)、提取虚拟图形条码,解释虚拟图形条码中的信息。
(4.10)、把获取的加密版权信息进行解密处理,获得版权信息。