16 #ifndef __itkShortestPathImageFilter_h
17 #define __itkShortestPathImageFilter_h
19 #include "itkImageToImageFilter.h"
22 #include <itkImageRegionIteratorWithIndex.h>
55 template <
class TInputImageType,
class TOutputImageType>
61 typedef ImageToImageFilter<TInputImageType, TOutputImageType>
Superclass;
74 typedef typename TInputImageType::IndexType
IndexType;
85 itkFactorylessNewMacro(Self) itkCloneMacro(Self)
110 itkSetMacro(FullNeighborsMode,
bool);
111 itkGetMacro(FullNeighborsMode,
bool);
115 itkSetMacro(Graph_fullNeighbors,
bool)
119 itkSetMacro(MakeOutputImage,
bool);
120 itkGetMacro(MakeOutputImage,
bool);
123 itkSetMacro(StoreVectorOrder,
bool);
124 itkGetMacro(StoreVectorOrder,
bool);
128 itkSetMacro(CalcAllDistances,
bool);
129 itkGetMacro(CalcAllDistances,
bool);
133 itkSetMacro(ActivateTimeOut,
bool);
134 itkGetMacro(ActivateTimeOut,
bool);
157 itkSetObjectMacro(CostFunction,
159 itkGetObjectMacro(CostFunction, CostFunctionType);
162 std::vector<IndexType>
174 void operator=(const Self &);
233 #include "itkShortestPathImageFilter.txx"
SmartPointer< Self > Pointer
unsigned int m_ImageDimensions
std::vector< std::vector< IndexType > > GetMultipleVectorPaths()
bool CoordIsInBounds(IndexType)
itk::SmartPointer< Self > Pointer
std::vector< std::vector< IndexType > > m_MultipleVectorPaths
void SetEndIndex(const IndexType &EndIndex)
SmartPointer< const Self > ConstPointer
void StartShortestPathSearch()
void PrintSelf(std::ostream &os, Indent indent) const
std::vector< IndexType > GetVectorPath()
TInputImageType::PixelType InputImagePixelType
bool m_Graph_fullNeighbors
void MakeShortestPathVector()
CostFunctionTypePointer m_CostFunction
TInputImageType::Pointer InputImagePointer
std::vector< IndexType > m_VectorPath
std::vector< IndexType > m_endPoints
TOutputImageType OutputImageType
unsigned int CoordToNode(IndexType)
NodeNumType m_Graph_NumberOfNodes
itk::ShapedNeighborhoodIterator< TInputImageType > itkShapedNeighborhoodIteratorType
void SetStartIndex(const IndexType &StartIndex)
NodeNumType m_Graph_StartNode
std::vector< ShortestPathNode * > GetNeighbors(NodeNumType nodeNum, bool FullNeighbors)
OutputImagePointer GetVectorOrderImage()
ShortestPathImageFilter Self
std::vector< NodeNumType > m_VectorOrder
static const int BACKGROUND
TInputImageType::SizeType InputImageSizeType
TInputImageType::IndexType IndexType
void AddEndIndex(const IndexType &index)
CostFunctionType::Pointer CostFunctionTypePointer
TInputImageType InputImageType
double getEstimatedCostsToTarget(const IndexType &a)
bool operator()(ShortestPathNode *a, ShortestPathNode *b)
static const int FOREGROUND
TOutputImageType::PixelType OutputImagePixelType
ImageRegionIteratorWithIndex< OutputImageType > OutputImageIteratorType
std::vector< ShortestPathNode * > m_Graph_DiscoveredNodeList
TOutputImageType::IndexType OutputImageIndexType
ShortestPathNode * m_Nodes
std::vector< IndexType > m_endPointsClosed
ImageToImageFilter< TInputImageType, TOutputImageType > Superclass
NodeNumType m_Graph_EndNode
TInputImageType::IndexType NodeToCoord(NodeNumType)
TOutputImageType::Pointer OutputImagePointer
OutputImagePointer GetDistanceImage()
InputImageType::Pointer m_magnitudeImage
ShortestPathCostFunction< TInputImageType > CostFunctionType
itk::ImageRegionIteratorWithIndex< InputImageType > InputImageIteratorType