论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
Si=(x0yi-x0yi+1-xiy0+xiyi+1+xi+1y0-xi+1yi)*0.5(1)
设多边形的顶点分别为A1,A2.....An那么多边形的面积为:
S=∑n-1i=1S(OAiAi+1)+S(OAnA1)(2)
S(OAiAi+1)表示以O为顶点的三角形面积,当三个顶点顺时针排列时面积值为负,逆时针排列时面积值为正,三角形面积值的正负分别表示此三角形使多边形面积增加还是减小。
因为每个三角形都有一个顶点为坐标原点O(0,0),那么三角形的面积为:
S(OAiAi+1)=0.5(xiyi+1-xi+1yi)(3)
多边形面积为:
图6 多边形划分为多个三角形的图解
Fig 6 Schema of polygon divided into several triangle
利用vtkContourWidget实现以上算法,vtkContour
瞁idget是vtkAbstractWidget的子类,用来选择一系列点,并在这些点之间画线。利用vtkContourWidget画轮廓线时,为了画出一个闭合的区域,取点原则是最后一个结点与第一个结点重合。 交互代码:
vtkOrientedGlyphContourRepresentation*ContourRep;
intn=
ContourRep1 -> GetNumberOfNodes();
double pos0[3];
double pos1[3];
double pos2[3];
ContourRep1->
GetNthNodeWorldPosition(0,pos0);
ContourRep1->
GetNthNodeWorldPosition (i,pos1);
n为轮廓线上结点的个数,由于第一个结点和最后一个结点重合,所以,形成的多边形有n-1个结点,可以划分成n-1个三角形。通过函数GetNthNodeWorldPosition(0,pos0)获得第一个结点的坐标pos0,pos1为第i+1个结点的坐标,如此可以获取多边形每一个顶点 的坐标。利用式(4)可以求得轮廓线内部区域的面积。如图7所示,测量的是气管的轴位切片的面积为:520.8603 mm2。
6 结论
所有测量功能均依靠鼠标在图像上点击和拖动完成,对于测量系统而言,精度是一个重要的参数,本文中的测量方法与两个因素密切相关,一是比例尺的确定,另一个就是测量步骤中标记线段的准确性。要提高整个系统的测量精度,可以通过提高图像的扫描分辨率,放大图像以及多次测量求平均值的方法来实现。
【参考文献】
[2]Arjan J. F. Kok·Robert van Liere.A multimodal virtual reality interfacefor 3D interaction with VTK[J].Knowledge and Information Systems,2007.201-212.
[3]Schroeder W,Martin K,Lorensen B. The visualization toolKit an object-oriented approach to 3D graphics [M].3th ed.New Jersey: Prentice- Hall,2002:241-243.
[4]袁杲, 叶峰,杨玲,谢明元.基于VTK 的医学图像交互式三维测量技术研究[J].计算机工程与设计,2008,29(13).
[5]Schroeder W J. The VTK user's guideUpdated for version 4.0 [M]. New York: Kitware, 2001:19~20,48-52.
[6]唐泽圣.三维数据场可视化[M].北京:清华大学出版社,1999:15-78.
[7]Mayr N A, Taoka T.Method and timing of tumor volume measurement for outcome prediction in cervical cancer using magnetic resonance imaging[J]. Int J. Radiat. Oncol Biol Phys, 2002, 52(1):14-22.
[8]数学手册编写组.数学手册[M].北京:高等教育出版社,1979:331-332.