#include <imageanalysis/ImageAnalysis/ImageHanningSmoother.h>
template<class T> ImageHanningSmoother<T>::ImageHanningSmoother(
const casacore::Record *const region,
const casacore::String& mask,
const casacore::String& outname, casacore::Bool overwrite
image, region, mask, outname, overwrite
template<class T> SPIIT ImageHanningSmoother<T>::_smooth(
const casacore::ImageInterface<T>& image
casacore::IPosition inTileShape = image.niceCursorShape();
casacore::uInt axis = this->_getAxis();
casacore::TiledLineStepper inNav(image.shape(), inTileShape, axis);
casacore::RO_MaskedLatticeIterator<T> inIter(image, inNav);
casacore::IPosition sliceShape(image.ndim(), 1);
sliceShape[axis] = image.shape()[axis];
casacore::Array<T> slice(sliceShape);
casacore::Record emptyRecord;
SubImageFactory<T>::createImage(
image, empty, emptyRecord, empty,
false, false, false, false
while (!inIter.atEnd()) {
slice = _hanningSmooth(inIter.cursor());
out->putSlice(slice, inIter.position());
if (this->_getDecimate()) {
// remove the first plane from _axis
casacore::IPosition shape = out->shape();
casacore::IPosition blc(shape.size(), 0);
ImageDecimatorData::Function f = this->_getDecimationFunction();
casacore::IPosition trc = shape - 1;
if (shape[axis] % 2 == 0) {
casacore::LCBox lcbox(blc, trc, shape);
casacore::Record x = lcbox.toRecord("");
ImageDecimator<T> decimator(
SPIIT(out->cloneII()), &x,
casacore::String(""), casacore::String(""), false
decimator.setFunction(f);
decimator.suppressHistoryWriting(true);
out = decimator.decimate();
this->addHistory(decimator.getHistory());