\doxysection{altmain.\+Projection\+Split Class Reference}
\hypertarget{classaltmain_1_1_projection_split}{}\label{classaltmain_1_1_projection_split}\index{altmain.ProjectionSplit@{altmain.ProjectionSplit}}


Handles splitting images for dual-\/projector setups with overlap blending.  


\doxysubsubsection*{Public Member Functions}
\begin{DoxyCompactItemize}
\item 
\mbox{\hyperlink{classaltmain_1_1_projection_split_a0d58dc6f518cc5d703b8d4cebf27c7ac}{\+\_\+\+\_\+init\+\_\+\+\_\+}} (self)
\begin{DoxyCompactList}\small\item\em Initializes the Projection\+Split processor with Num\+Py backend. \end{DoxyCompactList}\item 
\mbox{\hyperlink{classaltmain_1_1_projection_split_a80c6f09a876a9ced591ab4c2b4213f81}{process\+\_\+images}} (self, int overlap=75, str blend\+\_\+type="{}linear"{})
\begin{DoxyCompactList}\small\item\em Main public interface for processing static images. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Public Attributes}
\begin{DoxyCompactItemize}
\item 
\Hypertarget{classaltmain_1_1_projection_split_a778a610ef8db5b94ff5e381846c01a7f}\label{classaltmain_1_1_projection_split_a778a610ef8db5b94ff5e381846c01a7f} 
{\bfseries cfg}
\begin{DoxyCompactList}\small\item\em Configuration manager instance. \end{DoxyCompactList}\item 
\Hypertarget{classaltmain_1_1_projection_split_a0e2ec49ca077220f3f03bcfec002c908}\label{classaltmain_1_1_projection_split_a0e2ec49ca077220f3f03bcfec002c908} 
{\bfseries image\+\_\+left}
\begin{DoxyCompactList}\small\item\em Processed left projector output image. \end{DoxyCompactList}\item 
\Hypertarget{classaltmain_1_1_projection_split_a517584c65b6de72f3738d7c487ce8832}\label{classaltmain_1_1_projection_split_a517584c65b6de72f3738d7c487ce8832} 
{\bfseries image\+\_\+right}
\begin{DoxyCompactList}\small\item\em Processed right projector output image. \end{DoxyCompactList}\item 
\Hypertarget{classaltmain_1_1_projection_split_acba2afb33ea40664df09b96dd5b7ba95}\label{classaltmain_1_1_projection_split_acba2afb33ea40664df09b96dd5b7ba95} 
{\bfseries image\+\_\+main}
\begin{DoxyCompactList}\small\item\em Original input image buffer for reference. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsubsection*{Protected Member Functions}
\begin{DoxyCompactItemize}
\item 
Tuple\mbox{[}np.\+ndarray, np.\+ndarray\mbox{]} \mbox{\hyperlink{classaltmain_1_1_projection_split_a4e9940d4b3de3dba04195ccd277ec9f9}{\+\_\+generate\+\_\+alpha\+\_\+curves}} (self, int overlap, str blend\+\_\+type)
\begin{DoxyCompactList}\small\item\em Generates alpha blending curves for overlap region. \end{DoxyCompactList}\item 
None \mbox{\hyperlink{classaltmain_1_1_projection_split_ae5af68e07fa42560e36f720aed5546f6}{\+\_\+apply\+\_\+blending}} (self, np.\+ndarray image, int overlap, str blend\+\_\+type)
\begin{DoxyCompactList}\small\item\em Applies alpha blending to split images using Num\+Py operations. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Handles splitting images for dual-\/projector setups with overlap blending. 

This class is responsible for\+:
\begin{DoxyItemize}
\item Loading and processing input images for dual-\/projector setups
\item Generating mathematical alpha blending curves for smooth transitions
\item Splitting images into left/right sections with configurable overlap
\item Applying blending using pure Num\+Py operations (no GPU dependency)
\item Saving processed outputs to disk for projector display 
\end{DoxyItemize}

\doxysubsection{Constructor \& Destructor Documentation}
\Hypertarget{classaltmain_1_1_projection_split_a0d58dc6f518cc5d703b8d4cebf27c7ac}\label{classaltmain_1_1_projection_split_a0d58dc6f518cc5d703b8d4cebf27c7ac} 
\index{altmain.ProjectionSplit@{altmain.ProjectionSplit}!\_\_init\_\_@{\_\_init\_\_}}
\index{\_\_init\_\_@{\_\_init\_\_}!altmain.ProjectionSplit@{altmain.ProjectionSplit}}
\doxysubsubsection{\texorpdfstring{\_\_init\_\_()}{\_\_init\_\_()}}
{\footnotesize\ttfamily altmain.\+Projection\+Split.\+\_\+\+\_\+init\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{}]{self }\end{DoxyParamCaption})}



Initializes the Projection\+Split processor with Num\+Py backend. 

Constructor that sets up the processor by\+:
\begin{DoxyItemize}
\item Initializing image storage buffers as None
\item Loading configuration from config.\+ini file
\item Using pure Num\+Py operations for cross-\/platform compatibility
\end{DoxyItemize}

\begin{DoxyPostcond}{Postcondition}
self.\+image\+\_\+left, self.\+image\+\_\+right, self.\+image\+\_\+main are initialized to None 

self.\+cfg contains loaded configuration from config.\+ini
\end{DoxyPostcond}

\begin{DoxyExceptions}{Exceptions}
{\em File\+Not\+Found\+Error} & if config.\+ini cannot be found \\
\hline
\end{DoxyExceptions}


\doxysubsection{Member Function Documentation}
\Hypertarget{classaltmain_1_1_projection_split_ae5af68e07fa42560e36f720aed5546f6}\label{classaltmain_1_1_projection_split_ae5af68e07fa42560e36f720aed5546f6} 
\index{altmain.ProjectionSplit@{altmain.ProjectionSplit}!\_apply\_blending@{\_apply\_blending}}
\index{\_apply\_blending@{\_apply\_blending}!altmain.ProjectionSplit@{altmain.ProjectionSplit}}
\doxysubsubsection{\texorpdfstring{\_apply\_blending()}{\_apply\_blending()}}
{\footnotesize\ttfamily  None altmain.\+Projection\+Split.\+\_\+apply\+\_\+blending (\begin{DoxyParamCaption}\item[{}]{self,  }\item[{np.\+ndarray}]{image,  }\item[{int}]{overlap,  }\item[{str}]{blend\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Applies alpha blending to split images using Num\+Py operations. 

Core processing method that\+:
\begin{DoxyEnumerate}
\item Converts 3-\/channel images to 4-\/channel (BGRA) if needed
\item Splits image into left and right sections with specified overlap
\item Generates alpha blending curves
\item Applies curves to alpha channels of overlap regions
\item Stores results in instance buffers and saves to disk
\end{DoxyEnumerate}


\begin{DoxyParams}{Parameters}
{\em image} & Input image as numpy array (BGR or BGRA format) \\
\hline
{\em overlap} & Width of overlap region in pixels (must be even for symmetric split) \\
\hline
{\em blend\+\_\+type} & Type of blending curve to apply\\
\hline
\end{DoxyParams}
\begin{DoxyPostcond}{Postcondition}
self.\+image\+\_\+left and self.\+image\+\_\+right contain processed images 

left.\+png and right.\+png are saved to working directory 
\end{DoxyPostcond}
\Hypertarget{classaltmain_1_1_projection_split_a4e9940d4b3de3dba04195ccd277ec9f9}\label{classaltmain_1_1_projection_split_a4e9940d4b3de3dba04195ccd277ec9f9} 
\index{altmain.ProjectionSplit@{altmain.ProjectionSplit}!\_generate\_alpha\_curves@{\_generate\_alpha\_curves}}
\index{\_generate\_alpha\_curves@{\_generate\_alpha\_curves}!altmain.ProjectionSplit@{altmain.ProjectionSplit}}
\doxysubsubsection{\texorpdfstring{\_generate\_alpha\_curves()}{\_generate\_alpha\_curves()}}
{\footnotesize\ttfamily  Tuple\mbox{[}np.\+ndarray, np.\+ndarray\mbox{]} altmain.\+Projection\+Split.\+\_\+generate\+\_\+alpha\+\_\+curves (\begin{DoxyParamCaption}\item[{}]{self,  }\item[{int}]{overlap,  }\item[{str     }]{blend\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [protected]}}



Generates alpha blending curves for overlap region. 

Creates mathematical curves that determine transparency values across the overlap zone using three supported blending types\+:
\begin{DoxyItemize}
\item Linear\+: Straight-\/line fade with configurable slope parameter
\item Quadratic\+: Parabolic fade (x²) for smoother transition
\item Gaussian\+: Bell curve fade using error function for natural blending
\end{DoxyItemize}


\begin{DoxyParams}{Parameters}
{\em overlap} & Width of the overlap region in pixels \\
\hline
{\em blend\+\_\+type} & Type of blending curve\+: "{}linear"{}, "{}quadratic"{}, or "{}gaussian"{}\\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Tuple of (left\+\_\+curve, right\+\_\+curve) where each is a 1D numpy array of alpha values (float32) ranging from 0.\+0 to 1.\+0 across overlap width
\end{DoxyReturn}

\begin{DoxyExceptions}{Exceptions}
{\em Value\+Error} & if an unsupported blend\+\_\+type is provided \\
\hline
\end{DoxyExceptions}
\Hypertarget{classaltmain_1_1_projection_split_a80c6f09a876a9ced591ab4c2b4213f81}\label{classaltmain_1_1_projection_split_a80c6f09a876a9ced591ab4c2b4213f81} 
\index{altmain.ProjectionSplit@{altmain.ProjectionSplit}!process\_images@{process\_images}}
\index{process\_images@{process\_images}!altmain.ProjectionSplit@{altmain.ProjectionSplit}}
\doxysubsubsection{\texorpdfstring{process\_images()}{process\_images()}}
{\footnotesize\ttfamily altmain.\+Projection\+Split.\+process\+\_\+images (\begin{DoxyParamCaption}\item[{}]{self,  }\item[{int }]{overlap = {\ttfamily 75},  }\item[{str }]{blend\+\_\+type = {\ttfamily "{}linear"{}} }\end{DoxyParamCaption})}



Main public interface for processing static images. 

Loads input image from disk and applies splitting and blending operations. This is the primary method called by the GUI controller for image processing.


\begin{DoxyParams}{Parameters}
{\em overlap} & Overlap width in pixels (default\+: 75) \\
\hline
{\em blend\+\_\+type} & Blending curve type (default\+: "{}linear"{})\\
\hline
\end{DoxyParams}

\begin{DoxyExceptions}{Exceptions}
{\em File\+Not\+Found\+Error} & if input.\+png cannot be found in working directory \\
\hline
{\em Value\+Error} & if blend\+\_\+type is not supported\\
\hline
\end{DoxyExceptions}
\begin{DoxyPostcond}{Postcondition}
self.\+image\+\_\+main contains the loaded input image 

self.\+image\+\_\+left and self.\+image\+\_\+right contain processed outputs 

left.\+png and right.\+png are saved to working directory 
\end{DoxyPostcond}


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