ITK Release 4/QuadEdgeMesh Filter: Difference between revisions

From KitwarePublic
Jump to navigationJump to search
Line 20: Line 20:
*itkWindowScalarsQuadEdgeMeshFilter
*itkWindowScalarsQuadEdgeMeshFilter


= Alex Gouaillard et al =
= TODO =
 
during the span of the project :  Creatis@lyon, Sun Microsystems ERI@beijing, caltech, Harvard Med. School, A*STAR@singapore, CoSMo@everywhere
 
Whith help from A. Gelas, E. Boix, L.Florez, M. Malaterre.
 
== TODO ==


No specific order
No specific order


=== Data Processing ===
== Data Processing ==


[[ITK_Release_4/QuadEdgeMesh_Filter/DataProcessing|Data Processing]]
[[ITK_Release_4/QuadEdgeMesh_Filter/DataProcessing|Data Processing]]


=== Conditional Iterators ===
== Conditional Iterators ==


D. Doria has written mesh iterators for VTK. He has allowed the iterator to be a "conditional iterator" by subclassing and reimplementing the AddVertex function. It performs any test the user would like on the current vertex and the next vertex. (I.e. you can add the next vertex to the queue only if it is close enough (by any metric - distance, color, normal angle, etc) to the current vertex).  
D. Doria has written mesh iterators for VTK. He has allowed the iterator to be a "conditional iterator" by subclassing and reimplementing the AddVertex function. It performs any test the user would like on the current vertex and the next vertex. (I.e. you can add the next vertex to the queue only if it is close enough (by any metric - distance, color, normal angle, etc) to the current vertex).  
Line 43: Line 37:
Here is D.D's derived class: (which shows 3 different conditions) [http://github.com/daviddoria/daviddoria-vtk/blob/VTK-ConditionalGraphIterators/Infovis/vtkGraphVertexDataConditionalIterator.cxx github link]
Here is D.D's derived class: (which shows 3 different conditions) [http://github.com/daviddoria/daviddoria-vtk/blob/VTK-ConditionalGraphIterators/Infovis/vtkGraphVertexDataConditionalIterator.cxx github link]


=== Move Existing classes out of review - <font color=green>DONE</font> - Sept 2010 ===
== Move Existing classes out of review - <font color=green>DONE</font> - Sept 2010 ==
* check coverage
* check coverage


=== Review and possibly move other filters from Insight Journal ===
== Review and possibly move other filters from Insight Journal ==
* IOWA filters (see above)
* IOWA filters (see above)
* 693 - [http://insight-journal.com/browse/publication/693 Reading a PTX file into an itkMesh]
* 693 - [http://insight-journal.com/browse/publication/693 Reading a PTX file into an itkMesh]
Line 53: Line 47:
* 662 - [http://insight-journal.com/browse/publication/662 Iterative Smoothing of Field Data in Spherical Meshes]
* 662 - [http://insight-journal.com/browse/publication/662 Iterative Smoothing of Field Data in Spherical Meshes]
* 645 - [http://insight-journal.com/browse/publication/645 Rotational Registration of Spherical Surfaces Represented as QuadEdge Meshes]
* 645 - [http://insight-journal.com/browse/publication/645 Rotational Registration of Spherical Surfaces Represented as QuadEdge Meshes]
* 740 - [http://insight-journal.com/browse/publication/740 Cuberille Implicit Surface Polygonization ]
* 740 - [http://insight-journal.com/browse/publication/740 Cuberille Implicit Surface Polygonization ]


=== Illustrate and optimize ===
== Illustrate and optimize ==
* write benchmarks for data structure ( => Example)
* write benchmarks for data structure ( => Example)
* profile
* profile
Line 65: Line 58:
* optimize code for speed
* optimize code for speed


=== Document ===
== Document ==
*Add a Surface Mesh part to the ITK software guide.
*Add a Surface Mesh part to the ITK software guide.
** structure
** structure
Line 71: Line 64:
** FIlters
** FIlters


=== recode and replace the simplex implementation with the old QEMeshWithDual design ===
== recode and replace the simplex implementation with the old QEMeshWithDual design ==
* write the data structure with a second point container
* write the data structure with a second point container
* write trianglemeshtosimplexmesh (and back) filters, use them for benchmark
* write trianglemeshtosimplexmesh (and back) filters, use them for benchmark
Line 77: Line 70:
* see if we can have the complete framework leverage QE (note, if there is no topological change, it might be slower to use QE)
* see if we can have the complete framework leverage QE (note, if there is no topological change, it might be slower to use QE)


==== Improve Simplex (M. Audette) ====
=== Improve Simplex (M. Audette) ===


M. Audette's adaptation of H. Delingette's simplex mesh, where he uses T1 and T2 operators to delete specific edges in order to explicitly control surface mesh resolution (prior to controlled-resolution tetrahedralization).
M. Audette's adaptation of H. Delingette's simplex mesh, where he uses T1 and T2 operators to delete specific edges in order to explicitly control surface mesh resolution (prior to controlled-resolution tetrahedralization).
Line 98: Line 91:
(and later in Computer Aided Surgery...
(and later in Computer Aided Surgery...
[http://www.informaworld.com/smpp/content~db=all~content=a770815634~frm=abslink here] )
[http://www.informaworld.com/smpp/content~db=all~content=a770815634~frm=abslink here] )
== Log ===

Revision as of 12:50, 27 October 2010

QuadEdgeMesh Filters

original page

arnaud's comments on filters and data Data Processing

Wen Li - Iowa

Insight Journal contributions

Filters in NAMIC Sandbox

http://svn.na-mic.org/NAMICSandBox/trunk/QuadEdgeMeshFilters/

  • itkShiftScalarsQuadEdgeMeshFilter
  • itkWindowScalarsQuadEdgeMeshFilter

TODO

No specific order

Data Processing

Data Processing

Conditional Iterators

D. Doria has written mesh iterators for VTK. He has allowed the iterator to be a "conditional iterator" by subclassing and reimplementing the AddVertex function. It performs any test the user would like on the current vertex and the next vertex. (I.e. you can add the next vertex to the queue only if it is close enough (by any metric - distance, color, normal angle, etc) to the current vertex). The current closest equivalent with QE would be itkQuadEdgeMeshFrontIterator and seems to be confusing and perhaps less flexible.

Here is D.D's superclass implementation github link

Here is D.D's derived class: (which shows 3 different conditions) github link

Move Existing classes out of review - DONE - Sept 2010

  • check coverage

Review and possibly move other filters from Insight Journal

Illustrate and optimize

  • write benchmarks for data structure ( => Example)
  • profile
  • document structure building process (AddCell)
  • come up with an optimal building process (AddCell)
  • optimize code for speed
  • profil decimation and other slow filters
  • optimize code for speed

Document

  • Add a Surface Mesh part to the ITK software guide.
    • structure
    • Euler Operators
    • FIlters

recode and replace the simplex implementation with the old QEMeshWithDual design

  • write the data structure with a second point container
  • write trianglemeshtosimplexmesh (and back) filters, use them for benchmark
  • check the other filters of the simplex framework for QE compatibility
  • see if we can have the complete framework leverage QE (note, if there is no topological change, it might be slower to use QE)

Improve Simplex (M. Audette)

M. Audette's adaptation of H. Delingette's simplex mesh, where he uses T1 and T2 operators to delete specific edges in order to explicitly control surface mesh resolution (prior to controlled-resolution tetrahedralization).

The operators are on page 119 of Herve's IJCV paper General Object Reconstruction Based on Simplex Meshes which can still be found here.

M. Audettes's adaptation appears in ICCV Workshop 2005:

Yanxi Liu, Tianzi Jiang, Changshui Zhang (Eds.): Computer Vision for Biomedical Image Applications, First International Workshop, CVBIA 2005, Beijing, China, October 21, 2005, Proceedings. Lecture Notes in Computer Science 3765 Springer 2005, ISBN 3-540-29411-2

Michel A. Audette, Hervé Delingette, Alexander Fuchs, Oliver R. Astley, Kiyoyuki Chinzei: A Topologically Faithful, Tissue-Guided, Spatially Varying Meshing Strategy for Computing Patient-Specific Head Models for Endoscopic Pituitary Surgery Simulation. 178-188

(and later in Computer Aided Surgery... here )

Log =