#include "clitkCommon.h"
#include "clitkAutoCropFilter.h"
#include "clitkLabelizeParameters.h"
+#include "clitkExtractSliceFilter.h"
// itk
#include <itkBoundingBox.h>
//--------------------------------------------------------------------
template<class ImageType>
void
- ExtractSlices(const ImageType * image, int dim,
- std::vector< typename itk::Image<typename ImageType::PixelType,
- ImageType::ImageDimension-1>::Pointer > & slices);
+ ExtractSlices(const ImageType * image, int direction,
+ std::vector<typename itk::Image<typename ImageType::PixelType,
+ ImageType::ImageDimension-1>::Pointer > & slices)
+ {
+ typedef ExtractSliceFilter<ImageType> ExtractSliceFilterType;
+ typedef typename ExtractSliceFilterType::SliceType SliceType;
+ typename ExtractSliceFilterType::Pointer
+ extractSliceFilter = ExtractSliceFilterType::New();
+ extractSliceFilter->SetInput(image);
+ extractSliceFilter->SetDirection(direction);
+ extractSliceFilter->Update();
+ extractSliceFilter->GetOutputSlices(slices);
+ }
//--------------------------------------------------------------------
typename ImageType::Pointer
JoinSlices(std::vector<typename itk::Image<typename ImageType::PixelType,
ImageType::ImageDimension-1>::Pointer > & slices,
- const ImageType * input,
+ const itk::ImageBase<ImageType::ImageDimension> * input, //const ImageType * input,
int direction) {
typedef typename itk::Image<typename ImageType::PixelType, ImageType::ImageDimension-1> SliceType;
typedef itk::JoinSeriesImageFilter<SliceType, ImageType> JoinSeriesFilterType;
void AndNot(ImageType * input,
const ImageType * object,
typename ImageType::PixelType BG=0);
+ template<class ImageType>
+ void And(ImageType * input,
+ const ImageType * object,
+ typename ImageType::PixelType BG=0);
+ template<class ImageType>
+ void Or(ImageType * input,
+ const ImageType * object,
+ typename ImageType::PixelType BG=0);
//--------------------------------------------------------------------
double margin,
std::vector<typename ImageType::PointType> & A,
std::vector<typename ImageType::PointType> & B);
+ template<class ImageType>
+ void
+ SliceBySliceBuildLineSegmentAccordingToMinimalDistanceBetweenStructures(const ImageType * S1,
+ const ImageType * S2,
+ typename ImageType::PixelType BG,
+ int sliceDimension,
+ std::vector<typename ImageType::PointType> & A,
+ std::vector<typename ImageType::PointType> & B);
//--------------------------------------------------------------------
//--------------------------------------------------------------------
-}
+ //--------------------------------------------------------------------
+ template<class ImageType>
+ typename ImageType::Pointer
+ SliceBySliceSetBackgroundFromSingleLine(const ImageType * input,
+ typename ImageType::PixelType BG,
+ typename ImageType::PointType & A,
+ typename ImageType::PointType & B,
+ int dim1, int dim2, bool removeLowerPartFlag);
+ //--------------------------------------------------------------------
+
+
+ //--------------------------------------------------------------------
+ template<class ImageType>
+ typename ImageType::Pointer
+ SliceBySliceSetBackgroundFromPoints(const ImageType * input,
+ typename ImageType::PixelType BG,
+ int sliceDim,
+ std::vector<typename ImageType::PointType> & A,
+ bool removeGreaterThanXFlag,
+ bool removeGreaterThanYFlag);
+ //--------------------------------------------------------------------
+
+
+ //--------------------------------------------------------------------
+ template<class ImageType>
+ void
+ FillRegionWithValue(ImageType * input, typename ImageType::PixelType value,
+ typename ImageType::RegionType & region);
+ //--------------------------------------------------------------------
+
+
+ //--------------------------------------------------------------------
+ template<class ImageType>
+ void
+ GetMinMaxBoundary(ImageType * input, typename ImageType::PointType & min,
+ typename ImageType::PointType & max);
+ //--------------------------------------------------------------------
+
+
+ //--------------------------------------------------------------------
+ template<class ImageType>
+ typename itk::Image<float, ImageType::ImageDimension>::Pointer//void
+ DistanceMap(const ImageType * input, typename ImageType::PixelType BG);//,
+ //--------------------------------------------------------------------
+
+
+ //--------------------------------------------------------------------
+ template<class ImageType>
+ typename ImageType::PointType
+ ComputeClosestPoint(const ImageType * input,
+ const itk::Image<float, ImageType::ImageDimension> * dmap,
+ typename ImageType::PixelType & BG);
+ //--------------------------------------------------------------------
+
+
+
+} // end clitk namespace
#include "clitkSegmentationUtils.txx"