24 FrameITKImageType::Pointer
image = FrameITKImageType::New();
26 FrameITKImageType::IndexType start;
31 FrameITKImageType::SizeType size;
32 size[0] = this->m_DimX;
33 size[1] = this->m_DimY;
34 size[2] = this->m_DimZ;
36 FrameITKImageType::RegionType region;
37 region.SetSize( size );
38 region.SetIndex( start );
40 image->SetRegions( region );
43 itk::ImageRegionIterator<FrameITKImageType> it = itk::ImageRegionIterator<FrameITKImageType>(
image,image->GetLargestPossibleRegion());
47 it.Set(this->m_Curve[timePointIndex]);
52 mitkImage->InitializeByItk( image.GetPointer() );
53 mitkImage->SetVolume( image->GetBufferPointer() );
64 unsigned int timeSteps = this->m_Grid.GetSize();
66 if(this->m_Curve.GetSize() != this->m_Grid.GetSize())
68 itkExceptionMacro(
"Error. TimeGrid and ConcentrationCurve do not have same size. No Image Generation possible!");
71 if(this->m_DimX == 0 && this->m_DimY == 0 && this->m_DimZ == 0)
73 itkExceptionMacro(
"Error. No Dimensions for Image Set!");
76 if(this->m_Curve.GetSize() == 0 || this->m_Grid.GetSize() == 0)
78 itkExceptionMacro(
"Error. No Curve/Grid set!");
85 DynamicITKImageType::Pointer dynamicITKImage = DynamicITKImageType::New();
86 DynamicITKImageType::RegionType dynamicITKRegion;
87 DynamicITKImageType::PointType dynamicITKOrigin;
88 DynamicITKImageType::IndexType dynamicITKIndex;
89 DynamicITKImageType::SpacingType dynamicITKSpacing;
91 dynamicITKSpacing[0] = tempImage->GetGeometry()->GetSpacing()[0];
92 dynamicITKSpacing[1] = tempImage->GetGeometry()->GetSpacing()[1];
93 dynamicITKSpacing[2] = tempImage->GetGeometry()->GetSpacing()[2];
94 dynamicITKSpacing[3] = 1.0;
96 dynamicITKIndex[0] = 0;
97 dynamicITKIndex[1] = 0;
98 dynamicITKIndex[2] = 0;
99 dynamicITKIndex[3] = 0;
101 dynamicITKRegion.SetSize( 0,tempImage->GetDimension(0));
102 dynamicITKRegion.SetSize( 1,tempImage->GetDimension(1));
103 dynamicITKRegion.SetSize( 2,tempImage->GetDimension(2));
104 dynamicITKRegion.SetSize( 3,timeSteps);
106 dynamicITKRegion.SetIndex( dynamicITKIndex );
108 dynamicITKOrigin[0]=tempImage->GetGeometry()->GetOrigin()[0];
109 dynamicITKOrigin[1]=tempImage->GetGeometry()->GetOrigin()[1];
110 dynamicITKOrigin[2]=tempImage->GetGeometry()->GetOrigin()[2];
112 dynamicITKImage->SetOrigin(dynamicITKOrigin);
113 dynamicITKImage->SetSpacing(dynamicITKSpacing);
114 dynamicITKImage->SetRegions( dynamicITKRegion);
115 dynamicITKImage->Allocate();
116 dynamicITKImage->FillBuffer(0);
122 timeGeometry->ClearAllGeometries();
125 for (
unsigned int i = 0; i<timeSteps; ++i)
129 dynamicImage->SetVolume(readAccess.GetData(),i);
131 timeGeometry->AppendNewTimeStepClone(frameImage->GetGeometry(),this->m_Grid(i),this->m_Grid(i+1));
134 dynamicImage->SetTimeGeometry(timeGeometry);
Image::Pointer GenerateDynamicImageMITK()
itk::Image< double, 3 > FrameITKImageType
itk::Image< double, 4 > DynamicITKImageType
mitk::Image::Pointer image
void CastToMitkImage(const itk::SmartPointer< ItkOutputImageType > &itkimage, itk::SmartPointer< mitk::Image > &mitkoutputimage)
Cast an itk::Image (with a specific type) to an mitk::Image.
ImageReadAccessor class to get locked read access for a particular image part.