template<typename TImage, typename TMask = TImage, typename TFeatures = PointSet<Matrix<SpacePrecisionType, TImage::ImageDimension, TImage::ImageDimension>, TImage::ImageDimension>>
class itk::MaskFeaturePointSelectionFilter< TImage, TMask, TFeatures >
Generate a PointSet containing the feature points selected from a masked 3D input image.
MaskFeaturePointSelectionFilter takes 3D image and 3D mask as inputs and generates a PointSet of feature points as output.
This filter is intended to be used for initializing the process of Physics-Based Non-Rigid Registration. It selects a fraction of non-masked points with highest variance. Optionally, tensors are computed for each point and stored as pixel values. [ M. Bierling, Displacement estimation by hierarchical block matching, Proc. SPIE Vis. Comm. and Image Proc., vol. 1001, pp. 942-951, 1988. ].
The filter is templated over input image and mask and output pointset.
- Author
- Andriy Kot, Center for Real-Time Computing, Old Dominion University, Norfolk, VA
- See also
- BlockMatchingImageFilter
Definition at line 63 of file itkMaskFeaturePointSelectionFilter.h.
|
| enum | {
VERTEX_CONNECTIVITY = 0
,
EDGE_CONNECTIVITY = 1
,
FACE_CONNECTIVITY = 2
} |
| |
| using | ConstPointer = SmartPointer< const Self > |
| |
| using | FeaturePointsPointer = typename FeaturePointsType::Pointer |
| |
| using | FeaturePointsType = TFeatures |
| |
| using | ImageConstPointer = typename ImageType::ConstPointer |
| |
| using | ImagePixelType = typename ImageType::PixelType |
| |
| using | ImageType = TImage |
| |
| using | IndexType = Index< ImageDimension > |
| |
| using | MaskConstPointer = typename MaskType::ConstPointer |
| |
| using | MaskPixelType = typename MaskType::PixelType |
| |
| using | MaskType = TMask |
| |
| using | OffsetType = Offset< ImageDimension > |
| |
| using | Pointer = SmartPointer< Self > |
| |
| using | PointType = typename FeaturePointsType::PointType |
| |
| using | RegionType = ImageRegion< ImageDimension > |
| |
| using | Self = MaskFeaturePointSelectionFilter |
| |
| using | SizeType = Size< ImageDimension > |
| |
| using | StructureTensorType = typename FeaturePointsType::PixelType |
| |
| using | Superclass = ImageToMeshFilter< TImage, TFeatures > |
| |
| using | ConstPointer = SmartPointer< const Self > |
| |
| using | DataObjectPointerArraySizeType = ProcessObject::DataObjectPointerArraySizeType |
| |
| using | InputImageConstPointer = typename InputImageType::ConstPointer |
| |
| using | InputImagePixelType = typename InputImageType::PixelType |
| |
| using | InputImagePointer = typename InputImageType::Pointer |
| |
| using | InputImageRegionType = typename InputImageType::RegionType |
| |
| using | InputImageType = TImage |
| |
| using | OutputMeshPointer = typename OutputMeshType::Pointer |
| |
| using | OutputMeshType = PointSet< Matrix< SpacePrecisionType, TImage::ImageDimension, TImage::ImageDimension >, TImage::ImageDimension > |
| |
| using | Pointer = SmartPointer< Self > |
| |
| using | Self = ImageToMeshFilter |
| |
| using | Superclass = MeshSource< PointSet< Matrix< SpacePrecisionType, TImage::ImageDimension, TImage::ImageDimension >, TImage::ImageDimension > > |
| |
| using | ConstPointer = SmartPointer< const Self > |
| |
| using | DataObjectIdentifierType = Superclass::DataObjectIdentifierType |
| |
| using | DataObjectPointer = DataObject::Pointer |
| |
| using | OutputMeshPointer = typename OutputMeshType::Pointer |
| |
| using | OutputMeshType = PointSet< Matrix< SpacePrecisionType, TImage::ImageDimension, TImage::ImageDimension >, TImage::ImageDimension > |
| |
| using | Pointer = SmartPointer< Self > |
| |
| using | Self = MeshSource |
| |
| using | Superclass = ProcessObject |
| |
| using | DataObjectPointerArraySizeType = ProcessObject::DataObjectPointerArraySizeType |
| |
| 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 |
| |
| using | ConstPointer = SmartPointer< const Self > |
| |
| using | Pointer = SmartPointer< Self > |
| |
| using | Self = Object |
| |
| using | Superclass = LightObject |
| |
| using | ConstPointer = SmartPointer< const Self > |
| |
| using | Pointer = SmartPointer< Self > |
| |
| using | Self = LightObject |
| |
|
| const char * | GetNameOfClass () const override |
| |
|
| virtual void | SetNonConnectivity (unsigned int _arg) |
| |
| virtual unsigned int | GetNonConnectivity () |
| |
|
| | itkSetInputMacro (MaskImage, MaskType) |
| |
| | itkGetInputMacro (MaskImage, MaskType) |
| |
|
| virtual void | SetBlockRadius (SizeType _arg) |
| |
| virtual const SizeType & | GetBlockRadius () const |
| |
|
| virtual void | SetComputeStructureTensors (bool _arg) |
| |
| virtual bool | GetComputeStructureTensors () |
| |
| virtual void | ComputeStructureTensorsOn () |
| |
|
| virtual void | SetSelectFraction (double _arg) |
| |
| virtual double | GetSelectFraction () |
| |
| void | GenerateOutputInformation () override |
| |
| const char * | GetNameOfClass () const override |
| |
| OutputMeshType * | GetOutput () |
| |
| DataObject::Pointer | MakeOutput (DataObjectPointerArraySizeType idx) override |
| |
| void | SetInput (unsigned int idx, const InputImageType *input) |
| |
| void | SetInput (const InputImageType *input) |
| |
| const InputImageType * | GetInput (unsigned int idx) |
| |
| const InputImageType * | GetInput () |
| |
| const char * | GetNameOfClass () const override |
| |
| OutputMeshType * | GetOutput () |
| |
| OutputMeshType * | GetOutput (unsigned int idx) |
| |
| virtual void | GraftNthOutput (unsigned int idx, DataObject *graft) |
| |
| virtual void | GraftOutput (const DataObjectIdentifierType &key, DataObject *graft) |
| |
| virtual void | GraftOutput (DataObject *graft) |
| |
| void | SetOutput (PointSet< Matrix< SpacePrecisionType, TImage::ImageDimension, TImage::ImageDimension >, TImage::ImageDimension > *output) |
| |
| DataObjectPointer | MakeOutput (DataObjectPointerArraySizeType idx) override |
| |
| virtual void | AbortGenerateDataOn () |
| |
| virtual void | EnlargeOutputRequestedRegion (DataObject *) |
| |
| virtual const bool & | GetAbortGenerateData () const |
| |
| DataObjectPointerArray | GetIndexedInputs () |
| |
| DataObjectPointerArray | GetIndexedOutputs () |
| |
| NameArray | GetInputNames () const |
| |
| DataObjectPointerArray | GetInputs () |
| |
| MultiThreaderType * | GetMultiThreader () const |
| |
| const char * | GetNameOfClass () const override |
| |
| DataObjectPointerArraySizeType | GetNumberOfIndexedInputs () const |
| |
| DataObjectPointerArraySizeType | GetNumberOfIndexedOutputs () const |
| |
| DataObjectPointerArraySizeType | GetNumberOfInputs () const |
| |
| DataObjectPointerArraySizeType | GetNumberOfOutputs () const |
| |
| virtual DataObjectPointerArraySizeType | GetNumberOfValidRequiredInputs () const |
| |
| NameArray | GetOutputNames () const |
| |
| DataObjectPointerArray | GetOutputs () |
| |
| virtual float | GetProgress () const |
| |
| NameArray | GetRequiredInputNames () const |
| |
| bool | HasInput (const DataObjectIdentifierType &key) const |
| |
| bool | HasOutput (const DataObjectIdentifierType &key) const |
| |
| void | IncrementProgress (float increment) |
| |
| virtual DataObjectPointer | MakeOutput (const DataObjectIdentifierType &) |
| |
| virtual DataObjectPointer | MakeOutput (DataObjectPointerArraySizeType idx) |
| |
| virtual void | PrepareOutputs () |
| |
| virtual void | PropagateRequestedRegion (DataObject *output) |
| |
| virtual void | ResetPipeline () |
| |
| virtual void | SetAbortGenerateData (bool _arg) |
| |
| void | SetMultiThreader (MultiThreaderType *threader) |
| |
| virtual void | Update () |
| |
| virtual void | UpdateLargestPossibleRegion () |
| |
| virtual void | UpdateOutputData (DataObject *output) |
| |
| virtual void | UpdateOutputInformation () |
| |
| void | UpdateProgress (float progress) |
| |
| virtual void | SetReleaseDataFlag (bool val) |
| |
| virtual bool | GetReleaseDataFlag () const |
| |
| void | ReleaseDataFlagOn () |
| |
| void | ReleaseDataFlagOff () |
| |
| virtual void | SetReleaseDataBeforeUpdateFlag (bool _arg) |
| |
| virtual const bool & | GetReleaseDataBeforeUpdateFlag () const |
| |
| virtual void | ReleaseDataBeforeUpdateFlagOn () |
| |
| virtual void | SetNumberOfWorkUnits (ThreadIdType _arg) |
| |
| virtual const ThreadIdType & | GetNumberOfWorkUnits () const |
| |
| unsigned long | AddObserver (const EventObject &event, Command *) |
| |
| unsigned long | AddObserver (const EventObject &event, Command *) const |
| |
| unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
| |
| LightObject::Pointer | CreateAnother () const override |
| |
| virtual void | DebugOff () const |
| |
| virtual void | DebugOn () const |
| |
| Command * | GetCommand (unsigned long tag) |
| |
| bool | GetDebug () const |
| |
| MetaDataDictionary & | GetMetaDataDictionary () |
| |
| const MetaDataDictionary & | GetMetaDataDictionary () const |
| |
| virtual ModifiedTimeType | GetMTime () const |
| |
| const char * | GetNameOfClass () const override |
| |
| virtual const TimeStamp & | GetTimeStamp () const |
| |
| bool | HasObserver (const EventObject &event) const |
| |
| void | InvokeEvent (const EventObject &) |
| |
| void | InvokeEvent (const EventObject &) const |
| |
| virtual void | Modified () const |
| |
| void | Register () const override |
| |
| void | RemoveAllObservers () |
| |
| void | RemoveObserver (unsigned long tag) |
| |
| void | SetDebug (bool debugFlag) const |
| |
| void | SetReferenceCount (int) override |
| |
| void | UnRegister () const noexcept override |
| |
| void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
| |
| void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
| |
| virtual void | SetObjectName (std::string _arg) |
| |
| virtual const std::string & | GetObjectName () const |
| |
| Pointer | Clone () const |
| |
| virtual Pointer | CreateAnother () const |
| |
| virtual void | Delete () |
| |
| virtual const char * | GetNameOfClass () const |
| |
| virtual int | GetReferenceCount () const |
| |
| void | Print (std::ostream &os, Indent indent=0) const |
| |
| virtual void | Register () const |
| |
| virtual void | SetReferenceCount (int) |
| |
| virtual void | UnRegister () const noexcept |
| |
|
| void | ComputeConnectivityOffsets () |
| |
| void | GenerateData () override |
| |
| | MaskFeaturePointSelectionFilter () |
| |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| |
| | ~MaskFeaturePointSelectionFilter () override=default |
| |
| | ImageToMeshFilter () |
| |
| | ~ImageToMeshFilter () override=default |
| |
| void | GenerateInputRequestedRegion () override |
| |
| | MeshSource () |
| |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| |
| | ~MeshSource () override=default |
| |
| virtual void | AddInput (DataObject *input) |
| |
| void | AddOptionalInputName (const DataObjectIdentifierType &) |
| |
| void | AddOptionalInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
| |
| virtual void | AddOutput (DataObject *output) |
| |
| bool | AddRequiredInputName (const DataObjectIdentifierType &) |
| |
| bool | AddRequiredInputName (const DataObjectIdentifierType &, DataObjectPointerArraySizeType idx) |
| |
| virtual void | CacheInputReleaseDataFlags () |
| |
| virtual void | GenerateData () |
| |
| virtual void | GenerateInputRequestedRegion () |
| |
| virtual void | GenerateOutputInformation () |
| |
| virtual void | GenerateOutputRequestedRegion (DataObject *output) |
| |
| DataObject * | GetInput (const DataObjectIdentifierType &key) |
| |
| const DataObject * | GetInput (const DataObjectIdentifierType &key) const |
| |
| virtual const DataObjectPointerArraySizeType & | GetNumberOfRequiredInputs () const |
| |
| virtual const DataObjectPointerArraySizeType & | GetNumberOfRequiredOutputs () const |
| |
| bool | IsIndexedInputName (const DataObjectIdentifierType &) const |
| |
| bool | IsIndexedOutputName (const DataObjectIdentifierType &) const |
| |
| bool | IsRequiredInputName (const DataObjectIdentifierType &) const |
| |
| DataObjectPointerArraySizeType | MakeIndexFromInputName (const DataObjectIdentifierType &name) const |
| |
| DataObjectPointerArraySizeType | MakeIndexFromOutputName (const DataObjectIdentifierType &name) const |
| |
| DataObjectIdentifierType | MakeNameFromInputIndex (DataObjectPointerArraySizeType idx) const |
| |
| DataObjectIdentifierType | MakeNameFromOutputIndex (DataObjectPointerArraySizeType idx) const |
| |
| virtual void | PopBackInput () |
| |
| virtual void | PopFrontInput () |
| |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| |
| | ProcessObject () |
| |
| virtual void | PropagateResetPipeline () |
| |
| virtual void | PushBackInput (const DataObject *input) |
| |
| virtual void | PushFrontInput (const DataObject *input) |
| |
| virtual void | ReleaseInputs () |
| |
| virtual void | RemoveInput (const DataObjectIdentifierType &key) |
| |
| virtual void | RemoveInput (DataObjectPointerArraySizeType) |
| |
| virtual void | RemoveOutput (const DataObjectIdentifierType &key) |
| |
| virtual void | RemoveOutput (DataObjectPointerArraySizeType idx) |
| |
| bool | RemoveRequiredInputName (const DataObjectIdentifierType &) |
| |
| virtual void | RestoreInputReleaseDataFlags () |
| |
| virtual void | SetInput (const DataObjectIdentifierType &key, DataObject *input) |
| |
| virtual void | SetNthInput (DataObjectPointerArraySizeType idx, DataObject *input) |
| |
| virtual void | SetNthOutput (DataObjectPointerArraySizeType idx, DataObject *output) |
| |
| void | SetNumberOfIndexedInputs (DataObjectPointerArraySizeType num) |
| |
| void | SetNumberOfIndexedOutputs (DataObjectPointerArraySizeType num) |
| |
| virtual void | SetNumberOfRequiredInputs (DataObjectPointerArraySizeType) |
| |
| virtual void | SetNumberOfRequiredOutputs (DataObjectPointerArraySizeType _arg) |
| |
| virtual void | SetOutput (const DataObjectIdentifierType &name, DataObject *output) |
| |
| virtual void | SetPrimaryInput (DataObject *object) |
| |
| virtual void | SetPrimaryOutput (DataObject *object) |
| |
| void | SetRequiredInputNames (const NameArray &) |
| |
| virtual void | VerifyInputInformation () ITKv5_CONST |
| |
| virtual void | VerifyPreconditions () ITKv5_CONST |
| |
| | ~ProcessObject () override |
| |
| DataObject * | GetInput (DataObjectPointerArraySizeType idx) |
| |
| const DataObject * | GetInput (DataObjectPointerArraySizeType idx) const |
| |
| DataObject * | GetPrimaryInput () |
| |
| const DataObject * | GetPrimaryInput () const |
| |
| virtual void | SetPrimaryInputName (const DataObjectIdentifierType &key) |
| |
| virtual const char * | GetPrimaryInputName () const |
| |
| DataObject * | GetOutput (const DataObjectIdentifierType &key) |
| |
| const DataObject * | GetOutput (const DataObjectIdentifierType &key) const |
| |
| virtual void | SetPrimaryOutputName (const DataObjectIdentifierType &key) |
| |
| virtual const char * | GetPrimaryOutputName () const |
| |
| DataObject * | GetOutput (DataObjectPointerArraySizeType i) |
| |
| const DataObject * | GetOutput (DataObjectPointerArraySizeType i) const |
| |
| DataObject * | GetPrimaryOutput () |
| |
| const DataObject * | GetPrimaryOutput () const |
| |
| virtual bool | GetThreaderUpdateProgress () const |
| |
| virtual void | ThreaderUpdateProgressOn () |
| |
| virtual void | SetThreaderUpdateProgress (bool arg) |
| |
| | Object () |
| |
| bool | PrintObservers (std::ostream &os, Indent indent) const |
| |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| |
| virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
| |
| | ~Object () override |
| |
| virtual LightObject::Pointer | InternalClone () const |
| |
| | LightObject () |
| |
| virtual void | PrintHeader (std::ostream &os, Indent indent) const |
| |
| virtual void | PrintSelf (std::ostream &os, Indent indent) const |
| |
| virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
| |
| virtual | ~LightObject () |
| |
template<typename TImage , typename TMask = TImage, typename TFeatures = PointSet<Matrix<SpacePrecisionType, TImage::ImageDimension, TImage::ImageDimension>, TImage::ImageDimension>>
set/get non-connectivity with radius == 1 of dimension connect, 0 <= connect < ImageDimension; 0 is vertex connectivity (e.g., 26 in 3D), 1 is edge connectivity (e.g., 18 in 3D), 2 is face connectivity (e.g., 6 in 3D), etc
template<typename TImage , typename TMask = TImage, typename TFeatures = PointSet<Matrix<SpacePrecisionType, TImage::ImageDimension, TImage::ImageDimension>, TImage::ImageDimension>>
set/get non-connectivity with radius == 1 of dimension connect, 0 <= connect < ImageDimension; 0 is vertex connectivity (e.g., 26 in 3D), 1 is edge connectivity (e.g., 18 in 3D), 2 is face connectivity (e.g., 6 in 3D), etc