\section{errorfree\-CSED Class Reference}
\label{classerrorfree_c_s_e_d}\index{errorfreeCSED@{errorfreeCSED}}
Ragnemalm's error free {\bf CSED}{\rm (p.\,\pageref{class_c_s_e_d})} distance transform algorithm. This implementation does not perform as described in Ragnemalm's paper.  


{\tt \#include $<$errorfree\-CSED.h$>$}

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

\item 
void {\bf do\-Transform} (const unsigned char $\ast$const I)\label{classerrorfree_c_s_e_d_e4f491b87b80e7a1a433d917af000c78}

\begin{CompactList}\small\item\em calculate the distance transform \item\end{CompactList}\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 v}\label{classerrorfree_c_s_e_d_9e3669d19b675bd57058fd4664205d2a}

\end{CompactItemize}
\subsection*{Private Member Functions}
\begin{CompactItemize}
\item 
void {\bf test} (const int px, const int py, const int ox, const int oy, vector$<$ P $\ast$ $>$ $\ast$list2, const int i)
\end{CompactItemize}
\subsection*{Static Private Member Functions}
\begin{CompactItemize}
\item 
static double {\bf D} (const int x, const int y)\label{classerrorfree_c_s_e_d_6a0276e9c830d3a1e1cb7e192ecbd0e1}

\item 
static double {\bf D} (P \&p)\label{classerrorfree_c_s_e_d_57e5cf14e072f63352347f6d95fda901}

\end{CompactItemize}


\subsection{Detailed Description}
Ragnemalm's error free {\bf CSED}{\rm (p.\,\pageref{class_c_s_e_d})} distance transform algorithm. This implementation does not perform as described in Ragnemalm's paper. 

As described in I. Ragnemalm, \char`\"{}Neighborhoods for distance transformations using ordered propagation,\char`\"{} CVGIP:IU 56(3):399-409, 1992. 



\subsection{Member Function Documentation}
\index{errorfreeCSED@{errorfree\-CSED}!getP@{getP}}
\index{getP@{getP}!errorfreeCSED@{errorfree\-CSED}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}virtual bool errorfree\-CSED::get\-P (const int {\em x}, const int {\em y}, int \& {\em px}, int \& {\em py}) const\hspace{0.3cm}{\tt  [virtual]}}\label{classerrorfree_c_s_e_d_96812fce6c340f8e08e9326a44f8e067}


\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em x}]is the x location \item[{\em y}]is the y location \item[{\em px}]is the parent's x location to be returned \item[{\em py}]is the parent's y location to be returned \end{description}
\end{Desc}
\begin{Desc}
\item[Returns:]true if the parent is know; otherwise false. \end{Desc}


Reimplemented from {\bf Distance\-Transform} {\rm (p.\,\pageref{class_distance_transform_96812fce6c340f8e08e9326a44f8e067})}.\index{errorfreeCSED@{errorfree\-CSED}!test@{test}}
\index{test@{test}!errorfreeCSED@{errorfree\-CSED}}
\subsubsection{\setlength{\rightskip}{0pt plus 5cm}void errorfree\-CSED::test (const int {\em x}, const int {\em y}, const int {\em ox}, const int {\em oy}, vector$<$ P $\ast$ $>$ $\ast$ {\em list2}, const int {\em i})\hspace{0.3cm}{\tt  [private]}}\label{classerrorfree_c_s_e_d_2b17d0b9dd57d6da7a013e490844723e}


\begin{Desc}
\item[Parameters:]
\begin{description}
\item[{\em (x,y)}]is a pixel position, p \item[{\em (ox,oy)}]is the displacement from (x,y) to a neighbor, o \item[{\em list2}]is a list \item[{\em i}]is the subscript associated with (x,y) \small\begin{alltt}
  subroutine test ( o ):
      if D(v(p+o)) > D(v(p)+o)
          put p+o in list2  //in both
          put v(p)+o in list2
\end{alltt}\normalsize 
 \end{description}
\end{Desc}


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