2 -------------------------------------------------------------------
3 * @file clitkGuerreroVentilationGenericFilter.cxx
4 * @author Joël Schaerer
8 -------------------------------------------------------------------*/
10 #include "clitkGuerreroVentilationGenericFilter.h"
11 #include <itkBinaryGuerreroFilter.h>
12 #include <itkImageDuplicator.h>
13 #include <itkExtractImageFilter.h>
15 //--------------------------------------------------------------------
16 clitk::GuerreroVentilationGenericFilter::GuerreroVentilationGenericFilter()
17 :ImageToImageGenericFilter<Self>("GuerreroVentilationGenericFilter") {
19 InitializeImageType<2>();
20 InitializeImageType<3>();
22 //--------------------------------------------------------------------
24 //--------------------------------------------------------------------
25 template<unsigned int Dim>
26 void clitk::GuerreroVentilationGenericFilter::InitializeImageType() {
27 ADD_IMAGE_TYPE(Dim, short);
29 //--------------------------------------------------------------------
32 //--------------------------------------------------------------------
33 template<class ImageType>
34 void clitk::GuerreroVentilationGenericFilter::UpdateWithInputImageType() {
37 assert(mInputFilenames.size() == 2);
40 typedef ImageType InputImageType;
41 typename InputImageType::Pointer input = this->template GetInput<InputImageType>(0);
42 typename InputImageType::Pointer ref = this->template GetInput<InputImageType>(1);
44 typedef itk::Image<float,InputImageType::ImageDimension> OutputImageType;
45 // typename ImageType::Pointer input = clitk::readImage<ImageType>(mInputFilenames[0], mIOVerbose);
46 //typename ImageType::Pointer ref = clitk::readImage<ImageType>(mInputFilenames[1], mIOVerbose);
48 typedef itk::BinaryGuerreroFilter<ImageType,ImageType,OutputImageType> GFilterType;
49 typename GFilterType::Pointer filter = GFilterType::New();
50 filter->SetInput1(ref);
51 filter->SetInput2(input);
52 filter->SetBloodCorrectionFactor(blood_mass_factor);
53 filter->SetUseCorrectFormula(use_correct_formula);
56 this->SetNextOutput<OutputImageType>(filter->GetOutput());
57 //clitk::writeImage<OutputImageType>(filter->GetOutput(), mOutputFilename, mIOVerbose);
58 //std::cout << "Warning: removed " << filter->GetFunctor().aberant_voxels << " aberant voxels from the ventilation image"