ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkSmoothingQuadEdgeMeshFilter.h>
QuadEdgeMesh Smoothing Filter.
This filter adjusts point coordinates using Laplacian smoothing. The effect is to "relax" the mesh, making the cells better shaped and the vertices more evenly distributed.
For one iteration the location of one vertex is computed as follows:
where is computed by the means of the set functor CoefficientsComputation
This process is then repeated for m_NumberOfIterations (the more iterations, the smoother the output mesh will be).
At each iteration, one can run DelaunayConformingQuadEdgeMeshFilter resulting a more regular (in terms of connectivity) and smoother mesh. Depending on the mesh size and configuration it could be an expensive process to run it at each iterations, especially if the number of iterations is large. Note that one can still run N iterations without DelaunayConformingQuadEdgeMeshFilter, then run this filter and apply this process M times.
Definition at line 58 of file itkSmoothingQuadEdgeMeshFilter.h.
Public Types | |
using | CoefficientsComputation = MatrixCoefficients< OutputMeshType > |
using | ConstPointer = SmartPointer< const Self > |
using | InputMeshPointer = typename InputMeshType::Pointer |
using | InputMeshType = TInputMesh |
using | OutputCellsContainerIterator = typename OutputMeshType::CellsContainerIterator |
using | OutputCellsContainerPointer = typename OutputMeshType::CellsContainerPointer |
using | OutputCoordType = typename OutputPointType::CoordRepType |
using | OutputEdgeCellType = typename OutputMeshType::EdgeCellType |
using | OutputMeshPointer = typename OutputMeshType::Pointer |
using | OutputMeshType = TOutputMesh |
using | OutputPointIdentifier = typename OutputMeshType::PointIdentifier |
using | OutputPointsContainer = typename OutputMeshType::PointsContainer |
using | OutputPointsContainerIterator = typename OutputMeshType::PointsContainerIterator |
using | OutputPointsContainerPointer = typename OutputMeshType::PointsContainerPointer |
using | OutputPointType = typename OutputMeshType::PointType |
using | OutputPolygonCellType = typename OutputMeshType::PolygonCellType |
using | OutputQEType = typename OutputMeshType::QEType |
using | OutputVectorType = typename OutputPointType::VectorType |
using | Pointer = SmartPointer< Self > |
using | Self = SmoothingQuadEdgeMeshFilter |
using | Superclass = QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > |
Public Types inherited from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputCellDataContainer = typename InputMeshType::CellDataContainer |
using | InputCellsContainerConstIterator = typename InputMeshType::CellsContainerConstIterator |
using | InputCellsContainerConstPointer = typename InputMeshType::CellsContainerConstPointer |
using | InputCellTraits = typename InputMeshType::CellTraits |
using | InputCoordRepType = typename InputMeshType::CoordRepType |
using | InputEdgeCellType = typename InputMeshType::EdgeCellType |
using | InputMeshConstPointer = typename InputMeshType::ConstPointer |
using | InputMeshPointer = typename InputMeshType::Pointer |
using | InputMeshType = TInputMesh |
using | InputPointDataContainer = typename InputMeshType::PointDataContainer |
using | InputPointDataContainerConstPointer = typename InputPointDataContainer::ConstPointer |
using | InputPointIdentifier = typename InputMeshType::PointIdentifier |
using | InputPointIdList = typename InputMeshType::PointIdList |
using | InputPointsContainerConstIterator = typename InputMeshType::PointsContainerConstIterator |
using | InputPointsContainerConstPointer = typename InputMeshType::PointsContainerConstPointer |
using | InputPointsIdInternalIterator = typename InputCellTraits::PointIdInternalIterator |
using | InputPointType = typename InputMeshType::PointType |
using | InputPolygonCellType = typename InputMeshType::PolygonCellType |
using | InputQEIterator = typename InputQEPrimal::IteratorGeom |
using | InputQEPrimal = typename InputMeshType::QEPrimal |
using | InputVectorType = typename InputMeshType::VectorType |
using | OutputCellDataContainer = typename OutputMeshType::CellDataContainer |
using | OutputCoordRepType = typename OutputMeshType::CoordRepType |
using | OutputMeshConstPointer = typename OutputMeshType::ConstPointer |
using | OutputMeshPointer = typename OutputMeshType::Pointer |
using | OutputMeshType = TOutputMesh |
using | OutputPointDataContainer = typename OutputMeshType::PointDataContainer |
using | OutputPointIdentifier = typename OutputMeshType::PointIdentifier |
using | OutputPointsContainerConstPointer = typename OutputMeshType::PointsContainerConstPointer |
using | OutputPointsContainerIterator = typename OutputMeshType::PointsContainerIterator |
using | OutputPointsContainerPointer = typename OutputMeshType::PointsContainerPointer |
using | OutputPointType = typename OutputMeshType::PointType |
using | OutputQEIterator = typename OutputQEPrimal::IteratorGeom |
using | OutputQEPrimal = typename OutputMeshType::QEPrimal |
using | OutputVectorType = typename OutputMeshType::VectorType |
using | Pointer = SmartPointer< Self > |
using | Self = QuadEdgeMeshToQuadEdgeMeshFilter |
using | Superclass = MeshToMeshFilter< TInputMesh, TOutputMesh > |
Public Types inherited from itk::MeshToMeshFilter< TInputMesh, TOutputMesh > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputMeshPointer = typename InputMeshType::Pointer |
using | InputMeshType = TInputMesh |
using | OutputMeshPointer = typename OutputMeshType::Pointer |
using | OutputMeshType = TOutputMesh |
using | Pointer = SmartPointer< Self > |
using | Self = MeshToMeshFilter |
using | Superclass = MeshSource< TOutputMesh > |
Public Types inherited from itk::MeshSource< TOutputMesh > | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = Superclass::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | OutputMeshPointer = typename OutputMeshType::Pointer |
using | OutputMeshType = TOutputMesh |
using | Pointer = SmartPointer< Self > |
using | Self = MeshSource |
using | Superclass = ProcessObject |
using | DataObjectPointerArraySizeType = ProcessObject::DataObjectPointerArraySizeType |
Public Types inherited from itk::ProcessObject | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = DataObject::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | DataObjectPointerArray = std::vector< DataObjectPointer > |
using | DataObjectPointerArraySizeType = DataObjectPointerArray::size_type |
using | MultiThreaderType = MultiThreaderBase |
using | NameArray = std::vector< DataObjectIdentifierType > |
using | Pointer = SmartPointer< Self > |
using | Self = ProcessObject |
using | Superclass = Object |
Public Types inherited from itk::Object | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = Object |
using | Superclass = LightObject |
Public Types inherited from itk::LightObject | |
using | ConstPointer = SmartPointer< const Self > |
using | Pointer = SmartPointer< Self > |
using | Self = LightObject |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > | |
static Pointer | New () |
Static Public Member Functions inherited from itk::MeshToMeshFilter< TInputMesh, TOutputMesh > | |
static Pointer | New () |
Static Public Member Functions inherited from itk::MeshSource< TOutputMesh > | |
static Pointer | New () |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool flag) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | PointDimension = OutputMeshType::PointDimension |
Protected Types | |
using | InputOutputDelaunayConformingPointer = typename InputOutputDelaunayConformingType::Pointer |
using | InputOutputDelaunayConformingType = DelaunayConformingQuadEdgeMeshFilter< InputMeshType, OutputMeshType > |
using | OutputDelaunayConformingPointer = typename OutputDelaunayConformingType::Pointer |
using | OutputDelaunayConformingType = DelaunayConformingQuadEdgeMeshFilter< OutputMeshType, OutputMeshType > |
Protected Attributes | |
CoefficientsComputation * | m_CoefficientsMethod |
bool | m_DelaunayConforming |
InputOutputDelaunayConformingPointer | m_InputDelaunayFilter |
unsigned int | m_NumberOfIterations |
OutputDelaunayConformingPointer | m_OutputDelaunayFilter |
OutputCoordType | m_RelaxationFactor |
Protected Attributes inherited from itk::ProcessObject | |
TimeStamp | m_OutputInformationMTime |
bool | m_Updating |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount |
Private Member Functions | |
void | operator= (const Self &)=delete |
SmoothingQuadEdgeMeshFilter (const Self &)=delete | |
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::CoefficientsComputation = MatrixCoefficients< OutputMeshType > |
Definition at line 93 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::ConstPointer = SmartPointer< const Self > |
Definition at line 64 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::InputMeshPointer = typename InputMeshType::Pointer |
Definition at line 74 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::InputMeshType = TInputMesh |
Definition at line 73 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 120 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 119 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputCellsContainerIterator = typename OutputMeshType::CellsContainerIterator |
Definition at line 89 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputCellsContainerPointer = typename OutputMeshType::CellsContainerPointer |
Definition at line 88 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputCoordType = typename OutputPointType::CoordRepType |
Definition at line 84 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 125 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 124 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputEdgeCellType = typename OutputMeshType::EdgeCellType |
Definition at line 78 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputMeshPointer = typename OutputMeshType::Pointer |
Definition at line 77 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputMeshType = TOutputMesh |
Definition at line 76 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputPointIdentifier = typename OutputMeshType::PointIdentifier |
Definition at line 81 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputPointsContainer = typename OutputMeshType::PointsContainer |
Definition at line 85 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputPointsContainerIterator = typename OutputMeshType::PointsContainerIterator |
Definition at line 87 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputPointsContainerPointer = typename OutputMeshType::PointsContainerPointer |
Definition at line 86 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputPointType = typename OutputMeshType::PointType |
Definition at line 82 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputPolygonCellType = typename OutputMeshType::PolygonCellType |
Definition at line 79 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputQEType = typename OutputMeshType::QEType |
Definition at line 80 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::OutputVectorType = typename OutputPointType::VectorType |
Definition at line 83 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::Pointer = SmartPointer< Self > |
Definition at line 63 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::Self = SmoothingQuadEdgeMeshFilter |
Definition at line 62 of file itkSmoothingQuadEdgeMeshFilter.h.
using itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::Superclass = QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh > |
Definition at line 65 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
|
overrideprotected |
|
privatedelete |
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >.
|
overrideprotectedvirtual |
This method causes the filter to generate its output.
Reimplemented from itk::ProcessObject.
|
virtual |
Set/Get if DelaunayConformingQuadEdgeMeshFilter is used at the end of each iterations
|
virtual |
Run-time type information (and related methods).
Reimplemented from itk::QuadEdgeMeshToQuadEdgeMeshFilter< TInputMesh, TOutputMesh >.
|
virtual |
Set/Get the number of iterations
|
virtual |
Set/Get relaxation factor applied for each iteration
|
static |
New macro for creation of through a Smart Pointer
|
privatedelete |
|
overrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::MeshSource< TOutputMesh >.
void itk::SmoothingQuadEdgeMeshFilter< TInputMesh, TOutputMesh >::SetCoefficientsMethod | ( | CoefficientsComputation * | iMethod | ) |
|
virtual |
Set/Get if DelaunayConformingQuadEdgeMeshFilter is used at the end of each iterations
|
virtual |
Set/Get the number of iterations
|
virtual |
Set/Get relaxation factor applied for each iteration
|
protected |
Definition at line 117 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 129 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 122 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 131 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 127 of file itkSmoothingQuadEdgeMeshFilter.h.
|
protected |
Definition at line 133 of file itkSmoothingQuadEdgeMeshFilter.h.
|
static |
Definition at line 91 of file itkSmoothingQuadEdgeMeshFilter.h.