casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Static Public Member Functions | Private Member Functions | Static Private Member Functions
casa::Image2DConvolver< T > Class Template Reference

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

#include <Image2DConvolver.h>

List of all members.

Static Public Member Functions

static void convolve (LogIO &os, ImageInterface< T > &imageOut, const ImageInterface< T > &imageIn, const VectorKernel::KernelTypes kernelType, const IPosition &pixelAxes, const Vector< Quantity > &parameters, const Bool autoScale, const Double scale, const Bool copyMiscellaneous=True, const Bool targetres=False)
 Convolve.

Private Member Functions

 Image2DConvolver ()
 This class contains all static methods.
 Image2DConvolver (const Image2DConvolver< T > &other)
 Copy constructor.
 ~Image2DConvolver ()
 Destructor.
Image2DConvolveroperator= (const Image2DConvolver< T > &other)
 Assignment operator.

Static Private Member Functions

static void _checkKernelParameters (LogIO &os, VectorKernel::KernelTypes kernelType, const Vector< Quantum< Double > > &parameters)
static void _dealWithRestoringBeam (LogIO &os, String &brightnessUnitOut, GaussianBeam &beamOut, Array< T > &kernelArray, const T kernelVolume, const VectorKernel::KernelTypes kernelType, const Vector< Quantity > &parameters, const IPosition &axes, const CoordinateSystem &cSys, const GaussianBeam &beamIn, const Unit &brightnessUnit, const Bool autoscale, const Double scale, const Bool emitMessage)
static T _fillKernel (Matrix< T > &kernelMatrix, VectorKernel::KernelTypes kernelType, const IPosition &kernelShape, const IPosition &axes, const Vector< Double > &parameters)
static void fillGaussian (T &maxVal, T &volume, Matrix< T > &pixels, T height, T xCentre, T yCentre, T majorAxis, T ratio, T positionAngle)
static T _makeKernel (LogIO &os, Array< T > &kernel, VectorKernel::KernelTypes kernelType, const Vector< Quantity > &parameters, const IPosition &axes, const ImageInterface< T > &inImage)
static IPosition shapeOfKernel (const VectorKernel::KernelTypes kernelType, const Vector< Double > &parameters, const uInt ndim, const IPosition &axes)
static uInt sizeOfGaussian (const Double width, const Double nSigma)
static Vector< Quantity_getConvolvingBeamForTargetResolution (LogIO &os, const Vector< Quantity > &targetBeamParms, const GaussianBeam &inputBeam)

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 95 of file Image2DConvolver.h.


Constructor & Destructor Documentation

template<class T>
casa::Image2DConvolver< T >::Image2DConvolver ( ) [private]

This class contains all static methods.

Do not allow it to be instantiated. Constructor

template<class T>
casa::Image2DConvolver< T >::Image2DConvolver ( const Image2DConvolver< T > &  other) [private]

Copy constructor.

Uses reference semantics.

template<class T>
casa::Image2DConvolver< T >::~Image2DConvolver ( ) [private]

Destructor.


Member Function Documentation

template<class T>
static void casa::Image2DConvolver< T >::_checkKernelParameters ( LogIO os,
VectorKernel::KernelTypes  kernelType,
const Vector< Quantum< Double > > &  parameters 
) [static, private]
template<class T>
static void casa::Image2DConvolver< T >::_dealWithRestoringBeam ( LogIO os,
String brightnessUnitOut,
GaussianBeam beamOut,
Array< T > &  kernelArray,
const T  kernelVolume,
const VectorKernel::KernelTypes  kernelType,
const Vector< Quantity > &  parameters,
const IPosition axes,
const CoordinateSystem cSys,
const GaussianBeam beamIn,
const Unit brightnessUnit,
const Bool  autoscale,
const Double  scale,
const Bool  emitMessage 
) [static, private]
template<class T>
static T casa::Image2DConvolver< T >::_fillKernel ( Matrix< T > &  kernelMatrix,
VectorKernel::KernelTypes  kernelType,
const IPosition kernelShape,
const IPosition axes,
const Vector< Double > &  parameters 
) [static, private]
template<class T>
static Vector<Quantity> casa::Image2DConvolver< T >::_getConvolvingBeamForTargetResolution ( LogIO os,
const Vector< Quantity > &  targetBeamParms,
const GaussianBeam inputBeam 
) [static, private]
template<class T>
static T casa::Image2DConvolver< T >::_makeKernel ( LogIO os,
Array< T > &  kernel,
VectorKernel::KernelTypes  kernelType,
const Vector< Quantity > &  parameters,
const IPosition axes,
const ImageInterface< T > &  inImage 
) [static, private]
template<class T>
static void casa::Image2DConvolver< T >::convolve ( LogIO os,
ImageInterface< T > &  imageOut,
const ImageInterface< T > &  imageIn,
const VectorKernel::KernelTypes  kernelType,
const IPosition pixelAxes,
const Vector< Quantity > &  parameters,
const Bool  autoScale,
const Double  scale,
const Bool  copyMiscellaneous = True,
const Bool  targetres = False 
) [static]

Convolve.

If the output image needs a mask and doesn't have one, it will be given one if possible. The miscInfo, imageInfo, units and logger will be copied from the input to the output unless you indicate not to (copyMiscellaneous).

template<class T>
static void casa::Image2DConvolver< T >::fillGaussian ( T &  maxVal,
T &  volume,
Matrix< T > &  pixels,
height,
xCentre,
yCentre,
majorAxis,
ratio,
positionAngle 
) [static, private]
template<class T>
Image2DConvolver& casa::Image2DConvolver< T >::operator= ( const Image2DConvolver< T > &  other) [private]

Assignment operator.

Uses reference semantics.

template<class T>
static IPosition casa::Image2DConvolver< T >::shapeOfKernel ( const VectorKernel::KernelTypes  kernelType,
const Vector< Double > &  parameters,
const uInt  ndim,
const IPosition axes 
) [static, private]
template<class T>
static uInt casa::Image2DConvolver< T >::sizeOfGaussian ( const Double  width,
const Double  nSigma 
) [static, private]

The documentation for this class was generated from the following file: