ITK
4.13.0
Insight Segmentation and Registration Toolkit
|
#include <itkUnsharpMaskImageFilter.h>
Edge enhancement filter.
This filter subtracts a smoothed version of the image from the image to achieve the edge enhancing effect. https://en.wikipedia.org/w/index.php?title=Unsharp_masking&oldid=750486803#Photographic_unsharp_masking
It has configurable amount, radius (sigma) and threshold, and whether to clamp the resulting values to the range of output type.
Formula: sharpened=original+[abs(original-blurred)-threshold]*amount
If clamping is turned off (it is on by default), casting to output pixel format is done using C++ defaults, meaning that values are not clamped but rather wrap around e.g. 260 -> 4 (unsigned char).
Definition at line 55 of file itkUnsharpMaskImageFilter.h.
Classes | |
class | UnsharpMaskingFunctor |
Public Member Functions | |
virtual ::itk::LightObject::Pointer | CreateAnother () const |
virtual const char * | GetNameOfClass () const |
virtual void | SetSigmas (SigmaArrayType _arg) |
virtual SigmaArrayType | GetSigmas () const |
void | SetSigma (const typename SigmaArrayType::ValueType sigma) |
virtual void | SetAmount (TInternalPrecision _arg) |
virtual TInternalPrecision | GetAmount () const |
virtual void | SetThreshold (TInternalPrecision _arg) |
virtual TInternalPrecision | GetThreshold () const |
virtual void | SetClamp (bool _arg) |
virtual bool | GetClamp () const |
virtual void | ClampOn () |
virtual void | ClampOff () |
Public Member Functions inherited from itk::ImageToImageFilter< TInputImage, TOutputImage > | |
const InputImageType * | GetInput () const |
const InputImageType * | GetInput (unsigned int idx) const |
virtual void | PopBackInput () override |
virtual void | PopFrontInput () override |
virtual void | PushBackInput (const InputImageType *image) |
virtual void | PushFrontInput (const InputImageType *image) |
virtual void | SetInput (const InputImageType *image) |
virtual void | SetInput (unsigned int, const TInputImage *image) |
virtual void | SetCoordinateTolerance (double _arg) |
virtual double | GetCoordinateTolerance () const |
virtual void | SetDirectionTolerance (double _arg) |
virtual double | GetDirectionTolerance () const |
Public Member Functions inherited from itk::ImageSource< TOutputImage > | |
OutputImageType * | GetOutput (unsigned int idx) |
virtual void | GraftNthOutput (unsigned int idx, DataObject *output) |
virtual void | GraftOutput (const DataObjectIdentifierType &key, DataObject *output) |
OutputImageType * | GetOutput () |
const OutputImageType * | GetOutput () const |
virtual void | GraftOutput (DataObject *output) |
virtual ProcessObject::DataObjectPointer | MakeOutput (ProcessObject::DataObjectPointerArraySizeType idx) override |
virtual ProcessObject::DataObjectPointer | MakeOutput (const ProcessObject::DataObjectIdentifierType &) override |
Public Member Functions inherited from itk::ProcessObject | |
virtual void | AbortGenerateDataOff () |
virtual void | AbortGenerateDataOn () |
virtual void | EnlargeOutputRequestedRegion (DataObject *) |
virtual const bool & | GetAbortGenerateData () const |
DataObjectPointerArray | GetIndexedInputs () |
DataObjectPointerArray | GetIndexedOutputs () |
NameArray | GetInputNames () const |
DataObjectPointerArray | GetInputs () |
MultiThreaderType * | GetMultiThreader () const |
DataObjectPointerArraySizeType | GetNumberOfIndexedInputs () const |
DataObjectPointerArraySizeType | GetNumberOfIndexedOutputs () const |
DataObjectPointerArraySizeType | GetNumberOfInputs () const |
DataObjectPointerArraySizeType | GetNumberOfOutputs () const |
virtual DataObjectPointerArraySizeType | GetNumberOfValidRequiredInputs () const |
NameArray | GetOutputNames () const |
DataObjectPointerArray | GetOutputs () |
virtual const float & | GetProgress () const |
NameArray | GetRequiredInputNames () const |
bool | HasInput (const DataObjectIdentifierType &key) const |
bool | HasOutput (const DataObjectIdentifierType &key) const |
virtual void | PrepareOutputs () |
virtual void | PropagateRequestedRegion (DataObject *output) |
virtual void | ResetPipeline () |
virtual void | SetAbortGenerateData (bool _arg) |
virtual void | Update () |
virtual void | UpdateLargestPossibleRegion () |
virtual void | UpdateOutputData (DataObject *output) |
virtual void | UpdateOutputInformation () |
void | UpdateProgress (float progress) |
void | SetProgress (float progress) |
virtual void | SetReleaseDataFlag (bool flag) |
virtual bool | GetReleaseDataFlag () const |
void | ReleaseDataFlagOn () |
void | ReleaseDataFlagOff () |
virtual void | SetReleaseDataBeforeUpdateFlag (bool _arg) |
virtual const bool & | GetReleaseDataBeforeUpdateFlag () const |
virtual void | ReleaseDataBeforeUpdateFlagOn () |
virtual void | ReleaseDataBeforeUpdateFlagOff () |
virtual void | SetNumberOfThreads (ThreadIdType _arg) |
virtual const ThreadIdType & | GetNumberOfThreads () const |
Public Member Functions inherited from itk::Object | |
unsigned long | AddObserver (const EventObject &event, Command *) |
unsigned long | AddObserver (const EventObject &event, Command *) const |
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 |
virtual const TimeStamp & | GetTimeStamp () const |
bool | HasObserver (const EventObject &event) const |
void | InvokeEvent (const EventObject &) |
void | InvokeEvent (const EventObject &) const |
virtual void | Modified () const |
virtual void | Register () const override |
void | RemoveAllObservers () |
void | RemoveObserver (unsigned long tag) |
void | SetDebug (bool debugFlag) const |
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
virtual void | SetReferenceCount (int) override |
virtual void | UnRegister () const noexceptoverride |
virtual void | SetObjectName (std::string _arg) |
virtual const std::string & | GetObjectName () const |
Public Member Functions inherited from itk::LightObject | |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
itkCloneMacro (Self) | |
void | Print (std::ostream &os, Indent indent=0) const |
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 () |
Private Attributes | |
TInternalPrecision | m_Amount |
bool | m_Clamp |
SigmaArrayType | m_Sigmas |
TInternalPrecision | m_Threshold |
typedef TOutputImage::PixelType | OutputPixelType |
typedef TOutputImage::InternalPixelType | OutputInternalPixelType |
typedef TInputImage::PixelType | InputPixelType |
typedef TInputImage::InternalPixelType | InputInternalPixelType |
typedef TOutputImage::RegionType | OutputImageRegionType |
typedef TInputImage::RegionType | InputImageRegionType |
static const unsigned int | ImageDimension = TOutputImage::ImageDimension |
static const unsigned int | InputImageDimension = TInputImage::ImageDimension |
typedef SmartPointer< const Self > itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::ConstPointer |
Definition at line 93 of file itkUnsharpMaskImageFilter.h.
typedef SmoothingRecursiveGaussianImageFilter< TInputImage, Image<TInternalPrecision, TOutputImage::ImageDimension> > itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::GaussianType |
Definition at line 103 of file itkUnsharpMaskImageFilter.h.
typedef InputImageType::Pointer itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::InputImagePointer |
Definition at line 85 of file itkUnsharpMaskImageFilter.h.
typedef TInputImage::RegionType itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::InputImageRegionType |
Extract some information from the image types.
Definition at line 73 of file itkUnsharpMaskImageFilter.h.
typedef TInputImage itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::InputImageType |
Image typedef support
Definition at line 83 of file itkUnsharpMaskImageFilter.h.
typedef TInputImage::InternalPixelType itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::InputInternalPixelType |
Extract some information from the image types.
Definition at line 71 of file itkUnsharpMaskImageFilter.h.
typedef TInputImage::PixelType itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::InputPixelType |
Extract some information from the image types.
Definition at line 70 of file itkUnsharpMaskImageFilter.h.
typedef TInternalPrecision itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::InternalPrecisionType |
Definition at line 87 of file itkUnsharpMaskImageFilter.h.
typedef TOutputImage::RegionType itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::OutputImageRegionType |
Extract some information from the image types.
Definition at line 72 of file itkUnsharpMaskImageFilter.h.
typedef TOutputImage itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::OutputImageType |
Definition at line 84 of file itkUnsharpMaskImageFilter.h.
typedef TOutputImage::InternalPixelType itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::OutputInternalPixelType |
Extract some information from the image types.
Definition at line 69 of file itkUnsharpMaskImageFilter.h.
typedef TOutputImage::PixelType itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::OutputPixelType |
Extract some information from the image types.
Definition at line 68 of file itkUnsharpMaskImageFilter.h.
typedef SmartPointer< Self > itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::Pointer |
Smart pointer typedef support
Definition at line 92 of file itkUnsharpMaskImageFilter.h.
typedef UnsharpMaskImageFilter itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::Self |
Standard "Self" & Superclass typedef.
Definition at line 62 of file itkUnsharpMaskImageFilter.h.
typedef GaussianType::SigmaArrayType itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::SigmaArrayType |
Definition at line 117 of file itkUnsharpMaskImageFilter.h.
typedef ImageToImageFilter< TInputImage, TOutputImage > itk::UnsharpMaskImageFilter< TInputImage, TOutputImage, TInternalPrecision >::Superclass |
Definition at line 63 of file itkUnsharpMaskImageFilter.h.
|
protected |
|
inlineoverrideprotectedvirtual |
Definition at line 154 of file itkUnsharpMaskImageFilter.h.
|
virtual |
Set/Get whether to clamp values to supported range of output type. Default: On.
|
virtual |
Set/Get whether to clamp values to supported range of output type. Default: On.
|
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.
|
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 ThreadedGenerateData(). 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 an be threaded, it should NOT provide a GenerateData() method but should provide a ThreadedGenerateData() instead.
Reimplemented from itk::ImageSource< TOutputImage >.
|
overrideprotectedvirtual |
UnsharpMaskImageFilter needs a larger input requested region than the output requested region (larger by the size of the Gaussian kernel). As such, UnsharpMaskImageFilter needs to provide an implementation for GenerateInputRequestedRegion() in order to inform the pipeline execution model.
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
|
virtual |
Set/Get amount of enhancement. Usual range: 0.1 to 2.0. Default: 0.5.
|
virtual |
Set/Get whether to clamp values to supported range of output type. Default: On.
|
virtual |
Run-time type information (and related methods)
Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.
|
virtual |
Set/Get Sigma values measured in the units of image spacing. Default: 1.0.
|
virtual |
Set/Get threshold for enhancement. Default: 0.
|
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 >.
|
virtual |
Set/Get amount of enhancement. Usual range: 0.1 to 2.0. Default: 0.5.
|
virtual |
Set/Get whether to clamp values to supported range of output type. Default: On.
|
inline |
Convenience method for setting all dimensional parameters to the same values.
Definition at line 126 of file itkUnsharpMaskImageFilter.h.
References itk::FixedArray< TValue, VLength >::Fill().
|
virtual |
Set/Get Sigma values measured in the units of image spacing. Default: 1.0.
|
virtual |
Set/Get threshold for enhancement. Default: 0.
|
overrideprotectedvirtual |
Verifies that the process object has been configured correctly, that all required inputs are set, and needed parameters are set appropriately. If not valid an exceptions will be thrown.
This method is called before UpdateOutputInformation is propagated to the inputs.
The ProcessObject's implementation verifies that the NumberOfRequiredInputs are set and not null.
Reimplemented from itk::ProcessObject.
|
static |
Extract some information from the image types.
Definition at line 75 of file itkUnsharpMaskImageFilter.h.
|
static |
Extract some information from the image types.
Definition at line 77 of file itkUnsharpMaskImageFilter.h.
|
private |
The edge amplification amount
Definition at line 171 of file itkUnsharpMaskImageFilter.h.
|
private |
Definition at line 177 of file itkUnsharpMaskImageFilter.h.
|
private |
Definition at line 176 of file itkUnsharpMaskImageFilter.h.
|
private |
Definition at line 175 of file itkUnsharpMaskImageFilter.h.