Alter an image with fixed value impulse noise, often called salt and pepper noise.
More...
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:
- \( I = \begin{cases} M, & \quad \text{if } U < p/2 \\ m, & \quad \text{if } U > 1 - p/2 \\ I_0, & \quad \text{if } p/2 \geq U \leq 1 - p/2 \end{cases} \)
- where \( p \) is the probability of the noise event, \( U \) is a uniformly distributed random variable in the \( [0,1] \) range, \( M \) is the greatest possible pixel value, and \( m \) the smallest possible pixel value.
Pixel alteration occurs at a user defined probability. Salt and pepper pixels are equally distributed.
- Author
- Gaetan Lehmann
This code was contributed in the Insight Journal paper "Noise
Simulation". https://doi.org/10.54294/vh6vbw
- See also
- itk::simple::SaltAndPepperNoise for the procedural interface
-
itk::SaltAndPepperNoiseImageFilter for the Doxygen on the original ITK class.
Definition at line 57 of file sitkSaltAndPepperNoiseImageFilter.h.
|
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. More...
|
|
static void | SetGlobalDefaultCoordinateTolerance (double) |
| Access the global tolerance to determine congruent spaces. More...
|
|
static double | GetGlobalDefaultDirectionTolerance () |
| Access the global tolerance to determine congruent spaces. More...
|
|
static void | SetGlobalDefaultDirectionTolerance (double) |
| Access the global tolerance to determine congruent spaces. More...
|
|
static bool | SetGlobalDefaultThreader (const std::string &threader) |
| Set/Get the default threader used for process objects. More...
|
|
static std::string | GetGlobalDefaultThreader () |
| Set/Get the default threader used for process objects. More...
|
|
static void | SetGlobalDefaultNumberOfThreads (unsigned int n) |
|
static unsigned int | GetGlobalDefaultNumberOfThreads () |
| Set/Get the default threader used for process objects. More...
|
|
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) |
|