This class does 2D convolution of an image by a functional form. More...
#include <Image2DConvolver.h>
Public Member Functions | |
Image2DConvolver () | |
Image2DConvolver (const SPCIIT image, const Record *const ®ionPtr, const String &mask, const String &outname, const Bool overwrite) | |
Image2DConvolver (const Image2DConvolver< T > &other) | |
~Image2DConvolver () | |
Image2DConvolver & | operator= (const Image2DConvolver< T > &other) |
SPIIT | convolve () |
void | setKernel (const String &type, const Quantity &major, const Quantity &minor, const Quantity &pa) |
type is a string that starts with "g" (gaussian), "b" (boxcar), or "h" (hanning), and is case insensitive | |
void | setScale (Double d) |
void | setAxes (const std::pair< uInt, uInt > &axes) |
void | setTargetRes (Bool b) |
String | getClass () const |
void | setSuppressWarnings (Bool b) |
if True, do not log certain warning messages which would normally be logged during convolution | |
Static Public Attributes | |
static const String | CLASS_NAME |
Protected Member Functions | |
CasacRegionManager::StokesControl | _getStokesControl () const |
vector< Coordinate::Type > | _getNecessaryCoordinates () const |
Represents the minimum set of coordinates necessary for the task to function. | |
Bool | _supportsMultipleRegions () const |
Private Member Functions | |
void | _checkKernelParameters (VectorKernel::KernelTypes kernelType, const Vector< Quantity > ¶meters) const |
void | _convolve (LogIO &os, SPIIT imageOut, const ImageInterface< T > &imageIn, VectorKernel::KernelTypes kernelType) const |
T | _dealWithRestoringBeam (LogIO &os, String &brightnessUnitOut, GaussianBeam &beamOut, const Array< T > &kernelArray, const T kernelVolume, const VectorKernel::KernelTypes kernelType, const Vector< Quantity > ¶meters, const CoordinateSystem &cSys, const GaussianBeam &beamIn, const Unit &brightnessUnit, Bool emitMessage) const |
returns the value by which pixel values will be scaled | |
T | _fillKernel (Matrix< T > &kernelMatrix, VectorKernel::KernelTypes kernelType, const IPosition &kernelShape, const Vector< Double > ¶meters) const |
void | _fillGaussian (T &maxVal, T &volume, Matrix< T > &pixels, T height, T xCentre, T yCentre, T majorAxis, T ratio, T positionAngle) const |
T | _makeKernel (Array< T > &kernel, VectorKernel::KernelTypes kernelType, const std::vector< Quantity > ¶meters, const ImageInterface< T > &inImage) const |
IPosition | _shapeOfKernel (const VectorKernel::KernelTypes kernelType, const Vector< Double > ¶meters, const uInt ndim) const |
uInt | _sizeOfGaussian (const Double width, const Double nSigma) const |
std::vector< Quantity > | _getConvolvingBeamForTargetResolution (const std::vector< Quantity > &targetBeamParms, const GaussianBeam &inputBeam) const |
Private Attributes | |
VectorKernel::KernelTypes | _type |
Double | _scale |
Quantity | _major |
Quantity | _minor |
Quantity | _pa |
IPosition | _axes |
Bool | _targetres |
Bool | _suppressWarnings |
This class does 2D convolution of an image by a functional form.
Public interface
This class handles 2D convolution of images
This class convolves an image by a specified 2D function.
Convolution is a standard image processing requirement. The class object has no state. The convolution is done via FFT. Thus input pixels which are masked are set to 0 before the convolution. The mask is transferred to the output image. No additional scaling of the output image values is done.
Definition at line 92 of file Image2DConvolver.h.
casa::Image2DConvolver< T >::Image2DConvolver | ( | ) |
casa::Image2DConvolver< T >::Image2DConvolver | ( | const SPCIIT | image, | |
const Record *const & | regionPtr, | |||
const String & | mask, | |||
const String & | outname, | |||
const Bool | overwrite | |||
) |
casa::Image2DConvolver< T >::Image2DConvolver | ( | const Image2DConvolver< T > & | other | ) |
casa::Image2DConvolver< T >::~Image2DConvolver | ( | ) | [inline] |
Definition at line 106 of file Image2DConvolver.h.
void casa::Image2DConvolver< T >::_checkKernelParameters | ( | VectorKernel::KernelTypes | kernelType, | |
const Vector< Quantity > & | parameters | |||
) | const [private] |
void casa::Image2DConvolver< T >::_convolve | ( | LogIO & | os, | |
SPIIT | imageOut, | |||
const ImageInterface< T > & | imageIn, | |||
VectorKernel::KernelTypes | kernelType | |||
) | const [private] |
T casa::Image2DConvolver< T >::_dealWithRestoringBeam | ( | LogIO & | os, | |
String & | brightnessUnitOut, | |||
GaussianBeam & | beamOut, | |||
const Array< T > & | kernelArray, | |||
const T | kernelVolume, | |||
const VectorKernel::KernelTypes | kernelType, | |||
const Vector< Quantity > & | parameters, | |||
const CoordinateSystem & | cSys, | |||
const GaussianBeam & | beamIn, | |||
const Unit & | brightnessUnit, | |||
Bool | emitMessage | |||
) | const [private] |
returns the value by which pixel values will be scaled
void casa::Image2DConvolver< T >::_fillGaussian | ( | T & | maxVal, | |
T & | volume, | |||
Matrix< T > & | pixels, | |||
T | height, | |||
T | xCentre, | |||
T | yCentre, | |||
T | majorAxis, | |||
T | ratio, | |||
T | positionAngle | |||
) | const [private] |
T casa::Image2DConvolver< T >::_fillKernel | ( | Matrix< T > & | kernelMatrix, | |
VectorKernel::KernelTypes | kernelType, | |||
const IPosition & | kernelShape, | |||
const Vector< Double > & | parameters | |||
) | const [private] |
std::vector<Quantity> casa::Image2DConvolver< T >::_getConvolvingBeamForTargetResolution | ( | const std::vector< Quantity > & | targetBeamParms, | |
const GaussianBeam & | inputBeam | |||
) | const [private] |
vector<Coordinate::Type> casa::Image2DConvolver< T >::_getNecessaryCoordinates | ( | ) | const [inline, protected, virtual] |
Represents the minimum set of coordinates necessary for the task to function.
Implements casa::ImageTask< T >.
Definition at line 137 of file Image2DConvolver.h.
CasacRegionManager::StokesControl casa::Image2DConvolver< T >::_getStokesControl | ( | ) | const [inline, protected, virtual] |
Implements casa::ImageTask< T >.
Definition at line 133 of file Image2DConvolver.h.
References casa::CasacRegionManager::USE_ALL_STOKES.
T casa::Image2DConvolver< T >::_makeKernel | ( | Array< T > & | kernel, | |
VectorKernel::KernelTypes | kernelType, | |||
const std::vector< Quantity > & | parameters, | |||
const ImageInterface< T > & | inImage | |||
) | const [private] |
IPosition casa::Image2DConvolver< T >::_shapeOfKernel | ( | const VectorKernel::KernelTypes | kernelType, | |
const Vector< Double > & | parameters, | |||
const uInt | ndim | |||
) | const [private] |
uInt casa::Image2DConvolver< T >::_sizeOfGaussian | ( | const Double | width, | |
const Double | nSigma | |||
) | const [private] |
Bool casa::Image2DConvolver< T >::_supportsMultipleRegions | ( | ) | const [inline, protected, virtual] |
Reimplemented from casa::ImageTask< T >.
Definition at line 141 of file Image2DConvolver.h.
References casacore::True.
SPIIT casa::Image2DConvolver< T >::convolve | ( | ) |
String casa::Image2DConvolver< T >::getClass | ( | ) | const [inline, virtual] |
Implements casa::ImageTask< T >.
Definition at line 125 of file Image2DConvolver.h.
References casa::Image2DConvolver< T >::CLASS_NAME.
Image2DConvolver& casa::Image2DConvolver< T >::operator= | ( | const Image2DConvolver< T > & | other | ) |
void casa::Image2DConvolver< T >::setAxes | ( | const std::pair< uInt, uInt > & | axes | ) |
void casa::Image2DConvolver< T >::setKernel | ( | const String & | type, | |
const Quantity & | major, | |||
const Quantity & | minor, | |||
const Quantity & | pa | |||
) |
type is a string that starts with "g" (gaussian), "b" (boxcar), or "h" (hanning), and is case insensitive
void casa::Image2DConvolver< T >::setScale | ( | Double | d | ) | [inline] |
Definition at line 119 of file Image2DConvolver.h.
References casa::Image2DConvolver< T >::_scale.
void casa::Image2DConvolver< T >::setSuppressWarnings | ( | Bool | b | ) | [inline] |
if True, do not log certain warning messages which would normally be logged during convolution
Definition at line 129 of file Image2DConvolver.h.
References casa::Image2DConvolver< T >::_suppressWarnings.
void casa::Image2DConvolver< T >::setTargetRes | ( | Bool | b | ) | [inline] |
Definition at line 123 of file Image2DConvolver.h.
References casa::Image2DConvolver< T >::_targetres.
IPosition casa::Image2DConvolver< T >::_axes [private] |
Definition at line 147 of file Image2DConvolver.h.
Quantity casa::Image2DConvolver< T >::_major [private] |
Definition at line 146 of file Image2DConvolver.h.
Quantity casa::Image2DConvolver< T >::_minor [private] |
Definition at line 146 of file Image2DConvolver.h.
Quantity casa::Image2DConvolver< T >::_pa [private] |
Definition at line 146 of file Image2DConvolver.h.
Double casa::Image2DConvolver< T >::_scale [private] |
Definition at line 145 of file Image2DConvolver.h.
Referenced by casa::Image2DConvolver< T >::setScale().
Bool casa::Image2DConvolver< T >::_suppressWarnings [private] |
Definition at line 148 of file Image2DConvolver.h.
Referenced by casa::Image2DConvolver< T >::setSuppressWarnings().
Bool casa::Image2DConvolver< T >::_targetres [private] |
Definition at line 148 of file Image2DConvolver.h.
Referenced by casa::Image2DConvolver< T >::setTargetRes().
VectorKernel::KernelTypes casa::Image2DConvolver< T >::_type [private] |
Definition at line 144 of file Image2DConvolver.h.
const String casa::Image2DConvolver< T >::CLASS_NAME [static] |
Definition at line 95 of file Image2DConvolver.h.
Referenced by casa::Image2DConvolver< T >::getClass().