SimpleITK
|
Alter an image with fixed value impulse noise, often called salt and pepper noise. More...
#include <sitkSaltAndPepperNoiseImageFilter.h>
Alter an image with fixed value impulse noise, often called salt and pepper noise.
Salt (sensor saturation) and pepper (dead pixels) noise is a special kind of impulse noise where the value of the noise is either the maximum possible value in the image or its minimum. This is not necessarily the maximal/minimal possible intensity value based on the pixel type. For example, the native pixel type for CT is a signed 16 bit integer, but only 12 bits used, so we would like to set the salt and pepper values to match this smaller intensity range and not the range the pixel type represents. It can be modeled as:
Pixel alteration occurs at a user defined probability. Salt and pepper pixels are equally distributed.
This code was contributed in the Insight Journal paper "Noise Simulation". https://doi.org/10.54294/vh6vbw
Definition at line 57 of file sitkSaltAndPepperNoiseImageFilter.h.
Public Types | |
using | PixelIDTypeList = BasicPixelIDTypeList |
using | Self = SaltAndPepperNoiseImageFilter |
![]() | |
using | Self = ImageFilter |
![]() | |
using | Self = ProcessObject |
Public Member Functions | |
Image | Execute (const Image &image1) |
Image | Execute (Image &&image1) |
std::string | GetName () const |
double | GetProbability () const |
uint32_t | GetSeed () const |
SaltAndPepperNoiseImageFilter () | |
Self & | SetProbability (double Probability) |
Self & | SetSeed (uint32_t Seed) |
std::string | ToString () const |
virtual | ~SaltAndPepperNoiseImageFilter () |
![]() | |
ImageFilter () | |
virtual | ~ImageFilter ()=0 |
![]() | |
virtual void | Abort () |
virtual int | AddCommand (itk::simple::EventEnum event, const std::function< void()> &func) |
Directly add a callback to observe an event. | |
virtual int | AddCommand (itk::simple::EventEnum event, itk::simple::Command &cmd) |
Add a Command Object to observer the event. | |
virtual float | GetProgress () const |
An Active Measurement of the progress of execution. | |
virtual bool | HasCommand (itk::simple::EventEnum event) const |
Query of this object has any registered commands for event. | |
ProcessObject () | |
virtual void | RemoveAllCommands () |
Remove all registered commands. | |
virtual | ~ProcessObject () |
virtual void | DebugOn () |
virtual void | DebugOff () |
virtual bool | GetDebug () const |
virtual void | SetDebug (bool debugFlag) |
virtual void | SetNumberOfThreads (unsigned int n) |
virtual unsigned int | GetNumberOfThreads () const |
virtual void | SetNumberOfWorkUnits (unsigned int n) |
virtual unsigned int | GetNumberOfWorkUnits () const |
Private Types | |
using | MemberFunctionType = Image (Self::*)( const Image& image1 ) |
Private Member Functions | |
template<class TImageType> | |
Image | ExecuteInternal (const Image &image1) |
template<class TImageType> | |
Image | ExecuteInternalVectorImage (const Image &image) |
Private Attributes | |
bool | m_InPlace {false} |
std::unique_ptr< detail::MemberFunctionFactory< MemberFunctionType > > | m_MemberFactory |
double | m_Probability {0.01} |
uint32_t | m_Seed {(uint32_t) itk::simple::sitkWallClock} |
Friends | |
struct | detail::ExecuteInternalVectorImageAddressor< MemberFunctionType > |
struct | detail::MemberFunctionAddressor< MemberFunctionType > |
Additional Inherited Members | |
![]() | |
static bool | GetGlobalDefaultDebug () |
static void | GlobalDefaultDebugOff () |
static void | GlobalDefaultDebugOn () |
static void | SetGlobalDefaultDebug (bool debugFlag) |
static void | GlobalWarningDisplayOn () |
static void | GlobalWarningDisplayOff () |
static void | SetGlobalWarningDisplay (bool flag) |
static bool | GetGlobalWarningDisplay () |
static double | GetGlobalDefaultCoordinateTolerance () |
Access the global tolerance to determine congruent spaces. | |
static void | SetGlobalDefaultCoordinateTolerance (double) |
Access the global tolerance to determine congruent spaces. | |
static double | GetGlobalDefaultDirectionTolerance () |
Access the global tolerance to determine congruent spaces. | |
static void | SetGlobalDefaultDirectionTolerance (double) |
Access the global tolerance to determine congruent spaces. | |
static bool | SetGlobalDefaultThreader (const std::string &threader) |
Set/Get the default threader used for process objects. | |
static std::string | GetGlobalDefaultThreader () |
Set/Get the default threader used for process objects. | |
static void | SetGlobalDefaultNumberOfThreads (unsigned int n) |
static unsigned int | GetGlobalDefaultNumberOfThreads () |
Set/Get the default threader used for process objects. | |
![]() | |
void | CheckImageMatchingDimension (const Image &image1, const Image &image2, const std::string &image2Name) |
void | CheckImageMatchingPixelType (const Image &image1, const Image &image2, const std::string &image2Name) |
void | CheckImageMatchingSize (const Image &image1, const Image &image2, const std::string &image2Name) |
![]() | |
virtual unsigned long | AddITKObserver (const itk::EventObject &, itk::Command *) |
virtual itk::ProcessObject * | GetActiveProcess () |
virtual void | OnActiveProcessDelete () |
virtual void | onCommandDelete (const itk::simple::Command *cmd) noexcept |
virtual void | PreUpdate (itk::ProcessObject *p) |
virtual void | RemoveITKObserver (EventCommand &e) |
![]() | |
NonCopyable ()=default | |
NonCopyable (const NonCopyable &)=delete | |
NonCopyable & | operator= (const NonCopyable &)=delete |
![]() | |
template<class TImageType> | |
static void | FixNonZeroIndex (TImageType *img) |
![]() | |
template<class TImageType> | |
static TImageType::ConstPointer | CastImageToITK (const Image &img) |
template<class TPixelType, unsigned int VImageDimension, unsigned int VLength, template< typename, unsigned int > class TVector> | |
static Image | CastITKToImage (itk::Image< TVector< TPixelType, VLength >, VImageDimension > *img) |
template<unsigned int VImageDimension, unsigned int VLength, template< unsigned int > class TVector> | |
static Image | CastITKToImage (itk::Image< TVector< VLength >, VImageDimension > *img) |
template<class TImageType> | |
static Image | CastITKToImage (TImageType *img) |
static const itk::EventObject & | GetITKEventObject (EventEnum e) |
template<typename T> | |
static std::ostream & | ToStringHelper (std::ostream &os, const T &v) |
static std::ostream & | ToStringHelper (std::ostream &os, const char &v) |
static std::ostream & | ToStringHelper (std::ostream &os, const signed char &v) |
static std::ostream & | ToStringHelper (std::ostream &os, const unsigned char &v) |
|
private |
Setup for member function dispatching
Definition at line 107 of file sitkSaltAndPepperNoiseImageFilter.h.
Define the pixels types supported by this filter
Definition at line 69 of file sitkSaltAndPepperNoiseImageFilter.h.
Definition at line 59 of file sitkSaltAndPepperNoiseImageFilter.h.
|
virtual |
Destructor
itk::simple::SaltAndPepperNoiseImageFilter::SaltAndPepperNoiseImageFilter | ( | ) |
Default Constructor that takes no arguments and initializes default parameters
Execute the filter on the input image
|
private |
|
private |
Dispatched methods which calls ExecuteInternal on each component
Referenced by detail::ExecuteInternalVectorImageAddressor< MemberFunctionType >.
|
inlinevirtual |
Name of this class
Implements itk::simple::ProcessObject.
Definition at line 91 of file sitkSaltAndPepperNoiseImageFilter.h.
|
inline |
Set/Get the probability of the salt and pepper noise event. Defaults to 0.01.
Definition at line 80 of file sitkSaltAndPepperNoiseImageFilter.h.
References m_Probability.
|
inline |
Definition at line 88 of file sitkSaltAndPepperNoiseImageFilter.h.
References m_Seed.
|
inline |
Set/Get the probability of the salt and pepper noise event. Defaults to 0.01.
Definition at line 75 of file sitkSaltAndPepperNoiseImageFilter.h.
References m_Probability.
|
inline |
Definition at line 84 of file sitkSaltAndPepperNoiseImageFilter.h.
References m_Seed.
|
virtual |
Print ourselves out
Reimplemented from itk::simple::ProcessObject.
|
friend |
Definition at line 110 of file sitkSaltAndPepperNoiseImageFilter.h.
References ExecuteInternalVectorImage().
|
friend |
Definition at line 110 of file sitkSaltAndPepperNoiseImageFilter.h.
|
private |
Definition at line 122 of file sitkSaltAndPepperNoiseImageFilter.h.
|
private |
Definition at line 114 of file sitkSaltAndPepperNoiseImageFilter.h.
|
private |
Definition at line 117 of file sitkSaltAndPepperNoiseImageFilter.h.
Referenced by GetProbability(), and SetProbability().
|
private |
Definition at line 119 of file sitkSaltAndPepperNoiseImageFilter.h.