35 #ifndef GoMegaImageStructure_H
36 #define GoMegaImageStructure_H
39 #include "QGoIOConfigure.h"
43 #include "vtkSmartPointer.h"
44 #include "vtkLookupTable.h"
45 #include "vtkImageData.h"
46 #include "vtkPiecewiseFunction.h"
47 #include "vtkImageAccumulate.h"
51 #include "itkVTKImageImport.h"
52 #include "vtkImageExport.h"
63 vtkSmartPointer<vtkLookupTable>
LUT;
64 vtkSmartPointer<vtkImageData>
Image;
68 std::map<unsigned int, unsigned int>
Alpha;
77 vtkSmartPointer<vtkLookupTable> iLUT,
78 vtkSmartPointer<vtkImageData> iImage,
79 std::vector< double > iColor,
89 Alpha[255] = Color[3];
96 Max = LUT->GetRange()[1];
98 OpacityTF = vtkSmartPointer<vtkPiecewiseFunction>::New();
99 OpacityTF->AddPoint(0, 0);
100 OpacityTF->AddPoint(LUT->GetRange()[1], Color[3]/255);
104 range = Image->GetScalarRange();
105 Histogram = vtkSmartPointer<vtkImageAccumulate>::New();
106 Histogram->SetInput( Image );
107 Histogram->SetComponentExtent(
109 static_cast<int>(range[1])-static_cast<int>(range[0])-1,0,0,0,0 );
110 Histogram->SetComponentOrigin( range[0],0,0 );
111 Histogram->SetComponentSpacing( 1,0,0 );
112 Histogram->SetIgnoreZero(
false );
117 void setGamma(
int iGamma)
122 void setMin(
int iMin)
127 void setMax(
int iMax)
132 void setLUTParameters(
int iGamma,
int iMin,
int iMax)
139 void setLUT(vtkSmartPointer<vtkLookupTable> iLUT)
144 void setVisibility(
bool iVisibility)
149 void setColor(std::vector<double> iColor)
154 void setName(std::string iName)
159 void setImage(vtkImageData* iImage)
165 range = Image->GetScalarRange();
167 Histogram->RemoveAllInputs();
168 Histogram->SetInput( Image );
169 Histogram->SetComponentExtent(
171 static_cast<int>(range[1])-static_cast<int>(range[0])-1,0,0,0,0 );
172 Histogram->SetComponentOrigin( range[0],0,0 );
173 Histogram->SetComponentSpacing( 1,0,0 );
174 Histogram->SetIgnoreZero(
false );
192 template<
class PixelType, const
unsigned int VImageDimension >
193 typename itk::Image< PixelType, VImageDimension >::Pointer
197 vtkSmartPointer<vtkImageExport> exporter =
198 vtkSmartPointer<vtkImageExport>::New();
199 exporter->SetInput(Image);
203 typedef itk::Image< PixelType, VImageDimension > ImageType;
205 typedef itk::VTKImageImport< ImageType > ImageImportType;
206 typedef typename ImageImportType::Pointer ImageImportPointer;
207 ImageImportPointer importer = ImageImportType::New();
209 ConnectPipelines< vtkImageExport, ImageImportPointer >(
213 typename ImageType::Pointer itkImage = importer->GetOutput();
214 itkImage->DisconnectPipeline();
221 os<<
"index: "<<e.
Index<<std::endl;
226 #endif // GoMegaImageStructure_H