casa::Image2DConvolver< T > Class Template Reference

This class does 2D convolution of an image by a functional form. More...

#include <Image2DConvolver.h>

Inheritance diagram for casa::Image2DConvolver< T >:
casa::ImageTask< T >

List of all members.

Public Member Functions

 Image2DConvolver ()
 Image2DConvolver (const SPCIIT image, const Record *const &regionPtr, const String &mask, const String &outname, const Bool overwrite)
 Image2DConvolver (const Image2DConvolver< T > &other)
 ~Image2DConvolver ()
Image2DConvolveroperator= (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 > &parameters) const
void _convolve (LogIO &os, SPIIT imageOut, const ImageInterface< T > &imageIn, VectorKernel::KernelTypes kernelType) const
_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
 returns the value by which pixel values will be scaled
_fillKernel (Matrix< T > &kernelMatrix, VectorKernel::KernelTypes kernelType, const IPosition &kernelShape, const Vector< Double > &parameters) const
void _fillGaussian (T &maxVal, T &volume, Matrix< T > &pixels, T height, T xCentre, T yCentre, T majorAxis, T ratio, T positionAngle) const
_makeKernel (Array< T > &kernel, VectorKernel::KernelTypes kernelType, const std::vector< Quantity > &parameters, const ImageInterface< T > &inImage) const
IPosition _shapeOfKernel (const VectorKernel::KernelTypes kernelType, const Vector< Double > &parameters, 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

Detailed Description

template<class T>
class casa::Image2DConvolver< T >

This class does 2D convolution of an image by a functional form.

Intended use:

Public interface

Review Status

Date Reviewed:
yyyy/mm/dd

Prerequisite

Etymology

This class handles 2D convolution of images

Synopsis

This class convolves an image by a specified 2D function.

Example

Motivation

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.

To Do

Definition at line 92 of file Image2DConvolver.h.


Constructor & Destructor Documentation

template<class T>
casa::Image2DConvolver< T >::Image2DConvolver (  ) 
template<class T>
casa::Image2DConvolver< T >::Image2DConvolver ( const SPCIIT  image,
const Record *const &  regionPtr,
const String &  mask,
const String &  outname,
const Bool  overwrite 
)
template<class T>
casa::Image2DConvolver< T >::Image2DConvolver ( const Image2DConvolver< T > &  other  ) 
template<class T>
casa::Image2DConvolver< T >::~Image2DConvolver (  )  [inline]

Definition at line 106 of file Image2DConvolver.h.


Member Function Documentation

template<class T>
void casa::Image2DConvolver< T >::_checkKernelParameters ( VectorKernel::KernelTypes  kernelType,
const Vector< Quantity > &  parameters 
) const [private]
template<class T>
void casa::Image2DConvolver< T >::_convolve ( LogIO &  os,
SPIIT  imageOut,
const ImageInterface< T > &  imageIn,
VectorKernel::KernelTypes  kernelType 
) const [private]
template<class T>
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

template<class T>
void casa::Image2DConvolver< T >::_fillGaussian ( T &  maxVal,
T &  volume,
Matrix< T > &  pixels,
height,
xCentre,
yCentre,
majorAxis,
ratio,
positionAngle 
) const [private]
template<class T>
T casa::Image2DConvolver< T >::_fillKernel ( Matrix< T > &  kernelMatrix,
VectorKernel::KernelTypes  kernelType,
const IPosition &  kernelShape,
const Vector< Double > &  parameters 
) const [private]
template<class T>
std::vector<Quantity> casa::Image2DConvolver< T >::_getConvolvingBeamForTargetResolution ( const std::vector< Quantity > &  targetBeamParms,
const GaussianBeam &  inputBeam 
) const [private]
template<class T>
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.

template<class T>
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.

template<class T>
T casa::Image2DConvolver< T >::_makeKernel ( Array< T > &  kernel,
VectorKernel::KernelTypes  kernelType,
const std::vector< Quantity > &  parameters,
const ImageInterface< T > &  inImage 
) const [private]
template<class T>
IPosition casa::Image2DConvolver< T >::_shapeOfKernel ( const VectorKernel::KernelTypes  kernelType,
const Vector< Double > &  parameters,
const uInt  ndim 
) const [private]
template<class T>
uInt casa::Image2DConvolver< T >::_sizeOfGaussian ( const Double  width,
const Double  nSigma 
) const [private]
template<class T>
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.

template<class T>
SPIIT casa::Image2DConvolver< T >::convolve (  ) 
template<class T>
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.

template<class T>
Image2DConvolver& casa::Image2DConvolver< T >::operator= ( const Image2DConvolver< T > &  other  ) 
template<class T>
void casa::Image2DConvolver< T >::setAxes ( const std::pair< uInt, uInt > &  axes  ) 
template<class T>
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

template<class T>
void casa::Image2DConvolver< T >::setScale ( Double  d  )  [inline]

Definition at line 119 of file Image2DConvolver.h.

References casa::Image2DConvolver< T >::_scale.

template<class T>
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.

template<class T>
void casa::Image2DConvolver< T >::setTargetRes ( Bool  b  )  [inline]

Definition at line 123 of file Image2DConvolver.h.

References casa::Image2DConvolver< T >::_targetres.


Member Data Documentation

template<class T>
IPosition casa::Image2DConvolver< T >::_axes [private]

Definition at line 147 of file Image2DConvolver.h.

template<class T>
Quantity casa::Image2DConvolver< T >::_major [private]

Definition at line 146 of file Image2DConvolver.h.

template<class T>
Quantity casa::Image2DConvolver< T >::_minor [private]

Definition at line 146 of file Image2DConvolver.h.

template<class T>
Quantity casa::Image2DConvolver< T >::_pa [private]

Definition at line 146 of file Image2DConvolver.h.

template<class T>
Double casa::Image2DConvolver< T >::_scale [private]

Definition at line 145 of file Image2DConvolver.h.

Referenced by casa::Image2DConvolver< T >::setScale().

template<class T>
Bool casa::Image2DConvolver< T >::_suppressWarnings [private]
template<class T>
Bool casa::Image2DConvolver< T >::_targetres [private]

Definition at line 148 of file Image2DConvolver.h.

Referenced by casa::Image2DConvolver< T >::setTargetRes().

template<class T>
VectorKernel::KernelTypes casa::Image2DConvolver< T >::_type [private]

Definition at line 144 of file Image2DConvolver.h.

template<class T>
const String casa::Image2DConvolver< T >::CLASS_NAME [static]

Definition at line 95 of file Image2DConvolver.h.

Referenced by casa::Image2DConvolver< T >::getClass().


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 31 Aug 2016 for casa by  doxygen 1.6.1