Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkITKImageToImageFilterF2F2.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Copyright Brigham and Women's Hospital (BWH) All Rights Reserved.
4
5 See COPYRIGHT.txt
6 or http://www.slicer.org/copyright/copyright.txt for details.
7
8 Program: vtkITK
9 Module: $HeadURL$
10 Date: $Date$
11 Version: $Revision$
12
13==========================================================================*/
14
15#ifndef __vtkITKImageToImageFilterF2F2_h
16#define __vtkITKImageToImageFilterF2F2_h
17
19#include "vtkImageAlgorithm.h"
20#include "vtkImageAppendComponents.h"
21#include "itkImageToImageFilter.h"
22#include "itkSplitImageFilter.h"
23#include "itkJoinImageFilter.h"
24#include "itkVTKImageExport.h"
25#include "itkVTKImageImport.h"
26#include "vtkITKUtility.h"
27#include <vtkVersion.h>
28
30{
31public:
33 static vtkITKImageToImageFilterF2F2* New() { return 0; };
34 void PrintSelf(ostream& os, vtkIndent indent)
35 {
36 Superclass::PrintSelf(os, indent);
37 os << m_Filter;
38 };
39
42 virtual void SetInput1(vtkImageData* Input) { this->SetInput(Input); };
43 virtual void SetInput2(vtkImageData* Input)
44 {
45 this->vtkImageAlgorithm::SetInput(1, Input);
46 this->vtkExporter1->SetInputData(Input);
47 };
48
49 virtual vtkImageData* GetOutput() { return this->append->GetOutput(); };
50
51protected:
53 typedef itk::Vector<float, 2> InputImagePixelType;
54 typedef itk::Vector<float, 2> OutputImagePixelType;
55 typedef itk::Image<InputImagePixelType, 3> InputImageType;
56 typedef itk::Image<OutputImagePixelType, 3> OutputImageType;
57
58 typedef itk::Image<float, 3> JoinImageType;
59 typedef itk::VTKImageImport<JoinImageType> ImageImportType;
60 typedef itk::VTKImageExport<JoinImageType> ImageExportType;
61 ImageImportType::Pointer itkImporter;
62 ImageExportType::Pointer itkExporter;
63 ImageImportType::Pointer itkImporter1;
64 ImageExportType::Pointer itkExporter1;
65
66 typedef itk::JoinImageFilter<JoinImageType, JoinImageType> JoinFilterType;
67
68 typedef itk::SplitImageFilter<OutputImageType, JoinImageType> SplitFilterType;
69
70 typedef itk::ImageToImageFilter<InputImageType, OutputImageType> GenericFilterType;
71 GenericFilterType::Pointer m_Filter;
72
73 vtkImageImport* vtkImporter1;
74 vtkImageExport* vtkExporter1;
75 vtkImageAppendComponents* append;
76 SplitFilterType::Pointer split1, split;
77 JoinFilterType::Pointer join;
78
81 {
82 this->vtkImporter1 = vtkImageImport::New();
83 this->vtkExporter1 = vtkImageExport::New();
85 m_Filter = filter;
86 this->itkImporter = ImageImportType::New();
87 this->itkExporter = ImageExportType::New();
88 ConnectPipelines(this->vtkExporter, this->itkImporter);
89 ConnectPipelines(this->itkExporter, this->vtkImporter);
90
91 this->itkImporter1 = ImageImportType::New();
92 this->itkExporter1 = ImageExportType::New();
93 ConnectPipelines(this->vtkExporter1, this->itkImporter1);
94 ConnectPipelines(this->itkExporter1, this->vtkImporter1);
95 this->LinkITKProgressToVTKProgress(m_Filter);
96
99 join = JoinFilterType::New();
100 join->SetInput1(this->itkImporter->GetOutput());
101 join->SetInput2(this->itkImporter->GetOutput());
102
103 m_Filter->SetInput(join->GetOutput());
105
106 split = SplitFilterType::New();
108 split->SetInput(m_Filter->GetOutput());
109 split->SetIndex(0);
110 split1 = SplitFilterType::New();
112 split1->SetInput(m_Filter->GetOutput());
113 split1->SetIndex(1);
114
115 this->itkExporter->SetInput(split->GetOutput());
116 this->itkExporter1->SetInput(split1->GetOutput());
117
118 this->append = vtkImageAppendComponents::New();
119 this->append->SetInput(0, this->vtkImporter->GetOutput());
120 this->append->SetInput(1, this->vtkImporter1->GetOutput());
121 this->vtkCast->SetOutputScalarTypeToFloat();
122
136 };
137
139 {
140 this->vtkExporter1->Delete();
141 this->vtkImporter1->Delete();
142 this->append->Delete();
143 };
144
145private:
147 void operator=(const vtkITKImageToImageFilterF2F2&);
148};
149
150#endif
itk::VTKImageImport< JoinImageType > ImageImportType
virtual void SetInput1(vtkImageData *Input)
Set the Input of the filter.
itk::Image< OutputImagePixelType, 3 > OutputImageType
virtual void SetInput2(vtkImageData *Input)
vtkITKImageToImageFilterF2F2(GenericFilterType *filter)
itk::ImageToImageFilter< InputImageType, OutputImageType > GenericFilterType
itk::JoinImageFilter< JoinImageType, JoinImageType > JoinFilterType
itk::SplitImageFilter< OutputImageType, JoinImageType > SplitFilterType
itk::Image< InputImagePixelType, 3 > InputImageType
itk::VTKImageExport< JoinImageType > ImageExportType
void PrintSelf(ostream &os, vtkIndent indent)
itk::Vector< float, 2 > InputImagePixelType
To/from ITK.
static vtkITKImageToImageFilterF2F2 * New()
void LinkITKProgressToVTKProgress(itk::ProcessObject *process)
BTX.
void PrintSelf(ostream &os, vtkIndent indent) override
virtual void SetInput(vtkImageData *Input)
Set the Input of the filter.
void ConnectPipelines(ITK_Exporter exporter, VTK_Importer *importer)