2 # ---------------------------------------------------------------------
4 # Copyright (c) CREATIS (Centre de Recherche en Acquisition et Traitement de l'Image
6 # Authors : Eduardo Davila, Frederic Cervenansky, Claire Mouton
7 # Previous Authors : Laurent Guigues, Jean-Pierre Roux
8 # CreaTools website : www.creatis.insa-lyon.fr/site/fr/creatools_accueil
10 # This software is governed by the CeCILL-B license under French law and
11 # abiding by the rules of distribution of free software. You can use,
12 # modify and/ or redistribute the software under the terms of the CeCILL-B
13 # license as circulated by CEA, CNRS and INRIA at the following URL
14 # http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
15 # or in the file LICENSE.txt.
17 # As a counterpart to the access to the source code and rights to copy,
18 # modify and redistribute granted by the license, users are provided only
19 # with a limited warranty and the software's author, the holder of the
20 # economic rights, and the successive licensors have only limited
23 # The fact that you are presently reading this means that you have had
24 # knowledge of the CeCILL-B license and that you accept its terms.
25 # ------------------------------------------------------------------------ */
27 #include "Convolution.h"
32 //------------------------------------------------------------
33 Convolution::Convolution()
36 _convolve = vtkImageConvolve::New();
37 _cast = vtkImageCast::New();
43 //------------------------------------------------------------
44 Convolution::~Convolution()
46 if (_convolve != NULL ) { _convolve->Delete(); }
47 if (_cast != NULL ) { _cast->Delete(); }
50 vtkImageData *Convolution::getImage()
52 return _cast->GetOutput();
55 void Convolution::setImage(vtkImageData *image)
58 _convolve->SetInput(_image);
61 void Convolution::setFactor(double factor)
63 _factor = (factor/100.0)*5.0;
66 void Convolution::setOn(bool on)
71 void Convolution::Run()
75 double kernel[] = {0.0,1.0,0.0,1.0,-_factor,1.0,0.0,1.0,0.0};
76 _convolve->SetKernel3x3(kernel);
78 _cast->SetInput(_convolve->GetOutput());
79 //_cast->SetOutputScalarTypeToDouble();
84 _cast->SetInput(_image);
85 _cast->SetOutputScalarType(_image->GetScalarType());