ImageFilter.h
#ifndef __itkImageFilter_h
#define __itkImageFilter_h
#include "itkImageToImageFilter.h"
namespace itk
{
template<class TImage>
class ImageFilter:public ImageToImageFilter <TImage,TImage>
public:
//** Standard class typedefs. */
typedef ImageFilter Self;
typedef ImageToImageFilter<TImage,TImage> Superclass;
typedef SmartPointer<Self> Pointer;
itkNewMacro(Self);
itkTypeMacro(ImageFilter,ImageToImageFilter);
protected:
ImageFilter(){}
~ImageFilter(){}
virtual void GenerateData();
private:
ImageFilter(const Self &);
void operator=(const Self &);
}
#ifndef ITK_MANUAL_INSTANTIATION
#include "ImageFilter.hxx"
#endif
#endif // __itkImageFilter_h
ImageFilter.hxx
#ifndef __itkImageFilter_hxx
#define __itkImageFilter_hxx
#include "ImageFilter.h"
#include "itkObjectFactory.h"
#include "itkImageRegionIterator.h"
#include "itkImageRegionConstIterator.h"
namespace itk
{
template< class TImage>
void ImageFilter< TImage>::GenerateData()
{
typename TImage::ConstPointer input = this->GetInput();
typename TImage::Pointer output = this->GetOutput();
itk::Index<2> cornerPixel = input->GetLargestPossibleRegion().GetIndex();
typename TImage::PixelType newValue = 3;
this->AllocateOutputs();
ImageAlgorithm::Copy(input.GetPointer(), output.GetPointer(),
output->GetRequestedRegion,
output->GetRequestedRegion
);
output->SetPixel( cornerPixel, newValue );
}
}
#endif