1 #include "Convolution.h"
6 //------------------------------------------------------------
7 Convolution::Convolution()
10 _convolve = vtkImageConvolve::New();
11 _cast = vtkImageCast::New();
17 //------------------------------------------------------------
18 Convolution::~Convolution()
20 if (_convolve != NULL ) { _convolve->Delete(); }
21 if (_cast != NULL ) { _cast->Delete(); }
24 vtkImageData *Convolution::getImage()
26 return _cast->GetOutput();
29 void Convolution::setImage(vtkImageData *image)
32 _convolve->SetInput(_image);
35 void Convolution::setFactor(double factor)
37 _factor = (factor/100.0)*5.0;
40 void Convolution::setOn(bool on)
45 void Convolution::Run()
49 double kernel[] = {0.0,1.0,0.0,1.0,-_factor,1.0,0.0,1.0,0.0};
50 _convolve->SetKernel3x3(kernel);
52 _cast->SetInput(_convolve->GetOutput());
53 _cast->SetOutputScalarTypeToDouble();
58 _cast->SetInput(_image);
59 _cast->SetOutputScalarType(_image->GetScalarType());