00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef __itkSharedMorphologyUtilities_h
00019 #define __itkSharedMorphologyUtilities_h
00020
00021 #include <list>
00022
00023
00024 namespace itk {
00025 #if defined(_MSC_VER) && _MSC_VER >= 1300
00026 template <class TRegion, class TLine>
00027 bool NeedToDoFace(const TRegion AllImage,
00028 const TRegion face,
00029 const TLine line);
00030
00031 template <class TImage, class TBres, class TLine>
00032 int ComputeStartEnd(const typename TImage::IndexType StartIndex,
00033 const TLine line,
00034 const float tol,
00035 const typename TBres::OffsetArray LineOffsets,
00036 const typename TImage::RegionType AllImage,
00037 unsigned &start,
00038 unsigned &end);
00039
00040 template <class TImage, class TBres, class TLine>
00041 int FillLineBuffer(typename TImage::ConstPointer input,
00042 const typename TImage::IndexType StartIndex,
00043 const TLine line,
00044 const float tol,
00045 const typename TBres::OffsetArray LineOffsets,
00046 const typename TImage::RegionType AllImage,
00047 typename TImage::PixelType * inbuffer,
00048 unsigned int &start,
00049 unsigned int &end);
00050
00051 template <class TImage, class TBres>
00052 void CopyLineToImage(const typename TImage::Pointer output,
00053 const typename TImage::IndexType StartIndex,
00054 const typename TBres::OffsetArray LineOffsets,
00055 const typename TImage::PixelType * outbuffer,
00056 const unsigned start,
00057 const unsigned end);
00058
00059
00060
00061
00062
00063
00064
00065 template <class TInputImage, class TLine>
00066 typename TInputImage::RegionType
00067 MakeEnlargedFace(const TInputImage * input,
00068 const typename TInputImage::RegionType AllImage,
00069 const TLine line);
00070
00071
00072
00073 template <class TLine>
00074 unsigned int GetLinePixels(const TLine line);
00075 #endif
00076 }
00077
00078 #ifndef ITK_MANUAL_INSTANTIATION
00079 #include "itkSharedMorphologyUtilities.txx"
00080 #endif
00081
00082 #endif
00083