15 #include <itkImageRegionConstIterator.h> 19 template <
typename TPixel,
unsigned int VImageDimension>
22 itk::ImageRegionConstIterator<itk::Image<TPixel, VImageDimension>> imageIt(itkImage,
23 itkImage->GetLargestPossibleRegion());
24 unsigned long int count = 0;
26 for (imageIt.GoToBegin(); !imageIt.IsAtEnd(); ++imageIt)
33 if (itkImage->GetLargestPossibleRegion().GetImageDimension() == 3)
35 m_Volume = count / 1000.0 * itkImage->GetSpacing()[0] * itkImage->GetSpacing()[1] * itkImage->GetSpacing()[2];
37 else if (itkImage->GetLargestPossibleRegion().GetImageDimension() == 2)
39 m_Volume = count / 100.0 * itkImage->GetSpacing()[0] * itkImage->GetSpacing()[1];
60 const_cast<Image *
>(
m_Image.GetPointer())->SetRequestedRegionToLargestPossibleRegion();
61 if (
m_Image->GetDimension() == 4)
65 for (
unsigned int timeStep = 0; timeStep <
m_Image->GetDimension(3); ++timeStep)
73 else if (
m_Image->GetDimension() == 3)
78 else if (
m_Image->GetDimension() == 2)
87 unsigned int dim =
m_Image->GetDimension();
94 for (
unsigned int t = 0; t <
m_Image->GetDimension(3); ++t)
97 m_Image->GetStatistics()->GetCountOfMaxValuedVoxels(t) / 1000.0 * spacing[0] * spacing[1] * spacing[2];
103 m_Volume =
m_Image->GetStatistics()->GetCountOfMaxValuedVoxels() / 1000.0 * spacing[0] * spacing[1] * spacing[2];
108 m_Volume =
m_Image->GetStatistics()->GetCountOfMaxValuedVoxels() / 100.0 * spacing[0] * spacing[1];
111 itkExceptionMacro(<<
"Wrong image dimension...");
116 return (voxelCount / 1000.0 * spacing[0] * spacing[1] * spacing[2]);
ImageTimeSelector::Pointer m_TimeSelector
#define AccessFixedDimensionByItk(mitkImage, itkImageTypeFunction, dimension)
Access a mitk-image with known dimension by an itk-image.
~VolumeCalculator() override
static void Update(vtkPolyData *)
Image::ConstPointer m_Image
std::vector< float > m_Volumes
Image class for storing images.
void InternalCompute(const itk::Image< TPixel, VImageDimension > *itkImage)
unsigned long int m_VoxelCount
std::vector< float > GetVolumes()
void ComputeVolumeFromImageStatistics()