Difference between revisions of "Modules:PythonSurfaceToolbox-Documentation-3.4"

From Slicer Wiki
Jump to: navigation, search
(New page: Return to Slicer 3.4 Documentation __NOTOC__ ===Module Name=== MyModule {| |thumb|280px|Caption 1 |[[Image:screenshotBlank.png|thumb|2...)
 
Line 1: Line 1:
[[Documentation-3.4|Return to Slicer 3.4 Documentation]]
+
[[Documentation-3.4|Return to Slicer 3.4 Documentation]]
 
__NOTOC__
 
__NOTOC__
 
===Module Name===
 
===Module Name===
MyModule
+
Python Surface Toolbox
 
 
{|
 
|[[Image:screenshotBlank.png|thumb|280px|Caption 1]]
 
|[[Image:screenshotBlank.png|thumb|280px|Caption 2]]
 
|[[Image:screenshotBlank.png|thumb|280px|Caption 3]]
 
|}
 
  
 
== General Information ==
 
== General Information ==
 
===Module Type & Category===
 
===Module Type & Category===
  
Type: Interactive or CLI
+
Type: CLI
  
Category: Base or (Filtering, Registration, ''etc.'')
+
Category: Surface Models
  
 
===Authors, Collaborators & Contact===
 
===Authors, Collaborators & Contact===
* Author1: Affiliation & logo, if desired
+
* Luca Antiga: Mario Negri Institute
* Contributor1: Affiliation & logo, if desired
+
* Daniel Blezek: Mayo Clinic
* Contributor2: Affiliation & logo, if desired
+
* Contact: Luca Antiga, antiga@marionegri.it
* Contact: name, email
 
  
 
===Module Description===
 
===Module Description===
Overview of what the module does goes here.
+
This Python module provides several useful surface processing algorithms, namely decimation, smoothing, normal computation, surface cleaning.
  
 
== Usage ==
 
== Usage ==
Line 30: Line 23:
 
===Examples, Use Cases & Tutorials===
 
===Examples, Use Cases & Tutorials===
  
* Note use cases for which this module is especially appropriate, and/or link to examples.
+
* The module is appropriate when a surface has been extracted (e.g. with the Modelmaker module) but its appearance has to be improved.
* Link to examples of the module's use
 
* Link to any existing tutorials
 
  
 
===Quick Tour of Features and Use===
 
===Quick Tour of Features and Use===
 
List all the panels in your interface, their features, what they mean, and how to use them. For instance:
 
List all the panels in your interface, their features, what they mean, and how to use them. For instance:
  
* '''Input panel:'''
+
* '''Surface Decimation:'''
* '''Parameters panel:'''
+
** ''Enabled'': enable topology-preserving surface decimation.
* '''Output panel:'''
+
** ''Target reduction'': target percentage reduction in number of triangles (this target reduction may not be achieved depending on the constraints on the topology).
* '''Viewing panel:'''
+
** ''Boundary vertex deletion'': allow deletion of points located on the boundary of the surface.
 +
* '''Surface Smoothing:'''
 +
** ''Enabled'': enable surface smoothing.
 +
** ''Smoothing method'': choose between Laplace or Taubin surface smoothing algorithms (while Taubin is a non-shrinking filter, Laplace will tend to shrink the surface under the effect of curvature).
 +
** ''Boundary smoothing'': allow smoothing of points located on the boundary of the surface.
 +
** ''Laplace number of iterations'': number of iterations set when the Laplace algorithm is selected.
 +
** ''Laplace relaxation factor'': the factor by which a point moves towards the barycenter of its neighbors in the Laplace algorithm.
 +
** ''Taubin number of iterations'': number of iterations set when the Taubin algorithm is selected.
 +
** ''Taubin passband'': spatial frequency cutoff for the Taubin algorithm.
 +
* '''Surface Normals:'''
 +
** ''Enabled'': enable computation of consistently-oriented surface normals (advised after smoothing - smoothing algorithms only move points and do not update normals accordingly, so the surface might still look non-smooth after smoothing when Gouraud shading is used).
 +
** ''Flip normals'': toggle direction of normals - the algorithm will do its best to orient the normals consistently "outwards" a surface, if the surface is orientable. This switch will make normals point "inwards"
 +
** ''Splitting'': toggle splitting of surface when angle between the normals of two neighboring triangles is above the Feature angle. This improves the shading appearance of sharp edges but produces topological holes in the surface.
 +
** ''Feature angle'': angle (in degrees) between two neighboring triangles beyond which the edge between the triangles is split.
 +
* '''Surface Cleaner:'''
 +
** ''Enabled'': enable cleaning (merging of coincident points, elimination of unused points, treatment of degenerate cells) of the surface.
 +
* '''IO:'''
 +
** ''Input Surface'': the input surface
 +
** ''Output Surface'': the output surface, i.e. the input surface filtered through all the "Enabled" filters.
  
 
== Development ==
 
== Development ==
Line 46: Line 55:
 
===Dependencies===
 
===Dependencies===
  
Other modules or packages that are required for this module's use.
+
Python
  
 
===Known bugs===
 
===Known bugs===
Line 60: Line 69:
 
===Source code & documentation===
 
===Source code & documentation===
  
Customize following [http://www.na-mic.org/ViewVC/index.cgi/ links] for your module.
+
Follow this [http://viewvc.slicer.org/viewcvs.cgi/trunk/Modules/Python/ link] to the module.
  
 
[http://www.na-mic.org/Slicer/Documentation/Slicer3/html/ Links] to documentation generated by doxygen.
 
[http://www.na-mic.org/Slicer/Documentation/Slicer3/html/ Links] to documentation generated by doxygen.
Line 68: Line 77:
  
 
===Acknowledgment===
 
===Acknowledgment===
Include funding and other support here.
 
  
 
===References===
 
===References===
Publications related to this module go here. Links to pdfs would be useful.
+
 
 +
[http://www.vtk.org/doc/nightly/html/classvtkDecimatePro.html vtkDecimatePro]
 +
 
 +
[http://www.vtk.org/doc/nightly/html/classvtkSmoothPolyDataFilter.html vtkSmoothPolyDataFilter]
 +
 
 +
[http://www.vtk.org/doc/nightly/html/classvtkWindowedSincPolyDataFilter.html vtkWindowedSincPolyDataFilter]
 +
 
 +
[http://www.vtk.org/doc/nightly/html/classvtkPolyDataNormals.html vtkPolyDataNormals]
 +
 
 +
[http://www.vtk.org/doc/nightly/html/classvtkCleanPolyData.html vtkCleanPolyData]

Revision as of 10:28, 11 February 2009

Home < Modules:PythonSurfaceToolbox-Documentation-3.4

Return to Slicer 3.4 Documentation

Module Name

Python Surface Toolbox

General Information

Module Type & Category

Type: CLI

Category: Surface Models

Authors, Collaborators & Contact

  • Luca Antiga: Mario Negri Institute
  • Daniel Blezek: Mayo Clinic
  • Contact: Luca Antiga, antiga@marionegri.it

Module Description

This Python module provides several useful surface processing algorithms, namely decimation, smoothing, normal computation, surface cleaning.

Usage

Examples, Use Cases & Tutorials

  • The module is appropriate when a surface has been extracted (e.g. with the Modelmaker module) but its appearance has to be improved.

Quick Tour of Features and Use

List all the panels in your interface, their features, what they mean, and how to use them. For instance:

  • Surface Decimation:
    • Enabled: enable topology-preserving surface decimation.
    • Target reduction: target percentage reduction in number of triangles (this target reduction may not be achieved depending on the constraints on the topology).
    • Boundary vertex deletion: allow deletion of points located on the boundary of the surface.
  • Surface Smoothing:
    • Enabled: enable surface smoothing.
    • Smoothing method: choose between Laplace or Taubin surface smoothing algorithms (while Taubin is a non-shrinking filter, Laplace will tend to shrink the surface under the effect of curvature).
    • Boundary smoothing: allow smoothing of points located on the boundary of the surface.
    • Laplace number of iterations: number of iterations set when the Laplace algorithm is selected.
    • Laplace relaxation factor: the factor by which a point moves towards the barycenter of its neighbors in the Laplace algorithm.
    • Taubin number of iterations: number of iterations set when the Taubin algorithm is selected.
    • Taubin passband: spatial frequency cutoff for the Taubin algorithm.
  • Surface Normals:
    • Enabled: enable computation of consistently-oriented surface normals (advised after smoothing - smoothing algorithms only move points and do not update normals accordingly, so the surface might still look non-smooth after smoothing when Gouraud shading is used).
    • Flip normals: toggle direction of normals - the algorithm will do its best to orient the normals consistently "outwards" a surface, if the surface is orientable. This switch will make normals point "inwards"
    • Splitting: toggle splitting of surface when angle between the normals of two neighboring triangles is above the Feature angle. This improves the shading appearance of sharp edges but produces topological holes in the surface.
    • Feature angle: angle (in degrees) between two neighboring triangles beyond which the edge between the triangles is split.
  • Surface Cleaner:
    • Enabled: enable cleaning (merging of coincident points, elimination of unused points, treatment of degenerate cells) of the surface.
  • IO:
    • Input Surface: the input surface
    • Output Surface: the output surface, i.e. the input surface filtered through all the "Enabled" filters.

Development

Dependencies

Python

Known bugs

Follow this link to the Slicer3 bug tracker.


Usability issues

Follow this link to the Slicer3 bug tracker. Please select the usability issue category when browsing or contributing.

Source code & documentation

Follow this link to the module.

Links to documentation generated by doxygen.


More Information

Acknowledgment

References

vtkDecimatePro

vtkSmoothPolyDataFilter

vtkWindowedSincPolyDataFilter

vtkPolyDataNormals

vtkCleanPolyData