VTK
|
Dijkstra algorithm to compute the graph geodesic. More...
#include <vtkDijkstraImageGeodesicPath.h>
Public Member Functions | |
void | SetInputData (vtkDataObject *) |
vtkImageData * | GetInputAsImageData () |
void | SetImageWeight (double) |
virtual double | GetImageWeight () |
void | SetEdgeLengthWeight (double) |
virtual double | GetEdgeLengthWeight () |
virtual void | SetCurvatureWeight (double) |
virtual double | GetCurvatureWeight () |
![]() | |
virtual double | GetGeodesicLength () |
virtual void | GetCumulativeWeights (vtkDoubleArray *weights) |
virtual vtkIdList * | GetIdList () |
virtual void | SetStopWhenEndReached (int) |
virtual int | GetStopWhenEndReached () |
virtual void | StopWhenEndReachedOn () |
virtual void | StopWhenEndReachedOff () |
virtual void | SetUseScalarWeights (int) |
virtual int | GetUseScalarWeights () |
virtual void | UseScalarWeightsOn () |
virtual void | UseScalarWeightsOff () |
virtual void | SetRepelPathFromVertices (int) |
virtual int | GetRepelPathFromVertices () |
virtual void | RepelPathFromVerticesOn () |
virtual void | RepelPathFromVerticesOff () |
virtual void | SetRepelVertices (vtkPoints *) |
virtual vtkPoints * | GetRepelVertices () |
vtkDijkstraGraphGeodesicPath * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
![]() | |
virtual vtkIdType | GetStartVertex () |
virtual void | SetStartVertex (vtkIdType) |
virtual vtkIdType | GetEndVertex () |
virtual void | SetEndVertex (vtkIdType) |
vtkGraphGeodesicPath * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
![]() | |
vtkGeodesicPath * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
Static Public Member Functions | |
static vtkDijkstraImageGeodesicPath * | New () |
![]() | |
static vtkDijkstraGraphGeodesicPath * | New () |
static int | IsTypeOf (const char *type) |
static vtkDijkstraGraphGeodesicPath * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static int | IsTypeOf (const char *type) |
static vtkGraphGeodesicPath * | SafeDownCast (vtkObjectBase *o) |
![]() | |
static int | IsTypeOf (const char *type) |
static vtkGeodesicPath * | SafeDownCast (vtkObjectBase *o) |
Protected Member Functions | |
vtkDijkstraImageGeodesicPath () | |
~vtkDijkstraImageGeodesicPath () | |
virtual int | FillInputPortInformation (int port, vtkInformation *info) |
virtual int | RequestData (vtkInformation *, vtkInformationVector **, vtkInformationVector *) |
virtual void | BuildAdjacency (vtkDataSet *inData) |
void | UpdateStaticCosts (vtkImageData *image) |
virtual double | CalculateStaticEdgeCost (vtkDataSet *inData, vtkIdType u, vtkIdType v) |
virtual double | CalculateDynamicEdgeCost (vtkDataSet *inData, vtkIdType u, vtkIdType v) |
![]() | |
vtkDijkstraGraphGeodesicPath () | |
~vtkDijkstraGraphGeodesicPath () | |
void | Initialize (vtkDataSet *inData) |
void | Reset () |
virtual void | ShortestPath (vtkDataSet *inData, int startv, int endv) |
void | Relax (const int &u, const int &v, const double &w) |
void | TraceShortestPath (vtkDataSet *inData, vtkPolyData *outPoly, vtkIdType startv, vtkIdType endv) |
![]() | |
vtkGraphGeodesicPath () | |
~vtkGraphGeodesicPath () | |
![]() | |
vtkGeodesicPath () | |
~vtkGeodesicPath () | |
Protected Attributes | |
double | PixelSize |
double | ImageWeight |
double | EdgeLengthWeight |
double | CurvatureWeight |
bool | RebuildStaticCosts |
![]() | |
vtkTimeStamp | AdjacencyBuildTime |
int | NumberOfVertices |
vtkIdList * | IdList |
vtkDijkstraGraphInternals * | Internals |
int | StopWhenEndReached |
int | UseScalarWeights |
int | RepelPathFromVertices |
vtkPoints * | RepelVertices |
![]() | |
vtkIdType | StartVertex |
vtkIdType | EndVertex |
typedef vtkDijkstraGraphGeodesicPath | Superclass |
static int | IsTypeOf (const char *type) |
static vtkDijkstraImageGeodesicPath * | SafeDownCast (vtkObjectBase *o) |
virtual int | IsA (const char *type) |
vtkDijkstraImageGeodesicPath * | NewInstance () const |
void | PrintSelf (ostream &os, vtkIndent indent) |
virtual vtkObjectBase * | NewInstanceInternal () const |
Dijkstra algorithm to compute the graph geodesic.
Takes as input a polyline and an image representing a 2D cost function and performs a single source shortest path calculation. Dijkstra's algorithm is used. The implementation is similar to the one described in Introduction to Algorithms (Second Edition) by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Cliff Stein, published by MIT Press and McGraw-Hill. Some minor enhancement are added though. All vertices are not pushed on the heap at start, instead a front set is maintained. The heap is implemented as a binary heap. The output of the filter is a set of lines describing the shortest path from StartVertex to EndVertex. See parent class vtkDijkstraGraphGeodesicPath for the implementation.
Definition at line 60 of file vtkDijkstraImageGeodesicPath.h.
Standard methids for printing and determining type information.
Definition at line 70 of file vtkDijkstraImageGeodesicPath.h.
|
protected |
|
protected |
|
static |
Instantiate the class
|
static |
Standard methids for printing and determining type information.
|
virtual |
Standard methids for printing and determining type information.
Reimplemented from vtkDijkstraGraphGeodesicPath.
|
static |
Standard methids for printing and determining type information.
|
protectedvirtual |
Standard methids for printing and determining type information.
Reimplemented from vtkDijkstraGraphGeodesicPath.
vtkDijkstraImageGeodesicPath* vtkDijkstraImageGeodesicPath::NewInstance | ( | ) | const |
Standard methids for printing and determining type information.
void vtkDijkstraImageGeodesicPath::PrintSelf | ( | ostream & | os, |
vtkIndent | indent | ||
) |
Standard methids for printing and determining type information.
void vtkDijkstraImageGeodesicPath::SetInputData | ( | vtkDataObject * | ) |
Specify the image object which is used as a cost function.
vtkImageData* vtkDijkstraImageGeodesicPath::GetInputAsImageData | ( | ) |
Specify the image object which is used as a cost function.
void vtkDijkstraImageGeodesicPath::SetImageWeight | ( | double | ) |
Image cost weight.
|
virtual |
Image cost weight.
void vtkDijkstraImageGeodesicPath::SetEdgeLengthWeight | ( | double | ) |
Edge length cost weight.
|
virtual |
Edge length cost weight.
|
virtual |
Curvature cost weight.
|
virtual |
Curvature cost weight.
|
protectedvirtual |
Reimplemented from vtkGeodesicPath.
|
protectedvirtual |
Reimplemented from vtkDijkstraGraphGeodesicPath.
|
protectedvirtual |
Reimplemented from vtkDijkstraGraphGeodesicPath.
|
protected |
|
protectedvirtual |
Reimplemented from vtkDijkstraGraphGeodesicPath.
|
protectedvirtual |
Reimplemented from vtkDijkstraGraphGeodesicPath.
|
protected |
Definition at line 116 of file vtkDijkstraImageGeodesicPath.h.
|
protected |
Definition at line 117 of file vtkDijkstraImageGeodesicPath.h.
|
protected |
Definition at line 118 of file vtkDijkstraImageGeodesicPath.h.
|
protected |
Definition at line 119 of file vtkDijkstraImageGeodesicPath.h.
|
protected |
Definition at line 120 of file vtkDijkstraImageGeodesicPath.h.