13 #ifndef mitkShapeBasedInterpolationAlgorithm_h
14 #define mitkShapeBasedInterpolationAlgorithm_h
41 itkFactorylessNewMacro(Self);
57 unsigned int lowerSliceIndex,
58 Image::ConstPointer upperSlice,
59 unsigned int upperSliceIndex,
60 unsigned int requestedIndex,
61 unsigned int sliceDimension,
62 Image::Pointer resultImage,
63 unsigned int timeStep,
64 Image::ConstPointer referenceImage)
override;
67 typedef itk::Image<mitk::ScalarType, 2> DistanceFilterImageType;
69 template <
typename TPixel,
unsigned int VImageDimension>
70 void ComputeDistanceMap(
const itk::Image<TPixel, VImageDimension> *, mitk::Image::Pointer &result);
72 Image::Pointer ComputeDistanceMap(
unsigned int sliceIndex, Image::ConstPointer slice);
74 template <
typename TPixel,
unsigned int VImageDimension>
75 void InterpolateIntermediateSlice(itk::Image<TPixel, VImageDimension> *result,
76 const mitk::Image::Pointer &lowerDistanceImage,
77 const mitk::Image::Pointer &upperDistanceImage,
80 std::map<unsigned int, Image::Pointer> m_DistanceImageCache;
81 std::mutex m_DistanceImageCacheMutex;
#define MITKSEGMENTATION_EXPORT
Interface class for interpolation algorithms.
Shape-based binary image interpolation.
mitkClassMacro(ShapeBasedInterpolationAlgorithm, SegmentationInterpolationAlgorithm)
Image::Pointer Interpolate(Image::ConstPointer lowerSlice, unsigned int lowerSliceIndex, Image::ConstPointer upperSlice, unsigned int upperSliceIndex, unsigned int requestedIndex, unsigned int sliceDimension, Image::Pointer resultImage, unsigned int timeStep, Image::ConstPointer referenceImage) override
Interpolate a 2D slice between two known segmentation slices.
Find image slices visible on a given plane.