\section{Modified\-Dijkstra Class Reference}
\label{class_modified_dijkstra}\index{ModifiedDijkstra@{ModifiedDijkstra}}
Modified\-Dijkstra class.  


{\tt \#include $<$Modified\-Dijkstra.h$>$}

Inheritance diagram for Modified\-Dijkstra::\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[height=2cm]{class_modified_dijkstra}
\end{center}
\end{figure}
\subsection*{Public Member Functions}
\begin{CompactItemize}
\item 
{\bf Modified\-Dijkstra} (const int {\bf x\-Size}, const int {\bf y\-Size}, const bool unload=true)\label{class_modified_dijkstra_bf41c3626ac3c64276516e36c5cd2904}

\item 
void {\bf do\-Transform} (const unsigned char $\ast$const I)
\item 
void {\bf modified\-Dijkstra} (const unsigned char $\ast$const I)
\item 
void {\bf modified\-Dijkstra\_\-Dead\-Reckoning} (const unsigned char $\ast$const I)
\item 
void {\bf modified\-Dijkstra\_\-Modified\-Dead\-Reckoning} (const unsigned char $\ast$const I)
\item 
virtual bool {\bf get\-P} (const int x, const int y, int \&px, int \&py) const 
\end{CompactItemize}
\subsection*{Protected Attributes}
\begin{CompactItemize}
\item 
P $\ast$ {\bf p}\label{class_modified_dijkstra_83878c91171338902e0fe0fb97a8c47a}

\begin{CompactList}\small\item\em stores the parent location (border point) \item\end{CompactList}\end{CompactItemize}
\subsection*{Private Member Functions}
\begin{CompactItemize}
\item 
void {\bf init} (const unsigned char $\ast$const I, double $\ast$\&d, {\bf Set\-Element} $\ast$\&se, set$<$ const {\bf Set\-Element} $\ast$, {\bf lt\-Set\-Element} $>$ \&s)
\item 
void {\bf check} (double $\ast$d, const int center, const int X, const int Y, {\bf Set\-Element} $\ast$se, set$<$ const {\bf Set\-Element} $\ast$, {\bf lt\-Set\-Element} $>$ \&s)\label{class_modified_dijkstra_c939d0031985459704a0652b0f2734d8}

\end{CompactItemize}
\subsection*{Classes}
\begin{CompactItemize}
\item 
struct {\bf lt\-Set\-Element}
\begin{CompactList}\small\item\em strict weak ordering on Set\-Element's. \item\end{CompactList}\item 
struct {\bf Set\-Element}
\begin{CompactList}\small\item\em Elements of a set class. \item\end{CompactList}\end{CompactItemize}


\subsection{Detailed Description}
Modified\-Dijkstra class. 



\subsection{Member Function Documentation}
\index{ModifiedDijkstra@{Modified\-Dijkstra}!doTransform@{doTransform}}
\index{doTransform@{doTransform}!ModifiedDijkstra@{Modified\-Dijkstra}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Modified\-Dijkstra::do\-Transform (const unsigned char $\ast$const  {\em I})\hspace{0.3cm}{\tt  [virtual]}}\label{class_modified_dijkstra_e4f491b87b80e7a1a433d917af000c78}


This method performs the distance transform. It is the same as calling modified\-Dijkstra(I) directly. 

Implements {\bf Distance\-Transform} {\rm (p.\,\pageref{class_distance_transform_720fbb5d558543a7a48c668315118b91})}.\index{ModifiedDijkstra@{Modified\-Dijkstra}!getP@{getP}}
\index{getP@{getP}!ModifiedDijkstra@{Modified\-Dijkstra}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool Modified\-Dijkstra::get\-P (const int {\em x}, const int {\em y}, int \& {\em px}, int \& {\em py}) const\hspace{0.3cm}{\tt  [virtual]}}\label{class_modified_dijkstra_96812fce6c340f8e08e9326a44f8e067}


return the parent (border point/nearest element of the immediate interior or exterior) 

Reimplemented from {\bf Distance\-Transform} {\rm (p.\,\pageref{class_distance_transform_96812fce6c340f8e08e9326a44f8e067})}.\index{ModifiedDijkstra@{Modified\-Dijkstra}!init@{init}}
\index{init@{init}!ModifiedDijkstra@{Modified\-Dijkstra}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Modified\-Dijkstra::init (const unsigned char $\ast$const  {\em I}, double $\ast$\& {\em d}, {\bf Set\-Element} $\ast$\& {\em se}, set$<$ const {\bf Set\-Element} $\ast$, {\bf lt\-Set\-Element} $>$ \& {\em s})\hspace{0.3cm}{\tt  [private]}}\label{class_modified_dijkstra_f5c22666080a4d070cf6f7dd2812c847}


\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em I}]is the input 2d binary image. \item[{\em d}]is a reference to a pointer for which memory will be allocated and returned. \item[{\em se}]is a reference to what will be used as a 2D array of all possible Set\-Element's - one for each (x,y). \item[{\em s}]is a set which initially consists of elements of the II and IE. \end{description}
\end{Desc}
\index{ModifiedDijkstra@{Modified\-Dijkstra}!modifiedDijkstra@{modifiedDijkstra}}
\index{modifiedDijkstra@{modifiedDijkstra}!ModifiedDijkstra@{Modified\-Dijkstra}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Modified\-Dijkstra::modified\-Dijkstra (const unsigned char $\ast$const  {\em I})}\label{class_modified_dijkstra_1c22ecb2c47f1fb58f4f743ea907dc6e}


This method performs the distance transform using an implementation/modification of Dijkstra's algorithm using the elements of the boundary as multiple starting points. The distance is propagated as the summation of edges in the graph that is 8-connected. \index{ModifiedDijkstra@{Modified\-Dijkstra}!modifiedDijkstra_DeadReckoning@{modifiedDijkstra\_\-DeadReckoning}}
\index{modifiedDijkstra_DeadReckoning@{modifiedDijkstra\_\-DeadReckoning}!ModifiedDijkstra@{Modified\-Dijkstra}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Modified\-Dijkstra::modified\-Dijkstra\_\-Dead\-Reckoning (const unsigned char $\ast$const  {\em I})}\label{class_modified_dijkstra_723ca33e3ab0197f4ffb4eaf03b8e6db}


This method performs the distance transform using an modification of Dijkstra's algorithm. The distance is propagated as the actual Euclidean distance (i.e., \char`\"{}as the crow flies\char`\"{}) propagated among 8-connected neighbors. \index{ModifiedDijkstra@{Modified\-Dijkstra}!modifiedDijkstra_ModifiedDeadReckoning@{modifiedDijkstra\_\-ModifiedDeadReckoning}}
\index{modifiedDijkstra_ModifiedDeadReckoning@{modifiedDijkstra\_\-ModifiedDeadReckoning}!ModifiedDijkstra@{Modified\-Dijkstra}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void Modified\-Dijkstra::modified\-Dijkstra\_\-Modified\-Dead\-Reckoning (const unsigned char $\ast$const  {\em I})}\label{class_modified_dijkstra_3e13092a9850080f62759f741762ef41}


This method performs the distance transform using an modification of Dijkstra's algorithm. The distance is propagated as the actual Euclidean distance (i.e., \char`\"{}as the crow flies\char`\"{}) propagated among 4-connected neighbors. 

The documentation for this class was generated from the following files:\begin{CompactItemize}
\item 
{\bf Modified\-Dijkstra.h}\item 
{\bf Modified\-Dijkstra.cpp}\end{CompactItemize}
