#include <FastSUSANNoiseReduction.h>
Public Member Functions | |
FastSUSANNoiseReduction (int smoothingThreshold) | |
Constructor. | |
~FastSUSANNoiseReduction () | |
Destructor. | |
void | getFilteredPixel (const Image &source, int posX, int posY, unsigned char &valA, unsigned char &valB, unsigned char &valC) const |
Filters a chosen pixel of an image. | |
void | filterPixel (Image &source, int posX, int posY) const |
Filters a chosen pixel of an image, directly modifying it. | |
void | getFilteredImage (const Image &source, Image &destination) const |
Filters a whole image. | |
Private Member Functions | |
void | setupSusanLUT (int threshold) |
Initializes the LookUpTable. | |
char | correlation (int delta) const |
The correlation function, precomputed. | |
unsigned char | getFilteredPixelSpectrum (const Image &image, int posx, int posy, int spectrum) const |
Filters a single spectrum (ex. | |
Private Attributes | |
char | Susan_LUT [127] |
A LookUpTable containing a correlation function, in this implementation it's a "rect" for efficiency reasons. |
The main feature of S.U.S.A.N. filters is their capability to smooth out the noise while preserving image structures like lines, edges, borders, and so on, hence if the smoothing threshold is set correctly, the resulting image tipically exhibits no blur. This implementation has been significantly modified from the original SUSAN algorithm, in order to reach a vastly reduced computational cost making it suitable for real-time processing, so strictly speaking, this is NOT a SUSAN filter, yet it shares the same basic idea.
Definition at line 26 of file FastSUSANNoiseReduction.h.
|
Constructor.
Definition at line 44 of file FastSUSANNoiseReduction.cpp. References setupSusanLUT(). |
Here is the call graph for this function:
|
Destructor.
Definition at line 50 of file FastSUSANNoiseReduction.cpp. |
|
Filters a chosen pixel of an image. IMPORTANT NOTE: since it's a filter which makes use of a convolution kernel of size 3x3, always make sure that you don't access the 1 pixel wide border of the image, (so it should always be x>0, x<width-1, y>0, y<width-1) otherwise you'll be accessing memory out of the allocated space, with obvious consequences.
Definition at line 50 of file FastSUSANNoiseReduction.h. References getFilteredPixelSpectrum(). Referenced by getFilteredImage(). |
Here is the call graph for this function:
|
Filters a chosen pixel of an image, directly modifying it. IMPORTANT NOTE: since it's a filter which makes use of a convolution kernel of size 3x3, always make sure that you don't access the 1 pixel wide border of the image, (so it should always be x>0, x<width-1, y>0, y<width-1) otherwise you'll be accessing memory out of the allocated space, with obvious consequences.
Definition at line 67 of file FastSUSANNoiseReduction.h. References getFilteredPixelSpectrum(), and Image::image. |
Here is the call graph for this function:
|
Filters a whole image. IMPORTANT NOTE: since it's a filter which makes use of a convolution kernel of size 3x3, always make sure that you don't access the 1 pixel wide border of the image, (so it should always be x>0, x<width-1, y>0, y<width-1) otherwise you'll be accessing memory out of the allocated space, with obvious consequences.
Definition at line 24 of file FastSUSANNoiseReduction.cpp. References Image::cameraInfo, Image::colorTable, Image::frameNumber, getFilteredPixel(), Image::image, CameraInfo::resolutionHeight, and CameraInfo::resolutionWidth. |
Here is the call graph for this function:
|
Initializes the LookUpTable.
Definition at line 11 of file FastSUSANNoiseReduction.cpp. References Susan_LUT. Referenced by FastSUSANNoiseReduction(). |
|
The correlation function, precomputed.
Definition at line 100 of file FastSUSANNoiseReduction.h. References Susan_LUT. Referenced by getFilteredPixelSpectrum(). |
|
Filters a single spectrum (ex. Y or U or V) of a chosen pixel of an image. IMPORTANT NOTE: since it's a filter which makes use of a convolution kernel of size 3x3, always make sure that you don't access the 1 pixel wide border of the image, (so it should always be x>0, x<width-1, y>0, y<width-1) otherwise you'll be accessing memory out of the allocated space, with obvious consequences.
Definition at line 117 of file FastSUSANNoiseReduction.h. References correlation(), and Image::image. Referenced by filterPixel(), and getFilteredPixel(). |
Here is the call graph for this function:
|
A LookUpTable containing a correlation function, in this implementation it's a "rect" for efficiency reasons.
Definition at line 90 of file FastSUSANNoiseReduction.h. Referenced by correlation(), and setupSusanLUT(). |