STIRA
0.1
|
Convolves image with Gaussian PSF. More...
#include <GaussConvolve.h>
Public Types | |
enum | FilterType { FFT_BASED, RECURSIVE_BASED } |
identifier which type of gausssian filter this is | |
enum | DerivativeType { DERIVATIVE_NONE, DERIVATIVE_X, DERIVATIVE_Y, DERIVATIVE_XX, DERIVATIVE_YY, DERIVATIVE_XY } |
identifier which type of gausssian filter this is | |
Public Member Functions | |
GaussConvolve () | |
constructor | |
~GaussConvolve () | |
destructor | |
Static Public Member Functions | |
static ArrayGrid< double > * | CreateBlurredBars (int width, int height, int barWidth, double sigmaBlurMax) |
generate test pattern of horizontal bars that become gradually more and more blurred More... | |
static ArrayGrid< double > * | Convolve (ArrayGrid< double > *pImage, double sigma, FilterType myType=FFT_BASED) |
Applies Gaussian filter to grid Generates new grid, which the caller is responsible for. More... | |
static Image * | Convolve (Image *pImage, double sigma, FilterType myType=FFT_BASED) |
Applies Gaussian filter to image Generates new image, which the caller is responsible for. More... | |
static ArrayGrid< double > * | DerivativeConvolveFFT (ArrayGrid< double > *pGridIn, double sigmaX, double sigmaY, DerivativeType myType) |
Applies Gaussian filter or its derivatives (applied in Fourier domain) to a grid Generates new grid with filter response, which the caller is responsible for. More... | |
static ArrayGrid< double > * | DerivativeConvolveSeparable (ArrayGrid< double > *pGridIn, double sigma, DerivativeType myType, GridExtender< double >::ExtensionType myExtensionType=GridExtender< double >::EXTEND_MIRROR) |
Applies Gaussian filter or its derivatives (applied in spatial domain by a separable filter in x and y) to grid Generates new grid with filter response, which the caller is responsible for. More... | |
static ArrayGrid< double > * | ConvolveSeparable (ArrayGrid< double > *pGridIn, double sigma) |
Simple interface to straightforward Gaussian filter (applied in spatial domain by a separable filter in x and y) to grid Generates new grid with filter response, which the caller is responsible for. More... | |
static Image * | DerivativeConvolveFFT (Image *pImageIn, double sigma, DerivativeType myType, GridExtender< double >::ExtensionType myExtensionType=GridExtender< double >::EXTEND_MIRROR) |
Applies Gaussian filter or its derivatives (applied in Fourier domain) to image Generates new image with filter response, which the caller is responsible for. More... | |
static Image * | DerivativeConvolveSeparable (Image *pImageIn, double sigma, DerivativeType myType, GridExtender< double >::ExtensionType myExtensionType=GridExtender< double >::EXTEND_MIRROR) |
Applies Gaussian filter or its derivatives (applied in spatial domain by a separable filter in x and y) to image Generates new image with filter response, which the caller is responsible for. More... | |
static Image * | ConvolveSeparable (Image *pImageIn, double sigma) |
Simple interface to straightforward Gaussian filter (applied in spatial domain by a separable filter in x and y) to grid Generates new image with filter response, which the caller is responsible for. More... | |
static ArrayGrid< double > * | GenerateGaussianPSF (int width, int height, double sigmaX, double sigmaY) |
Generates a Gaussian filter kernel Generates new image, which the caller is responsible for. More... | |
static ArrayGrid< double > * | GenerateGaussianPSF (int width, int height, double sigma1, double sigma2, double rho) |
Generates a Gaussian filter kernel Generates new image, which the caller is responsible for. More... | |
static ArrayGrid< double > * | UpsampleGaussianInterpolated (ArrayGrid< double > *pGridIn, int upscalefactor) |
Generates an upscaled grid, where all pixels are interpolated with a Gaussian function Generates new grid with filter response, which the caller is responsible for. More... | |
Convolves image with Gaussian PSF.
Recursive implementation based on:
article{ young95recursive, author = {Young, I. T. and {van~Vliet}, L. J.}, title = {Recursive implementation of the Gaussian filter}, volume = {44}, number = {2}, pages = {139-151}, year = {1995}, url = {http://citeseer.ist.psu.edu/young95recursive.html} }
|
static |
Applies Gaussian filter to grid Generates new grid, which the caller is responsible for.
pImage | input grid |
sigma | sigma for the gaussian filter |
myType | how to compute the filtering: recursively or in Fourier domain |
Referenced by stira::degradationestimation::BlurEstimatorHu::Run(), and stira::contrastenhance::Retinex::~Retinex().
|
static |
Applies Gaussian filter to image Generates new image, which the caller is responsible for.
pImage | input image |
sigma | sigma for the gaussian filter |
myType | how to compute the filtering: recursively or in Fourier domain |
|
static |
Simple interface to straightforward Gaussian filter (applied in spatial domain by a separable filter in x and y) to grid Generates new grid with filter response, which the caller is responsible for.
pGridIn | input grid |
sigma | sigma for the gaussian filter |
Referenced by stira::deconvolve::WienerDeconvolve::~WienerDeconvolve().
Simple interface to straightforward Gaussian filter (applied in spatial domain by a separable filter in x and y) to grid Generates new image with filter response, which the caller is responsible for.
pImageIn | input image |
sigma | sigma for the gaussian filter |
|
static |
generate test pattern of horizontal bars that become gradually more and more blurred
width | width of the test pattern |
height | height of the test pattern |
barWidth | width of a bar in the image |
sigmaBlurMax | the maximal blur applied to the bars (at the right of the image) |
References stira::filter::SeparableFilter::BasicFilter1D(), stira::common::MathUtils::Gaussian(), stira::common::MathUtils::GaussianFirstDerivativeX1D(), stira::common::MathUtils::GaussianSecondDerivateX1D(), stira::imagetools::GridGenerator::GenerateBars(), stira::imagedata::ArrayGrid< T >::GetValue(), and stira::imagedata::ArrayGrid< T >::SetValue().
|
static |
Applies Gaussian filter or its derivatives (applied in Fourier domain) to a grid Generates new grid with filter response, which the caller is responsible for.
pGridIn | input grid |
sigma | sigma for the gaussian filter |
myType | which derivative kernel to use for the filtering |
References stira::imagedata::ArrayGrid< T >::Clone(), stira::fouriertools::FFT::Convolve(), stira::imagetools::GridGenerator::GenerateGaussian(), stira::imagetools::GridGenerator::GenerateGaussianFirstDerivativeX(), stira::imagetools::GridGenerator::GenerateGaussianFirstDerivativeY(), stira::imagetools::GridGenerator::GenerateGaussianMixedDerivativesXY(), stira::imagetools::GridGenerator::GenerateGaussianSecondDerivativeX(), stira::imagetools::GridGenerator::GenerateGaussianSecondDerivativeY(), stira::imagedata::ArrayGrid< T >::GetHeight(), stira::imagedata::ArrayGrid< T >::GetWidth(), stira::imagetools::ImageIO::NORMAL_OUT, and stira::imagetools::ImageIO::WritePGM().
Referenced by stira::imageanalysis::StegerLineDetector::Run(), and stira::filter::UnsharpMask::~UnsharpMask().
|
static |
Applies Gaussian filter or its derivatives (applied in Fourier domain) to image Generates new image with filter response, which the caller is responsible for.
pImageIn | input grid |
sigma | sigma for the gaussian filter |
myType | which derivative kernel to use for the filtering |
myExtensionType | identifies how borders should be extended (mirror, tiled periodically, zero's) |
References stira::imagedata::Image::AddBand(), stira::imagetools::ImageTools::CropBorder(), stira::imagedata::Image::GetBands(), stira::imagedata::Image::GetHeight(), stira::imagedata::Image::GetImageName(), stira::imagedata::Image::GetNumberOfBands(), stira::imagedata::Image::GetWidth(), stira::imagetools::ImageTools::MirrorBorder(), stira::imagetools::ImageTools::PaddBorder(), and stira::imagedata::Image::SetImageName().
|
static |
Applies Gaussian filter or its derivatives (applied in spatial domain by a separable filter in x and y) to grid Generates new grid with filter response, which the caller is responsible for.
pGridIn | input grid |
sigma | sigma for the gaussian filter |
myType | which derivative kernel to use for the filtering |
myExtensionType | identifies how borders should be extended (mirror, tiled periodically, zero's) |
References stira::filter::SeparableFilter::RunRowColumn().
|
static |
Applies Gaussian filter or its derivatives (applied in spatial domain by a separable filter in x and y) to image Generates new image with filter response, which the caller is responsible for.
pImageIn | input image |
sigma | sigma for the gaussian filter |
myType | which derivative kernel to use for the filtering |
myExtensionType | identifies how borders should be extended (mirror, tile, black) |
References stira::imagedata::Image::AddBand(), stira::imagedata::Image::GetBands(), stira::imagedata::Image::GetHeight(), stira::imagedata::Image::GetImageName(), stira::imagedata::Image::GetNumberOfBands(), stira::imagedata::Image::GetWidth(), and stira::imagedata::Image::SetImageName().
|
static |
Generates a Gaussian filter kernel Generates new image, which the caller is responsible for.
width | width of image to generate |
height | height of image to generate |
sigmaX | sigma in X direction for the gaussian filter |
sigmaY | sigma in Y direction for the gaussian filter |
|
static |
Generates a Gaussian filter kernel Generates new image, which the caller is responsible for.
width | width of image to generate |
height | height of image to generate |
sigma1 | sigma of x for the gaussian filter |
sigma2 | sigma of y for the gaussian filter |
rho | correlation coefficient, must be between -1 and 1 |
|
static |
Generates an upscaled grid, where all pixels are interpolated with a Gaussian function Generates new grid with filter response, which the caller is responsible for.
pGridIn | input grid |
upscalefactor | factor with which grid needs to be upscaled |
References stira::imagedata::Image::AddBand(), stira::fouriertools::FFT::GaussConvolve(), stira::imagedata::Image::GetBands(), stira::imagedata::Image::GetHeight(), stira::imagedata::ArrayGrid< T >::GetHeight(), stira::imagedata::Image::GetImageName(), stira::imagedata::Image::GetNumberOfBands(), stira::imagedata::ArrayGrid< T >::GetValue(), stira::imagedata::Image::GetWidth(), stira::imagedata::ArrayGrid< T >::GetWidth(), stira::imagedata::GridExtender< T >::MirrorBorder(), stira::imagedata::ArrayGrid< T >::MultiplyWith(), stira::imagedata::Image::SetImageName(), and stira::imagedata::ArrayGrid< T >::SetValue().
Referenced by stira::pyramidapplications::PyramidKeyPointDetector::~PyramidKeyPointDetector().