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 );
139 void setLUT(vtkSmartPointer<vtkLookupTable> iLUT)
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
void setImage(vtkImageData *iImage)
std::vector< double > Color
vtkSmartPointer< vtkLookupTable > LUT
Convenience structure to store visible image.
vtkSmartPointer< vtkImageAccumulate > Histogram
void setName(std::string iName)
void setGamma(int iGamma)
void setLUTParameters(int iGamma, int iMin, int iMax)
vtkSmartPointer< vtkImageData > Image
friend std::ostream & operator<<(std::ostream &os, const GoMegaImageStructure &e)
void set_PointsAlpha(std::map< unsigned int, unsigned int > iAlpha)
void setVisibility(bool iVisibility)
itk::Image< PixelType, VImageDimension >::Pointer Convert2ITK() const
void setColor(std::vector< double > iColor)
vtkSmartPointer< vtkPiecewiseFunction > OpacityTF
GoMegaImageStructure(unsigned int iIndex, vtkSmartPointer< vtkLookupTable > iLUT, vtkSmartPointer< vtkImageData > iImage, std::vector< double > iColor, bool iVisibility, std::string iName)
void setLUT(vtkSmartPointer< vtkLookupTable > iLUT)
std::map< unsigned int, unsigned int > Alpha