\doxysection{calibration.\+Calibration\+Manager Class Reference}
\hypertarget{classcalibration_1_1_calibration_manager}{}\label{classcalibration_1_1_calibration_manager}\index{calibration.CalibrationManager@{calibration.CalibrationManager}}


Handles auto-\/calibration of projector overlap using a camera.  


\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classcalibration_1_1_calibration_manager_a57892e6da0484d59295025040146bbee}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self, int camera\+\_\+index=0)
\begin{DoxyCompactList}\small\item\em Constructor \& Destructor Documentation. \end{DoxyCompactList}\item 
Optional\mbox{[}np.\+ndarray\mbox{]} \mbox{\hyperlink{classcalibration_1_1_calibration_manager_a3d07edd2d67b0402922a04c5c7d274bc}{capture\+\_\+image}} (self)
\begin{DoxyCompactList}\small\item\em Member Function Documentation. \end{DoxyCompactList}\item 
Optional\mbox{[}int\mbox{]} \mbox{\hyperlink{classcalibration_1_1_calibration_manager_a9f5a350ad97e6847ebef1110e5e9fe9c}{calculate\+\_\+overlap}} (self, np.\+ndarray img\+\_\+left, np.\+ndarray img\+\_\+right)
\begin{DoxyCompactList}\small\item\em Member Function Documentation. \end{DoxyCompactList}\item 
int \mbox{\hyperlink{classcalibration_1_1_calibration_manager_a89c10fbee32064ac053042cc30457b32}{simulate\+\_\+calibration}} (self, int image\+\_\+width, int current\+\_\+overlap)
\begin{DoxyCompactList}\small\item\em Member Function Documentation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classcalibration_1_1_calibration_manager_a167ff133b9664fbf411bc7c815690f1c}\label{classcalibration_1_1_calibration_manager_a167ff133b9664fbf411bc7c815690f1c} 
{\bfseries camera\+\_\+index}
\item 
\Hypertarget{classcalibration_1_1_calibration_manager_a9985a76c842f42f527deb3c25d0964c8}\label{classcalibration_1_1_calibration_manager_a9985a76c842f42f527deb3c25d0964c8} 
{\bfseries flann}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Handles auto-\/calibration of projector overlap using a camera. 

Detailed Description This class uses computer vision to detect misalignment between two projectors. It analyzes camera-\/captured images using SIFT feature detection and FLANN-\/based matching to calculate horizontal displacement between left and right projected images.

Public Member Functions\+:
\begin{DoxyItemize}
\item {\bfseries{init}}(camera\+\_\+index=0)\+: Constructor
\item capture\+\_\+image()\+: Captures frame from camera
\item calculate\+\_\+overlap(img\+\_\+left, img\+\_\+right)\+: Calculates overlap using SIFT
\item simulate\+\_\+calibration(image\+\_\+width, current\+\_\+overlap)\+: Simulates calibration
\end{DoxyItemize}

Public Attributes\+:
\begin{DoxyItemize}
\item camera\+\_\+index\+: Camera device index
\item sift\+: SIFT feature detector instance
\item flann\+: FLANN-\/based feature matcher 
\end{DoxyItemize}

\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classcalibration_1_1_calibration_manager_a57892e6da0484d59295025040146bbee}\label{classcalibration_1_1_calibration_manager_a57892e6da0484d59295025040146bbee} 
\index{calibration.CalibrationManager@{calibration.CalibrationManager}!\_\_init\_\_@{\_\_init\_\_}}
\index{\_\_init\_\_@{\_\_init\_\_}!calibration.CalibrationManager@{calibration.CalibrationManager}}
\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}}
{\footnotesize\ttfamily calibration.\+Calibration\+Manager.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self,  }\item[{int }]{camera\+\_\+index = {\ttfamily 0} }\end{DoxyParamCaption})}



Constructor \& Destructor Documentation. 

Initializes the calibration manager.


\begin{DoxyParams}{Parameters}
{\em camera\+\_\+index} & Camera device index (default\+: 0) \\
\hline
\end{DoxyParams}


\doxysubsection{Member Function Documentation}
\Hypertarget{classcalibration_1_1_calibration_manager_a9f5a350ad97e6847ebef1110e5e9fe9c}\label{classcalibration_1_1_calibration_manager_a9f5a350ad97e6847ebef1110e5e9fe9c} 
\index{calibration.CalibrationManager@{calibration.CalibrationManager}!calculate\_overlap@{calculate\_overlap}}
\index{calculate\_overlap@{calculate\_overlap}!calibration.CalibrationManager@{calibration.CalibrationManager}}
\doxysubsubsection{\texorpdfstring{calculate\_overlap()}{calculate\_overlap()}}
{\footnotesize\ttfamily  Optional\mbox{[}int\mbox{]} calibration.\+Calibration\+Manager.\+calculate\+\_\+overlap (\begin{DoxyParamCaption}\item[{}]{self,  }\item[{np.\+ndarray}]{img\+\_\+left,  }\item[{np.\+ndarray}]{img\+\_\+right }\end{DoxyParamCaption})}



Member Function Documentation. 

Calculates horizontal overlap between two images using SIFT features.


\begin{DoxyParams}{Parameters}
{\em img\+\_\+left} & Image from left projector only \\
\hline
{\em img\+\_\+right} & Image from right projector only\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Horizontal overlap error in pixels, or None if insufficient features
\end{DoxyReturn}
\begin{DoxyVerb}Calculates the horizontal overlap between two images using SIFT features.
img_left: The captured image when ONLY the left projector is on.
img_right: The captured image when ONLY the right projector is on.
\end{DoxyVerb}
 \Hypertarget{classcalibration_1_1_calibration_manager_a3d07edd2d67b0402922a04c5c7d274bc}\label{classcalibration_1_1_calibration_manager_a3d07edd2d67b0402922a04c5c7d274bc} 
\index{calibration.CalibrationManager@{calibration.CalibrationManager}!capture\_image@{capture\_image}}
\index{capture\_image@{capture\_image}!calibration.CalibrationManager@{calibration.CalibrationManager}}
\doxysubsubsection{\texorpdfstring{capture\_image()}{capture\_image()}}
{\footnotesize\ttfamily  Optional\mbox{[}np.\+ndarray\mbox{]} calibration.\+Calibration\+Manager.\+capture\+\_\+image (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}



Member Function Documentation. 

Captures a single frame from the camera.

\begin{DoxyReturn}{Returns}
Captured frame as numpy array, or None if capture fails
\end{DoxyReturn}
\begin{DoxyVerb}Captures a single frame from the camera.
Returns None if capture fails.
\end{DoxyVerb}
 \Hypertarget{classcalibration_1_1_calibration_manager_a89c10fbee32064ac053042cc30457b32}\label{classcalibration_1_1_calibration_manager_a89c10fbee32064ac053042cc30457b32} 
\index{calibration.CalibrationManager@{calibration.CalibrationManager}!simulate\_calibration@{simulate\_calibration}}
\index{simulate\_calibration@{simulate\_calibration}!calibration.CalibrationManager@{calibration.CalibrationManager}}
\doxysubsubsection{\texorpdfstring{simulate\_calibration()}{simulate\_calibration()}}
{\footnotesize\ttfamily  int calibration.\+Calibration\+Manager.\+simulate\+\_\+calibration (\begin{DoxyParamCaption}\item[{}]{self,  }\item[{int}]{image\+\_\+width,  }\item[{int}]{current\+\_\+overlap }\end{DoxyParamCaption})}



Member Function Documentation. 

Simulates the calibration process for testing.


\begin{DoxyParams}{Parameters}
{\em image\+\_\+width} & Input image width (unused) \\
\hline
{\em current\+\_\+overlap} & Current overlap value\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Suggested overlap adjustment in pixels
\end{DoxyReturn}
\begin{DoxyVerb}Simulates the calibration process.
Returns the suggested adjustment to the overlap.
\end{DoxyVerb}
 

The documentation for this class was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
Doxygen\+\_\+\+Final/\mbox{\hyperlink{calibration_8py}{calibration.\+py}}\end{DoxyCompactItemize}
