[vtkusers] Computing curvature of a surface

Andrew J. P. Maclean a.maclean at acfr.usyd.edu.au
Wed Jul 3 19:25:55 EDT 2002


It has all been done for you!

Look at:
http://www-ipg.umds.ac.uk/p.batchelor/curvatures/curvatures.html

Philipp Batchelor also supplies some vtk Classes to do it:
His comments are:
" This a VTK C++ class, a subclass of vtkPolyDataToPolyDataFilter, as
input it takes a triangulated PolyData, and the output is the same
PolyData, with the desired curvatures a scalars. This is chosen by the
method vtkCurvatures::SetCurvatureType(i), with i = 0 for , i = 1 for
for . i = 2 should give both, but I haven't used it very much in that
way. Note thata as the computation of angles uses the acos, asin, and
atan2 functions, the curvatures are double. 
Warning As mentioned above: the mean curvature requires an oriented
surface, so typically, the surface should have gone through a
vtkTriangleFilter and vtkPolyDataNormals. This is quite restrictive, in
particular none of the definitions really requires triangles, I just did
it for convenience. If you'd want to suggest modifications, don't
hesitate to email me. 

I use the class in a local library, so that the curvature class can be
used in Tcl. I normally use VTK 3.1, on a Sun Ultra-30, with the Sun
compiler. 

As they are relatively small files, they are provided directly: Download
vtkCurvatures.h and DownloadvtkCurvatures.cxx " 

Andrew



___________________________________________
Andrew J. P. Maclean
Postal:
Australian Centre for Field Robotics
The Rose Street Building J04
The University of Sydney  2006  NSW
AUSTRALIA
 
Room:  106
Phone: +61 2 9351 3283
Fax:   +61 2 9351 7474
       http://www.acfr.usyd.edu.au/

___________________________________________


-----Original Message-----
From: vtkusers-admin at public.kitware.com
[mailto:vtkusers-admin at public.kitware.com] On Behalf Of Jan Ehrhardt
Sent: Wednesday, 3 July 2002 18:11
To: vtkusers
Subject: [vtkusers] Computing curvature of a surface

hi folks,

I have the following problem: I want to register two polygonal surfaces
using nonlinear transformations.
I have implemented an algorithm similar to andresens and nielsen
"geometry constrained diffusion".
This works like ICP but for nonlinear transformations.
Actually, I match the nearest points on the two surfaces.
The idea is not only to use the spatial distance but also the normal
vektors and curvature of the points
to identify corresponding points.
The normals caan I compute using vtkPolyDataNormals, but how to compute
the curvature of the surface points?
Concrete:
I have an polydata surface (no associated image or scalar values!). 
How can I compute the curvature for each point (triangle vertex) from
the polydata ?
Curvature means min and max curvature and /or gaussian curvature.

Regards and many thanks for ANY help,

Jan




More information about the vtkusers mailing list