ITK
5.0.0
Insight Segmentation and Registration Toolkit
|
#include <itkHistogramThresholdImageFilter.h>
Threshold an image using a HistogramThresholdCalculator.
This filter creates a binary thresholded image that separates an image into foreground and background components. The filter computes the threshold using a user provided HistogramThresholdCalculator and applies that threshold to the input image using the BinaryThresholdImageFilter.
The filter also has the option of providing a mask, in which case the histogram and therefore the threshold is computed from the parts of the mask with values indicated by MaskValue. The output image is, by default, masked by the same image. This output masking can be disabled using SetMaskOutput(false). Note that there is an inconsistency here. The MaskImageFilter (used internally) masks by non zero values, where as the MaskedImageToHistogramFilter uses explicit values. If this does not match your usage then the output masking will need to be managed by the user.
This implementation was taken from the Insight Journal paper: https://hdl.handle.net/10380/3279 or http://www.insight-journal.org/browse/publication/811
Definition at line 61 of file itkHistogramThresholdImageFilter.h.
Public Types | |
using | CalculatorPointer = typename CalculatorType::Pointer |
using | CalculatorType = HistogramThresholdCalculator< HistogramType, InputPixelType > |
using | ConstPointer = SmartPointer< const Self > |
using | HistogramConstPointer = typename HistogramType::ConstPointer |
using | HistogramMeasurementType = typename HistogramType::MeasurementType |
using | HistogramMeasurementVectorType = typename HistogramType::MeasurementVectorType |
using | HistogramPointer = typename HistogramType::Pointer |
using | HistogramSizeType = typename HistogramType::SizeType |
using | HistogramType = Statistics::Histogram< ValueRealType > |
using | InputImagePointer = typename InputImageType::Pointer |
using | InputImageRegionType = typename InputImageType::RegionType |
using | InputImageType = TInputImage |
using | InputIndexType = typename InputImageType::IndexType |
using | InputPixelType = typename InputImageType::PixelType |
using | InputSizeType = typename InputImageType::SizeType |
using | MaskImagePointer = typename MaskImageType::Pointer |
using | MaskImageRegionType = typename MaskImageType::RegionType |
using | MaskImageType = TMaskImage |
using | MaskIndexType = typename MaskImageType::IndexType |
using | MaskPixelType = typename MaskImageType::PixelType |
using | MaskSizeType = typename MaskImageType::SizeType |
using | OutputImagePointer = typename OutputImageType::Pointer |
using | OutputImageRegionType = typename OutputImageType::RegionType |
using | OutputImageType = TOutputImage |
using | OutputIndexType = typename OutputImageType::IndexType |
using | OutputPixelType = typename OutputImageType::PixelType |
using | OutputSizeType = typename OutputImageType::SizeType |
using | Pointer = SmartPointer< Self > |
using | Self = HistogramThresholdImageFilter |
using | Superclass = ImageToImageFilter< TInputImage, TOutputImage > |
using | ValueRealType = typename NumericTraits< ValueType >::RealType |
using | ValueType = typename NumericTraits< InputPixelType >::ValueType |
Public Types inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
using | ConstPointer = SmartPointer< const Self > |
using | InputImageConstPointer = typename InputImageType::ConstPointer |
using | InputImagePixelType = typename InputImageType::PixelType |
using | InputImagePointer = typename InputImageType::Pointer |
using | InputImageRegionType = typename InputImageType::RegionType |
using | InputImageType = TInputImage |
using | OutputImagePixelType = typename Superclass::OutputImagePixelType |
using | OutputImageRegionType = typename Superclass::OutputImageRegionType |
using | Pointer = SmartPointer< Self > |
using | Self = ImageToImageFilter |
using | Superclass = ImageSource< TOutputImage > |
Public Types inherited from itk::ImageSource< TOutputImage > | |
using | ConstPointer = SmartPointer< const Self > |
using | DataObjectIdentifierType = Superclass::DataObjectIdentifierType |
using | DataObjectPointer = DataObject::Pointer |
using | DataObjectPointerArraySizeType = Superclass::DataObjectPointerArraySizeType |
using | OutputImagePixelType = typename OutputImageType::PixelType |
using | OutputImagePointer = typename OutputImageType::Pointer |
using | OutputImageRegionType = typename OutputImageType::RegionType |
using | OutputImageType = TOutputImage |
using | Pointer = SmartPointer< Self > |
using | Self = ImageSource |
using | Superclass = ProcessObject |
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::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 | InputImageDimension = InputImageType::ImageDimension |
static constexpr unsigned int | MaskImageDimension = MaskImageType::ImageDimension |
static constexpr unsigned int | OutputImageDimension = OutputImageType::ImageDimension |
Static Public Attributes inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
static constexpr unsigned int | InputImageDimension = TInputImage::ImageDimension |
static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Static Public Attributes inherited from itk::ImageSource< TOutputImage > | |
static constexpr unsigned int | OutputImageDimension = TOutputImage::ImageDimension |
Private Attributes | |
bool | m_AutoMinimumMaximum |
CalculatorPointer | m_Calculator |
OutputPixelType | m_InsideValue |
bool | m_MaskOutput { true } |
MaskPixelType | m_MaskValue |
unsigned | m_NumberOfHistogramBins { 256 } |
OutputPixelType | m_OutsideValue |
InputPixelType | m_Threshold |
Additional Inherited Members | |
Protected Types inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
using | InputToOutputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::OutputImageDimension, Self::InputImageDimension > |
using | OutputToInputRegionCopierType = ImageToImageFilterDetail::ImageRegionCopier< Self::InputImageDimension, Self::OutputImageDimension > |
Static Protected Member Functions inherited from itk::ImageSource< TOutputImage > | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
Protected Attributes inherited from itk::ImageSource< TOutputImage > | |
bool | m_DynamicMultiThreading |
Protected Attributes inherited from itk::ProcessObject | |
TimeStamp | m_OutputInformationMTime |
bool | m_Updating |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount |
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::CalculatorPointer = typename CalculatorType::Pointer |
Definition at line 113 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::CalculatorType = HistogramThresholdCalculator<HistogramType, InputPixelType> |
Definition at line 112 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 71 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::HistogramConstPointer = typename HistogramType::ConstPointer |
Definition at line 107 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::HistogramMeasurementType = typename HistogramType::MeasurementType |
Definition at line 109 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::HistogramMeasurementVectorType = typename HistogramType::MeasurementVectorType |
Definition at line 110 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::HistogramPointer = typename HistogramType::Pointer |
Definition at line 106 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::HistogramSizeType = typename HistogramType::SizeType |
Definition at line 108 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::HistogramType = Statistics::Histogram< ValueRealType > |
Definition at line 105 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::InputImagePointer = typename InputImageType::Pointer |
Image related type alias.
Definition at line 89 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::InputImageRegionType = typename InputImageType::RegionType |
Definition at line 95 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::InputImageType = TInputImage |
Definition at line 79 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::InputIndexType = typename InputImageType::IndexType |
Definition at line 94 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::InputPixelType = typename InputImageType::PixelType |
Image pixel value type alias.
Definition at line 84 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::InputSizeType = typename InputImageType::SizeType |
Definition at line 93 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::MaskImagePointer = typename MaskImageType::Pointer |
Definition at line 91 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::MaskImageRegionType = typename MaskImageType::RegionType |
Definition at line 101 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::MaskImageType = TMaskImage |
Definition at line 81 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::MaskIndexType = typename MaskImageType::IndexType |
Definition at line 100 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::MaskPixelType = typename MaskImageType::PixelType |
Definition at line 86 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::MaskSizeType = typename MaskImageType::SizeType |
Definition at line 99 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::OutputImagePointer = typename OutputImageType::Pointer |
Definition at line 90 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::OutputImageRegionType = typename OutputImageType::RegionType |
Definition at line 98 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::OutputImageType = TOutputImage |
Definition at line 80 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::OutputIndexType = typename OutputImageType::IndexType |
Definition at line 97 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::OutputPixelType = typename OutputImageType::PixelType |
Definition at line 85 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::OutputSizeType = typename OutputImageType::SizeType |
Definition at line 96 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::Pointer = SmartPointer<Self> |
Definition at line 70 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::Self = HistogramThresholdImageFilter |
Standard Self type alias
Definition at line 68 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::Superclass = ImageToImageFilter<TInputImage,TOutputImage> |
Definition at line 69 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::ValueRealType = typename NumericTraits< ValueType >::RealType |
Definition at line 104 of file itkHistogramThresholdImageFilter.h.
using itk::HistogramThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::ValueType = typename NumericTraits< InputPixelType >::ValueType |
Definition at line 103 of file itkHistogramThresholdImageFilter.h.
|
protected |
|
overrideprotecteddefault |
|
virtual |
Does histogram generator compute min and max from data? Default is true for all but char types
|
virtual |
Does histogram generator compute min and max from data? Default is true for all but char types
|
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::Object.
Reimplemented in itk::OtsuThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::HuangThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::IsoDataThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::KittlerIllingworthThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::LiThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::MaximumEntropyThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::MomentsThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::RenyiEntropyThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::ShanbhagThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::TriangleThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::IntermodesThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, and itk::YenThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >.
|
overrideprotectedvirtual |
A version of GenerateData() specific for image processing filters. This implementation will split the processing across multiple threads. The buffer is allocated by this method. Then the BeforeThreadedGenerateData() method is called (if provided). Then, a series of threads are spawned each calling DynamicThreadedGenerateData(). After all the threads have completed processing, the AfterThreadedGenerateData() method is called (if provided). If an image processing filter cannot be threaded, the filter should provide an implementation of GenerateData(). That implementation is responsible for allocating the output buffer. If a filter can be threaded, it should NOT provide a GenerateData() method but should provide a DynamicThreadedGenerateData() instead.
Reimplemented from itk::ImageSource< TOutputImage >.
Reimplemented in itk::OtsuThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >.
Referenced by itk::OtsuThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::GenerateData().
|
overrideprotectedvirtual |
What is the input requested region that is required to produce the output requested region? The base assumption for image processing filters is that the input requested region can be set to match the output requested region. If a filter requires more input (for instance a filter that uses neighborhoods needs more input than output to avoid introducing artificial boundary conditions) or less input (for instance a magnify filter) will have to override this method. In doing so, it should call its superclass' implementation as its first step. Note that imaging filters operate differently than the classes to this point in the class hierarchy. Up till now, the base assumption has been that the largest possible region will be requested of the input.
This implementation of GenerateInputRequestedRegion() only processes the inputs that are a subclass of the ImageBase<InputImageDimension>. If an input is another type of DataObject (including an Image of a different dimension), they are skipped by this method. The subclasses of ImageToImageFilter are responsible for providing an implementation of GenerateInputRequestedRegion() when there are multiple inputs of different types.
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
|
virtual |
Does histogram generator compute min and max from data? Default is true for all but char types
|
virtual |
Set/Get the calculator to use to compute the threshold
|
virtual |
Get the "inside" pixel value.
|
virtual |
Set and Get the mask image
|
virtual |
Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use. Default is true.
|
virtual |
The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter
|
virtual |
Set/Get the calculator to use to compute the threshold
Referenced by itk::OtsuThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::GenerateData().
|
virtual |
Runtime information support.
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::OtsuThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::HuangThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::IsoDataThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::KittlerIllingworthThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::LiThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::MaximumEntropyThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::MomentsThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::RenyiEntropyThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::ShanbhagThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::TriangleThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, itk::IntermodesThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >, and itk::YenThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >.
|
virtual |
Set the number of histogram bins
|
virtual |
Get the "outside" pixel value.
|
virtual |
Get the computed threshold.
|
virtual |
Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use. Default is true.
|
virtual |
Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use. Default is true.
|
static |
Method for creation through the object factory.
|
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::ImageToImageFilter< TInputImage, TOutputImage >.
Reimplemented in itk::IntermodesThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >.
Referenced by itk::IntermodesThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::PrintSelf().
|
virtual |
Does histogram generator compute min and max from data? Default is true for all but char types
|
virtual |
Set/Get the calculator to use to compute the threshold
Referenced by itk::HuangThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::HuangThresholdImageFilter(), itk::IntermodesThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::IntermodesThresholdImageFilter(), itk::IsoDataThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::IsoDataThresholdImageFilter(), itk::KittlerIllingworthThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::KittlerIllingworthThresholdImageFilter(), itk::LiThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::LiThresholdImageFilter(), itk::MaximumEntropyThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::MaximumEntropyThresholdImageFilter(), itk::MomentsThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::MomentsThresholdImageFilter(), itk::OtsuThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::OtsuThresholdImageFilter(), itk::RenyiEntropyThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::RenyiEntropyThresholdImageFilter(), itk::ShanbhagThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::ShanbhagThresholdImageFilter(), itk::TriangleThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::TriangleThresholdImageFilter(), and itk::YenThresholdImageFilter< TInputImage, TOutputImage, TMaskImage >::YenThresholdImageFilter().
|
inline |
Set the input image
Definition at line 126 of file itkHistogramThresholdImageFilter.h.
|
inline |
Set the marker image
Definition at line 132 of file itkHistogramThresholdImageFilter.h.
|
virtual |
Set the "inside" pixel value. The default value NumericTraits<OutputPixelType>::max()
|
virtual |
Set and Get the mask image
|
virtual |
Do you want the output to be masked by the mask used in histogram construction. Only relevant if masking is in use. Default is true.
|
virtual |
The value in the mask image, if used, indicating voxels that should be included. Default is the max of pixel type, as in the MaskedImageToHistogramFilter
|
virtual |
Set the number of histogram bins
|
virtual |
Set the "outside" pixel value. The default value NumericTraits<OutputPixelType>::ZeroValue().
|
static |
Image related type alias.
Definition at line 116 of file itkHistogramThresholdImageFilter.h.
|
private |
Definition at line 212 of file itkHistogramThresholdImageFilter.h.
|
private |
Definition at line 210 of file itkHistogramThresholdImageFilter.h.
|
private |
Definition at line 206 of file itkHistogramThresholdImageFilter.h.
|
private |
Definition at line 213 of file itkHistogramThresholdImageFilter.h.
|
private |
Definition at line 209 of file itkHistogramThresholdImageFilter.h.
|
private |
Definition at line 211 of file itkHistogramThresholdImageFilter.h.
|
private |
Definition at line 207 of file itkHistogramThresholdImageFilter.h.
|
private |
Definition at line 208 of file itkHistogramThresholdImageFilter.h.
|
static |
Definition at line 118 of file itkHistogramThresholdImageFilter.h.
|
static |
Definition at line 117 of file itkHistogramThresholdImageFilter.h.