12 #ifndef __itkShortestPathImageFilter_h
13 #define __itkShortestPathImageFilter_h
15 #include "itkImageToImageFilter.h"
18 #include <itkImageRegionIteratorWithIndex.h>
51 template <
class TInputImageType,
class TOutputImageType>
57 typedef ImageToImageFilter<TInputImageType, TOutputImageType>
Superclass;
70 typedef typename TInputImageType::IndexType
IndexType;
81 itkFactorylessNewMacro(
Self);
88 void PrintSelf(std::ostream &os, Indent indent)
const override;
107 itkSetMacro(FullNeighborsMode,
bool);
108 itkGetMacro(FullNeighborsMode,
bool);
112 itkSetMacro(Graph_fullNeighbors,
bool);
116 itkSetMacro(MakeOutputImage,
bool);
117 itkGetMacro(MakeOutputImage,
bool);
120 itkSetMacro(StoreVectorOrder,
bool);
121 itkGetMacro(StoreVectorOrder,
bool);
125 itkSetMacro(CalcAllDistances,
bool);
126 itkGetMacro(CalcAllDistances,
bool);
130 itkSetMacro(ActivateTimeOut,
bool);
131 itkGetMacro(ActivateTimeOut,
bool);
154 itkSetObjectMacro(CostFunction,
162 std::vector<IndexType>
233 #include "itkShortestPathImageFilter.txx"
bool m_Graph_fullNeighbors
TInputImageType::Pointer InputImagePointer
CostFunctionType::Pointer CostFunctionTypePointer
std::vector< std::vector< IndexType > > m_MultipleVectorPaths
static const int BACKGROUND
void AddEndIndex(const IndexType &index)
std::vector< IndexType > GetVectorPath()
ShortestPathCostFunction< TInputImageType > CostFunctionType
static const int FOREGROUND
TInputImageType InputImageType
void SetUseCostFunction(bool doUseCostFunction)
TOutputImageType::IndexType OutputImageIndexType
ImageRegionIteratorWithIndex< OutputImageType > OutputImageIteratorType
TInputImageType::IndexType NodeToCoord(NodeNumType)
SmartPointer< const Self > ConstPointer
itk::ShapedNeighborhoodIterator< TInputImageType > itkShapedNeighborhoodIteratorType
void PrintSelf(std::ostream &os, Indent indent) const override
bool GetUseCostFunction()
ImageToImageFilter< TInputImageType, TOutputImageType > Superclass
TInputImageType::IndexType IndexType
TInputImageType::SizeType InputImageSizeType
std::vector< IndexType > m_endPoints
void StartShortestPathSearch()
ShortestPathImageFilter()
void MakeShortestPathVector()
OutputImagePointer GetVectorOrderImage()
std::vector< IndexType > m_VectorPath
bool CoordIsInBounds(IndexType)
void SetStartIndex(const IndexType &StartIndex)
std::vector< IndexType > m_endPointsClosed
std::vector< std::vector< IndexType > > GetMultipleVectorPaths()
TOutputImageType OutputImageType
~ShortestPathImageFilter() override
NodeNumType m_Graph_EndNode
ShortestPathImageFilter(Self &)
OutputImagePointer GetDistanceImage()
TOutputImageType::PixelType OutputImagePixelType
std::vector< ShortestPathNode * > GetNeighbors(NodeNumType nodeNum, bool FullNeighbors)
InputImageType::Pointer m_magnitudeImage
NodeNumType m_Graph_StartNode
ShortestPathImageFilter Self
void operator=(const Self &)
void SetEndIndex(const IndexType &EndIndex)
itk::ImageRegionIteratorWithIndex< InputImageType > InputImageIteratorType
double getEstimatedCostsToTarget(const IndexType &a)
CostFunctionTypePointer m_CostFunction
std::vector< NodeNumType > m_VectorOrder
void GenerateData() override
SmartPointer< Self > Pointer
TInputImageType::PixelType InputImagePixelType
std::vector< ShortestPathNode * > m_Graph_DiscoveredNodeList
ShortestPathNode * m_Nodes
unsigned int CoordToNode(IndexType)
NodeNumType m_Graph_NumberOfNodes
TOutputImageType::Pointer OutputImagePointer
bool operator()(ShortestPathNode *a, ShortestPathNode *b)