1引言在计算机图形学等领域,人们通常设定运动物体的若干关键位置{0i:x i,y i,z i,i=1,2,...,m即一组物体所在的局部坐标向量,对这些关键位置进行适当的插值或逼近,以确定运动坐标系的一般位置,进而可确定物体的一般位置O关键帧插值系统中要解决的一个重要问题是物体朝向的插值问题O物体的朝向一般可由欧拉(Euler>角来表示,因此,朝向的插值问题可简单地转化为三个欧拉角的插值问题O但欧拉角表示又有它的局限性,因为旋转矩阵是不可交换的,基于欧拉角的旋转一定要按某个特定的次序进行;此外,等量的欧拉角变化不一定引起等量的旋转变化,从而导致旋转的不均匀;欧拉角还有可能导致自由度的丧失,即所谓的万向节锁 (Gimble Lock>现象万向节锁是一种容易影响到欧拉角表现的现象O本质上说,它意味着你将在某些时候失去角度上的自由性O这归咎于欧拉角总是以球坐标系表示O四元数法正是针对传统方法在处理任意旋转方面的缺点提出来的,它可以表示矢量和物体的旋转,并且没有冗余信息,因此比传统的方法更为有效,目前绝大部分商业三维软件都是采用该方祛来解决三维场景中的任意旋转问题的O四元数就不会遭受万向节锁的痛苦,因为它不用三个分离的轴表示旋转O Shoemake为了解决因采用欧拉角表示而带来的缺陷,最早把四元数引入到动画中,并提出了用单位四元数空间上的Bezier样条来插值四元数[1]O Barr等人则提出了一个采用四元数对带有角速度约束的景物的朝向进行光滑插值方法,他们的方法允许用户对轨迹端点处的角速度进行约束[2]O Kim通过构造一组新的基,提出了把三维欧氏空间曲线变化到单位四元数空间曲线的一般性方法[3]O 2四元数四元数最早是为了扩展复数应用而产生与发展起来的O然而,人们发现四元数也可以应用在计算机图形学上,作为表现旋转的可选择方法之一O实际上四元数可用来描述所有形式的旋转O四元数0是一个四维复数,它由一个实部和三个虚部组成:0=w+xi^+y ^+z ^,w,x,y,z!R其中:i^2=^2=z^2=-1,i^^= ^,^i^=- ^,^^=i^,^^=-i^,^i^= ^,i^^=- ^四元数0的模和逆分别为:0=w2+x2+y2+z20-1=w-xi^-y ^-z ^这里可以把四元数0表示为有序对0=(w,U">,其中,U"= (x,y,z>!R3O任何向量U#!R3很容易地映射成四元数空间:U$% (0,U$>O单位四元数g是模为1的四元数,即:w2+x2+y2+z2=1因此,四元数0单位化的表达式为:g=0=0w2+x2+y2+z23基于四元数旋转的原理单位四元数表示3D空间中的一个方位,可视化单位四元利用四元数实现三维地球场景的漫游张燕(中国科学院地理科学与资源研究所1北京100101)摘要场景的交互性操作是地球三维可视化的重要研究内容O尽管人们通过直接滤波欧拉角来平滑方位数据1但是平滑欧拉角未必会产生平滑的运动1这是由旋转群和欧氏空间之间的度量单位的差异引起的O~amilton于1853年发现的四元数提供了描述旋转的途径O文章首先讨论了四元数的一般原理籍优越性;接着论述了三维虚拟地球的建模方法1采用四元数技术实现了三维地球的任意旋转的问题;最后在数字地球原型系统上进行了实验研究1实验证明四元数技术是提供一种解决大规模地形场景实时漫游的有效途径O关键词单位四元数球面线性内插简单线性内插地球文章编号1002-8331-(2004)33-0059-03文献标识码A中图分类号tP39Rotation of3D Earth Landscape Using OuaternionZhang Yan(Institute of Geographical Sciences and Natural Resources Research,CAS,Beijing100101> Abstract:Interactive operation is one of important contents in3D earth visualization fields.the guaternion,which ~amilton discovered in1853,provide a means for representing rotation.A unit guaternion,represented as a hypersphere in R4,has the same local topology and geometry.It thus provides a means for interpolation orientations.the paper implements animating rotation of3D earth landscape using the guaternion.Keywords:unit guaternion,spherical linear interpolation,simple linear interpolation,Earth基金项目!国家863高技术研究发展计划:基于国产Linux的多源信息融合与数据管理关键技术与应用研究(编号:2003AA1Z2550>数作为4D 空间中u= x ,y ,z >形成任意轴,w 形成旋转角O 单位四元数的所有集合在四维空间R 4中和单位球体一样具有相同的结构O 一个方位能够用一个旋转向量U=!"^ R 3来描述,这个旋转向量表示点绕着单位轴"^=U /IU I 旋转的角度为!=IU I O 这个方位也可以用单位四元数g 来表示:g= coS !2,"^Sin !2从旋转向量U=!"^ R 3到单位四元数g 的映射过程是通过四元数指数来实现的[4]O 四元数指数的定义过程如下:exp U= coS !2,"^Sin !2 = coS \U \2,U IU \Sin \U \2 上式的逆函数iog g 为:iog g=iog w ,u =2uIu I arctg \u\/w ,如果w 0u Iu I ,如果w=0假定单位四元数g a 和g b 表示两个方位,连接这两个方位就形成了一条绕着固定轴旋转的路径O 这样的一条旋转路径是测地线G ,也叫球面线性内插 SLERP O 它通过欧拉旋转定理激活:g [g a ,g b ] t =g a exp[t .iog g a -lg b ]g a g a -lg b t,0 t l其中,iog g a -lg b 是相应的旋转轴;在单位四元数空间中,测地线是嵌入在公制的距离中O 两个单位四元数g a 和g b 之间的距离为:dist 0g a ,g b =I iog g a -lg b I4四元数对三维地球场景旋转4.l 地球椭球体的建模地球是一个两极稍扁赤道略鼓的椭球体,该文采用WDM94360阶地球重力场模型[7]来模拟地球表面O 沿着经线和纬线的方向用足够精度的若干个四边形面片 图l a 逼近椭球体表面,每个面片四个角点的法矢量过地心并指向椭球体外,每条边分别平行于平行圈和子午圈 图l b ,四边形面片顶点的三维直角坐标 x ,y ,z 由方程 l 给出O 但在靠近两个极点处四边形的形状会接近三角形,因此在两极附近,通过极点向外扩展,形成相互连接的三角形,如图l c 所示OX = N+H coS B coS LY= N+H coS B Sin L Z =[N l- 2+H Sin B]l其中,B 为纬度,L 为经度,H 为高程,长半径a =6378l40m ,短半径b=6356755m ,椭球第一偏心率 =l /l49.379030856,而:N=aW W = l- 2Sin 2B l 22=a 2-b 2a 2三维地形是通过DEM 数据构造多边形,并对其进行投影变换~几何变换 平移~旋转~缩放等变换 ~视口变换~消隐等操作后生成的O 为了生成更加真实的地形,通常利用OpenGL 的纹理映射技术将正射影像与DEM 数据融合O 一般的DEM 数据包括如下信息:文件头 数据的行列数~网格间距~数据的范围 和高程值O 定义如下结构表示DEM 数据的信息:typedef Struct tagDEM {doubie Lmin ,Bmin ,Lmax ,Bmax ;//数据的空间位置int m_iCoiumnS ,m_iRowS ;//DEM 的行列数doubie m_dx ,m_dy ;//网格间距doubie **ppData //存储高程值doubie m_fMaxvaiue ,m_fMinvaiue ;//高程的极值}FDEM ;由DEM 数据建立网格采用按行构网的方式,在南极和北极,极点按逆时针方向与下一行的每个网格点相连构成三角网,在南北两极以外的部分,每一行的网格点与其下一行相同列的点相连生成Grid 模型,最终生成的面片相互连接形成球面O 球面的纹理映射要比平面复杂,纹理图像一般采用BMP 格式,该文利用仿射变换技术将球面的纹理映射函数解析的表达出来,则这时可将参数空间和纹理空间等同起来,而纹理映射就等价于参数曲面自身定义的映射O 对于半径为R 的地球来说,其参数方程可由 l 表示,通过:U =arcSin z /R /#u =arccoSx /R Sin U ~#>>>>/2U #02>其中0 U ,u l ,R 为地球半径O就可以将纹理空间[0,l]X[0,l]与参数空间[-R ,R ]X[-R ,R ]对应起来,结合0l >~02>就很容易将纹理数据准确的叠加在DEM 数据上,生成真实感很强的三维地形O4.2四元数实现对地球的旋转四元数是一个存储和操作旋转变换的及其高效和有用的图l地球椭球表面的建模方法9它比其它方法提供了更多的优点9但也有不足之处3一是如果在两对轴/角之间进行简单线性插值9系统可能在并不是单位长度的轴间停止旋转0某些情况下9轴实际上通过原点9系统必须要绕长度为0的轴转动0二是如果简单的在两个关键帧间进行线性内插9点就会穿过球体表面钻入球体内部0三是在超球面上均匀分布的点在线性插值的直线上生成非线性的坐标和方位0换而言之9在简单线性插值线上均匀分布的点在穿过中间的插值点时9速度会越来越快01998年9Nick Bobick描述了使用球体线性插值(Spielicai Lineal Intelpoiation9SLERP)实现两个状态间的平滑插值的方法O由于单位长度的四元数描述的是一个四维超球面9所以四元数支持球形线性插值(SLERP)9即当视点从一个方位移到另一个方位时9它始终沿着球面运动O但如果两个方位离得很近9为了避免除数等于0的情况下9这两个方位之间要使用简单线性插值(Simpie Lin-eal Intelpoiation9LERP)[6](如图2所示)O图2四元数之间的球体线性插值和简单线性插值的示意Slerp(p9g9t)=p sin((1-t)!)+g sin(t!)sin!其中9pg=cos(g)90S t S1O在虚拟环境中9根据操作员的位置和方位的变化9操作员感知的场景实时更新O位置和方位数据一般是通过磁性传感器和数据手套等输入设备采集来的O它们通常含有六个元素(t x9 t y9t z9"39"29"1)9前三个元素指定了传感器的笛卡尔坐标9而后三个元素指定当前方位的欧拉角O三个欧拉角:roll="39pitch= "29yaw="1是围绕三个正交轴转动的旋转角O假设E z9E y9E分别是绕z-9y-和x-轴旋转的旋转角9则:E x =cos"3-sin"3sin"3cos"300TI ILTI IJ1E x =cos"20sin"2010-sin"20cos"2TI ILTI IJE x =1000cos"1-sin"10sin"1cos"1TI ILTI IJ方位E xyz是E i(i=z9y9x)的点乘:E xyz =EzEyEx=111213212223313233TIILTIIJ其中:11=cos"2cos"312=sin"1sin"2cos"3-cos"1sin"313=cos"1sin"2cos"3+sin"1sin"321=cos"2sin"322=sin"1sin"2sin"3+cos"1cos"323=cos"1sin"2sin"3-sin"1cos"331=-sin"232=sin"1cos"233=cos"1cos"2给定方位角9通过独立的内插三个欧拉角就会求出中间的点9然而9旋转空间的非线性9中间的方位角并没有线性改变O虽然它不可能被可视化9直观性差O但是9如果使用四元数来描述内部的旋转9使用其它的方法(如角/轴9欧拉角)作为直接的描述9这样就不必可视化它们O下面给出基于四元数技术旋转三维地球场景的伪代码:Void OuatSielp(Ouat*flom9fioat*to9fioat t9Ouat*lesuit){//使用点乘得到四元数flom和to之间角度的余弦doubie dCos=flom->x*to->x+flom->y*to->y+flom->z*to->z+flom->w*to->w3//确保沿着较短的路径飞行if((1.0+dCos)>DELTa){//如果方位角不太小9使用球面线性内插}}//把两个关键帧图画的旋转变换为四元数EuialToOuatelnion(&culBone->p_lot9&plimalyOuat)3EuialToOuatelnion(&culBone->s_lot9&secondalyOuat)3//通过融合因子m_animBiend9在两个关键帧间内插SielpOuat(&plimalyOuat9&secondalyOuat9m_animBiend9&culBone->guat)3//把四元数转换成axis/angie表示OuatToaxisangie(&culBone->guat9&axisangie)3//执行旋转操作giRotatef(axisangie.w9axisangie.x9axisangie.y9axisangie.z)35实验上面论述了四元数实现三维地球旋转的原理合实现方法O为了验证该文提出的算法的有效性9笔者采用面向对象的方法~COM编程技术和OpenGL图形库开发了一个在网络环境下实现地球表面可视化和交互操作的原型系统O提供了一种浏览地球的新途径9它能够非常流畅地与全球地理空间数据库交互9在浏览器中根据视点的远近自动获取不同层次的数据O随着视点的移近9能实现从一览全球到详细观察某个城镇甚至范围更小的区域9通过键盘鼠标或者导航球可以漫游世界的任意地区3用户还可以根据需要改变观察者的视点和视线9真正实现了H所见即所得"O数据采用美国Tie Defense Mapping agency和NaSa/GSFC编辑的JGP95E5'全球地形数据9空间分辨率为5'3U.S.Geoiogicai Sulvey's EROS Data Centel(EDC)编辑的GTOPO30的部分数据9分辨率为30~O笔者所使用的微机环境为:兼容机P#800~内存512M~硬盘40G~显卡为32M GeoFolce O采用该文提出的四元数操作地形的算法后9用户能够流畅地操作地球并在球面上进行流畅的漫游O图3(a)和(b)分别给出了基于DEM数据的三维地球可视化图形以及在该地球球面上进行漫游时的状态图O(下转85页)(上接61页>图3三维地球表面漫游时的场景图6结论由于三维地球场景的形状是一个椭球体,因此对它的旋转变化与一般的平面不同O 文章根据地球特定的几何特点,采用四元数的方法来控制三维地球的旋转,并给出了可以在常用八个方向旋转的单位四元数,实现了地球场景流畅的旋转漫游操作O 事实证明,该方法是行之有效的,此外,该方法对于其它球体的三维可视化交互性操作也具有一定的借鉴意义O(收稿日期:2004年6月>参考文献1.YC Fang.Reai time motion faring with unit guaternions[J].Computer-Aided Design ,1998;30:191~1982.Shemake ,Ken.Animation Rotation with Ouaternion puter Graphics[C].In :Proceedings of Siggraph ,1985;7:245~2543.Ravi Ramamoorthi ,Aian H.Fast Construction of Accurate Ouaternion Spiines[J].Computer Graphics ,1997:234~2534.Myung-Soo Kim ,Kee-Won Nam.Interpoiating Soiid Orientations with Circuiar Biending Ouaternion Curves[J].Computer-aided Design ,1995:132~1435.Ekman M.Sphericai Trigonometry and Earth Eiiipsoidai Trigonometry[M].second edition ,G vie ,Switzeriand :Nationai land Survey of Sweden ,1991:55~546.Ken Shoemaker.Animating Rotation with Ouaternion Curves[C].In :SIGGRAPH *85,SAN FRANCISCO ,1995:245~254(a >(b >x i ,j -1=w'(i ,j >,w'(i ,j >O 由水印加载过程可知,F [s i ,j ,x i ,j -1]=(w (i ,j >*x i ,j >*x i ,j -1=w (i ,j >,即检测水印时,利用嵌入水印图像X'中的中频块的状态s i ,j 与图像的低频系数信息x i ,j 可以得出水印信息位w i ,j 而不需要原始图像O 水印检测的全过程如图4O3结果分析文章利用给出的算法对标准图像lena (图5>进行了实验O嵌入水印之后的图像为图6,其峰值信噪比为38.1O 利用图6可以精确地恢复水印图像(见图9>O 图7及图12为锐化攻击的结果与提取的水印图像O 图8及图13为模糊攻击的结果与提取的水印图像O 图9及图14为直方图均衡化攻击后的结果与提取的水印图像O图5标准图像lena图6加载水印图像图7加载水印的图像经模糊处理图8加载水印的图像经锐化处理图9直方图均衡化图10原始水印图像4结束语文章提出了提出了一种基于群演算的小波域数字水印嵌入方法,嵌入与提取水印是通过自主设定群内元素及群运算来进行的,从而使嵌入的水印信息有一定的保密性O 群演算的思想应用到水印嵌入与提取过程中,具有很强的灵活性O 实验证明,所实现的水印具有较强的稳健性O (收稿日期:2004年3月>参考文献1.Caronni G.Assuring ownership rights for digitai image[C].In :Br gger-man H H ,Gerhardt-H cki W eds.Reiiabie IT Systems (VIS*95>,19952.Anderson R rmation hiding :first internationai workshop.lectureNotes in Computer Science.IsaacNewton Institute ,Cambridge ,Engiand ,Springer-Veriag ,Beriin ,Germany ,19963.van Schyndei R G ,Tirkei A Z ,Osborne C F.A digitai watermark[C].In :Proceedings of the Conference on Image Processsing ,1994;2:86~904.Bender W ,Gruhi D ,Morimoto N ei ai.Technigues for data hiding[J].IBM System Journai ,1996;35(3-4>:313~3365.Cox IJ ,Kiiiian J ,leighton FT ei ai.Secure spread spectrum watermark-ing for muitimedia[J].IEEE Transactions on Image Processing ,1997;6(12>:1673~16876.Podiichuk CI ,Zeng W.Image -adaptive watermarking using visuai modeis[J].IEEE Journai on Speciai Area in Communications ,1998;16(4>:525~5397.xia x G ,Bonceiet C G ,Arce G R et ai.Waveiet transform based watermark for digitai images[J].Opticai Society of America ,1998;3(2>:4978.Hsu C T ,Wu J l.IEEE Trans Anaiog and Digitai Signai Processing[J].On Circuits and Systems ,1998;45(8>:1097图11无攻击提图12锐化攻击图13模糊攻击图14均衡化攻击取水印图像提取水印图像提取水印图像决策提取水印图像。