[Insight-developers] Laplace Beltrami filter output

Cartik Sharma cartik_sharma at yahoo.com
Thu Dec 10 12:14:13 EST 2009


Michael Bowers:
Thanks for your addition of the Laplace Beltrami operator..this will be of immense value in the calculation of higher order harmonics from Itk.
Some deterministic outcome(s):
Cortical surface matching. Shimming magnetic fields for MRI scanners.Characterization of finite element meshes. My 2 cents..
Best regards,

Cartik Sharma

--- On Wed, 12/9/09, Arnaud GELAS <arnaud_gelas at hms.harvard.edu> wrote:

From: Arnaud GELAS <arnaud_gelas at hms.harvard.edu>
Subject: Re: [Insight-developers] Laplace Beltrami filter output
To: "Michael Bowers" <mbowers at cis.jhu.edu>
Cc: "insight-developers at itk.org" <insight-developers at itk.org>
Date: Wednesday, December 9, 2009, 6:36 PM





  

 
Hi Michael,



Good job!



I am a bit surprised by the computation of the matrix, which is not the
standard way. What is your reference?



I am pretty sure it is connected to the expression involving the
cotangent (see
http://alice.loria.fr/publications/papers/2009/spectral_course/spectral_course.pdf
for full reference on the topic). You may consider follow the 

what is in this reference.



To fully benefit from the itk::QuadEdgeMesh, you may consider having a
look at itk::QuadEdgeParam (some part are extremely similar, to what
you want to do). 



For example you'll find some expression for each edge,
$\Delta_{ij}=...$. You can find some functors with matrix coefficients
you are interested in in itkQuadEdgeMeshParamMatrixCoefficients.h. If
there is not exactly the same one, you can create your own by
inheriting from itk::MatrixCoefficients (btw I guess it would be good
to rename these classes).



Instead of iterating on the face container, I would recommend to
iterate on the edge container. Have a look at
itk::QuadEdgeMesh::GetEdgeCells(), then you can easily iterate on all
half edges.

To get the origin of the half edge, have a look at
itk::GeometricalQuadEdge::GetOrigin()  and GetDestination(). Since your
matrix is symmetric, it is straightforward to fill it.



Regarding now the decomposition in itself, vnl does the job, but I am
not so sure about the performance... Check in the reference above what
would be the best way to proceed. Especially svd methods generally
compute the other way around than the one you are interested in (you
are generally interested in lower frequency and you will first get the
higher one). In the reference, they present a very efficient and nice
way to do it.



If you need any help, please let me know



Arnaud







On 12/09/2009 02:34 PM, Michael Bowers wrote:


  
  
  



  
     
  Itk Developers, 
     
  I have placed in the NAMIC Sandbox (under
JHU-CIS-ComputationalAnatomy) an initial draft of code to calculate a
Laplace-Beltrami operator on the vertices of a QuadEdgeMesh.  The code
is
implemented as a QuadEdgeMeshToQuadEdgeMesh filter.  A QuadEdgeMesh is
the
input, which the filter copies to the output QuadEdgeMesh.  If basis
functions are requested on the surface (by SetEigenValueCount > 0) ,
the
filter sets the output Mesh’s PointData to the values of the 0th
harmonic.  The user can get the values of the other harmonics by
SetSurfaceHarmonic(N), then calling GetOutput, and the PointValue of
the output
Mesh will be set to the Nth surface harmonic. 
     
  This behavior is illustrated in the attached
test program. 
     
  Luis has remarked that this is not the typical
dynamic by
which filters provide their output data.  He recommended putting the
question to the itk developer community in general to ask for
suggestions on
how to modify the code to conform with standard itk pipeline design. 
     
  Any recommendations/comments would be greatly
appreciated. 
     
  Thank you, 
     
  Michael Bowers 
  Center For Imaging Science 
  Johns Hopkins University 
     
  



 


-----Inline Attachment Follows-----

_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html

Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.html

Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ

Follow this link to subscribe/unsubscribe:
http://www.itk.org/mailman/listinfo/insight-developers



      
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.itk.org/mailman/private/insight-developers/attachments/20091210/b276e553/attachment.htm>


More information about the Insight-developers mailing list