\hypertarget{a02635}{
\section{mln::linear Namespace Reference}
\label{d9/d07/a02635}\index{mln::linear@{mln::linear}}
}


Namespace of linear image processing routines.  


\subsection*{Namespaces}
\begin{DoxyCompactItemize}
\item 
namespace \hyperlink{a02639}{impl}


\begin{DoxyCompactList}\small\item\em Namespace of linear image processing routines implementation details. \item\end{DoxyCompactList}

\item 
namespace \hyperlink{a02642}{local}


\begin{DoxyCompactList}\small\item\em Specializations of local linear routines. \item\end{DoxyCompactList}

\end{DoxyCompactItemize}
\subsection*{Functions}
\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename I $>$ }\\mln::trait::concrete$<$ I $>$::ret \hyperlink{a02635_a8c7c82683d1cda2057355335cc7a9c90}{gaussian} (const \hyperlink{a00044}{Image}$<$ I $>$ \&input, float sigma)
\begin{DoxyCompactList}\small\item\em Gaussian filter of an image {\ttfamily input}. \item\end{DoxyCompactList}\item 
{\footnotesize template$<$typename I $>$ }\\mln::trait::concrete$<$ I $>$::ret \hyperlink{a02635_aecb25fc6a3a638738298a5d07eb6f635}{gaussian} (const \hyperlink{a00044}{Image}$<$ I $>$ \&input, float sigma, int dir)
\item 
{\footnotesize template$<$typename I $>$ }\\mln::trait::concrete$<$ I $>$::ret \hyperlink{a02635_aef20baf24905e3dd78515a228161a1a6}{gaussian\_\-1st\_\-derivative} (const \hyperlink{a00044}{Image}$<$ I $>$ \&input, float sigma)
\item 
{\footnotesize template$<$typename I $>$ }\\mln::trait::concrete$<$ I $>$::ret \hyperlink{a02635_a340aad9302313282fb305db6bb8ea415}{gaussian\_\-1st\_\-derivative} (const \hyperlink{a00044}{Image}$<$ I $>$ \&input, float sigma, int dir)
\item 
{\footnotesize template$<$typename I $>$ }\\mln::trait::concrete$<$ I $>$::ret \hyperlink{a02635_a4321eefe6fef653b54375f4e713bcba6}{gaussian\_\-2nd\_\-derivative} (const \hyperlink{a00044}{Image}$<$ I $>$ \&input, float sigma)
\item 
{\footnotesize template$<$typename I $>$ }\\mln::trait::concrete$<$ I $>$::ret \hyperlink{a02635_a8c3c43bdae38075ddf43669b85dc7a41}{gaussian\_\-2nd\_\-derivative} (const \hyperlink{a00044}{Image}$<$ I $>$ \&input, float sigma, int dir)
\item 
{\footnotesize template$<$typename I , typename W , unsigned Sh, unsigned Sv$>$ }\\\hyperlink{a02635_ad217530165f00504adf9fa85b10cd032}{mln\_\-ch\_\-convolve} (I, W) convolve\_\-2x1d(const \hyperlink{a00044}{Image}$<$ I $>$ \&input
\item 
{\footnotesize template$<$typename I , typename W $>$ }\\\hyperlink{a02635_a66fe3944eeae458130128a4ea997bb79}{mln\_\-ch\_\-convolve} (I, W) convolve(const \hyperlink{a00044}{Image}$<$ I $>$ \&input
\item 
{\footnotesize template$<$typename I , typename W , unsigned S$>$ }\\\hyperlink{a02635_af03beb2f9038a9057200c88fa3450a66}{mln\_\-ch\_\-convolve} (I, W) convolve\_\-directional(const \hyperlink{a00044}{Image}$<$ I $>$ \&input
\item 
{\footnotesize template$<$typename I $>$ }\\\hyperlink{a02635_ae5ff43ec102f506f3712004995246e00}{mln\_\-ch\_\-convolve\_\-grad} (I, int) sobel\_\-2d(const \hyperlink{a00044}{Image}$<$ I $>$ \&input)
\begin{DoxyCompactList}\small\item\em Compute the vertical component of the 2D Sobel gradient. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\begin{Indent}{\bf }\par
{\em \label{_amgrpd41d8cd98f00b204e9800998ecf8427e}
 }\begin{DoxyCompactItemize}
\item 
{\footnotesize template$<$typename I $>$ }\\\hyperlink{a02635_a06d0a75110b6afc9082bb9bfaa15e425}{mln\_\-ch\_\-convolve} (I, int) sobel\_\-2d\_\-h(const \hyperlink{a00044}{Image}$<$ I $>$ \&input)
\begin{DoxyCompactList}\small\item\em Sobel\_\-2d gradient components. \item\end{DoxyCompactList}\end{DoxyCompactItemize}
\end{Indent}


\subsection{Detailed Description}
Namespace of linear image processing routines. 

\subsection{Function Documentation}
\hypertarget{a02635_a8c7c82683d1cda2057355335cc7a9c90}{
\index{mln::linear@{mln::linear}!gaussian@{gaussian}}
\index{gaussian@{gaussian}!mln::linear@{mln::linear}}
\subsubsection[{gaussian}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename I $>$ mln::trait::concrete$<$ I $>$::ret mln::linear::gaussian (
\begin{DoxyParamCaption}
\item[{const Image$<$ I $>$ \&}]{ input, }
\item[{float}]{ sigma}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{d9/d07/a02635_a8c7c82683d1cda2057355335cc7a9c90}


Gaussian filter of an image {\ttfamily input}. 

\begin{DoxyPrecond}{Precondition}
output.domain = input.domain
\end{DoxyPrecond}
Apply an approximated gaussian filter of {\ttfamily sigma} on {\ttfamily input}. This filter is applied in all the input image direction.

\begin{DoxyPrecond}{Precondition}
input.is\_\-valid 
\end{DoxyPrecond}


Definition at line 750 of file gaussian.hh.



References mln::initialize().



Referenced by mln::subsampling::gaussian\_\-subsampling().

\hypertarget{a02635_aecb25fc6a3a638738298a5d07eb6f635}{
\index{mln::linear@{mln::linear}!gaussian@{gaussian}}
\index{gaussian@{gaussian}!mln::linear@{mln::linear}}
\subsubsection[{gaussian}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename I $>$ mln::trait::concrete$<$ I $>$::ret mln::linear::gaussian (
\begin{DoxyParamCaption}
\item[{const Image$<$ I $>$ \&}]{ input, }
\item[{float}]{ sigma, }
\item[{int}]{ dir}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{d9/d07/a02635_aecb25fc6a3a638738298a5d07eb6f635}
Apply an approximated gaussian filter of {\ttfamily sigma} on {\ttfamily input}. on a specific direction {\ttfamily dir} if {\ttfamily dir} = 0, the filter is applied on the first image dimension. if {\ttfamily dir} = 1, the filter is applied on the second image dimension. And so on...

\begin{DoxyPrecond}{Precondition}
input.is\_\-valid 

dir $<$ dimension(input) 
\end{DoxyPrecond}


Definition at line 653 of file gaussian.hh.



References mln::initialize().

\hypertarget{a02635_aef20baf24905e3dd78515a228161a1a6}{
\index{mln::linear@{mln::linear}!gaussian\_\-1st\_\-derivative@{gaussian\_\-1st\_\-derivative}}
\index{gaussian\_\-1st\_\-derivative@{gaussian\_\-1st\_\-derivative}!mln::linear@{mln::linear}}
\subsubsection[{gaussian\_\-1st\_\-derivative}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename I $>$ mln::trait::concrete$<$ I $>$::ret mln::linear::gaussian\_\-1st\_\-derivative (
\begin{DoxyParamCaption}
\item[{const Image$<$ I $>$ \&}]{ input, }
\item[{float}]{ sigma}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{d9/d07/a02635_aef20baf24905e3dd78515a228161a1a6}
Apply an approximated first derivative gaussian filter of {\ttfamily sigma} on {\ttfamily input} This filter is applied in all the input image direction.

\begin{DoxyPrecond}{Precondition}
input.is\_\-valid 
\end{DoxyPrecond}


Definition at line 779 of file gaussian.hh.



References mln::initialize().

\hypertarget{a02635_a340aad9302313282fb305db6bb8ea415}{
\index{mln::linear@{mln::linear}!gaussian\_\-1st\_\-derivative@{gaussian\_\-1st\_\-derivative}}
\index{gaussian\_\-1st\_\-derivative@{gaussian\_\-1st\_\-derivative}!mln::linear@{mln::linear}}
\subsubsection[{gaussian\_\-1st\_\-derivative}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename I $>$ mln::trait::concrete$<$ I $>$::ret mln::linear::gaussian\_\-1st\_\-derivative (
\begin{DoxyParamCaption}
\item[{const Image$<$ I $>$ \&}]{ input, }
\item[{float}]{ sigma, }
\item[{int}]{ dir}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{d9/d07/a02635_a340aad9302313282fb305db6bb8ea415}
Apply an approximated first derivative gaussian filter of {\ttfamily sigma} on {\ttfamily input}. on a specific direction {\ttfamily dir} if {\ttfamily dir} = 0, the filter is applied on the first image dimension. if {\ttfamily dir} = 1, the filter is applied on the second image dimension. And so on...

\begin{DoxyPrecond}{Precondition}
input.is\_\-valid 

dir $<$ dimension(input) 
\end{DoxyPrecond}


Definition at line 685 of file gaussian.hh.



References mln::initialize().

\hypertarget{a02635_a4321eefe6fef653b54375f4e713bcba6}{
\index{mln::linear@{mln::linear}!gaussian\_\-2nd\_\-derivative@{gaussian\_\-2nd\_\-derivative}}
\index{gaussian\_\-2nd\_\-derivative@{gaussian\_\-2nd\_\-derivative}!mln::linear@{mln::linear}}
\subsubsection[{gaussian\_\-2nd\_\-derivative}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename I $>$ mln::trait::concrete$<$ I $>$::ret mln::linear::gaussian\_\-2nd\_\-derivative (
\begin{DoxyParamCaption}
\item[{const Image$<$ I $>$ \&}]{ input, }
\item[{float}]{ sigma}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{d9/d07/a02635_a4321eefe6fef653b54375f4e713bcba6}
Apply an approximated second derivative gaussian filter of {\ttfamily sigma} on {\ttfamily input} This filter is applied in all the input image direction.

\begin{DoxyPrecond}{Precondition}
input.is\_\-valid 
\end{DoxyPrecond}


Definition at line 807 of file gaussian.hh.



References mln::initialize().

\hypertarget{a02635_a8c3c43bdae38075ddf43669b85dc7a41}{
\index{mln::linear@{mln::linear}!gaussian\_\-2nd\_\-derivative@{gaussian\_\-2nd\_\-derivative}}
\index{gaussian\_\-2nd\_\-derivative@{gaussian\_\-2nd\_\-derivative}!mln::linear@{mln::linear}}
\subsubsection[{gaussian\_\-2nd\_\-derivative}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename I $>$ mln::trait::concrete$<$ I $>$::ret mln::linear::gaussian\_\-2nd\_\-derivative (
\begin{DoxyParamCaption}
\item[{const Image$<$ I $>$ \&}]{ input, }
\item[{float}]{ sigma, }
\item[{int}]{ dir}
\end{DoxyParamCaption}
)\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{d9/d07/a02635_a8c3c43bdae38075ddf43669b85dc7a41}
Apply an approximated second derivative gaussian filter of {\ttfamily sigma} on {\ttfamily input}. on a specific direction {\ttfamily dir} if {\ttfamily dir} = 0, the filter is applied on the first image dimension. if {\ttfamily dir} = 1, the filter is applied on the second image dimension. And so on...

\begin{DoxyPrecond}{Precondition}
input.is\_\-valid 

dir $<$ dimension(input) 
\end{DoxyPrecond}


Definition at line 718 of file gaussian.hh.



References mln::initialize().

\hypertarget{a02635_a06d0a75110b6afc9082bb9bfaa15e425}{
\index{mln::linear@{mln::linear}!mln\_\-ch\_\-convolve@{mln\_\-ch\_\-convolve}}
\index{mln\_\-ch\_\-convolve@{mln\_\-ch\_\-convolve}!mln::linear@{mln::linear}}
\subsubsection[{mln\_\-ch\_\-convolve}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename I $>$ mln::linear::mln\_\-ch\_\-convolve (
\begin{DoxyParamCaption}
\item[{I}]{, }
\item[{int}]{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{d9/d07/a02635_a06d0a75110b6afc9082bb9bfaa15e425}


Sobel\_\-2d gradient components. 

Compute the L1 norm of the 2D Sobel gradient.

Compute the vertical component of the 2D Sobel gradient.

Compute the horizontal component of the 2D Sobel gradient. 

Definition at line 142 of file sobel\_\-2d.hh.



References mln\_\-ch\_\-convolve(), mln\_\-ch\_\-convolve\_\-grad(), and mln::data::transform().

\hypertarget{a02635_ad217530165f00504adf9fa85b10cd032}{
\index{mln::linear@{mln::linear}!mln\_\-ch\_\-convolve@{mln\_\-ch\_\-convolve}}
\index{mln\_\-ch\_\-convolve@{mln\_\-ch\_\-convolve}!mln::linear@{mln::linear}}
\subsubsection[{mln\_\-ch\_\-convolve}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename I , typename W , unsigned Sh, unsigned Sv$>$ mln::linear::mln\_\-ch\_\-convolve (
\begin{DoxyParamCaption}
\item[{I}]{, }
\item[{W}]{}
\end{DoxyParamCaption}
) const}}
\label{d9/d07/a02635_ad217530165f00504adf9fa85b10cd032}
Convolution of an image {\ttfamily input} by two weighted line-\/shapes windows.

\begin{DoxyWarning}{Warning}
The weighted window is used as-\/is, considering that its symmetrization is handled by the client.
\end{DoxyWarning}
\begin{DoxyPrecond}{Precondition}
input.is\_\-valid 
\end{DoxyPrecond}
\hypertarget{a02635_a66fe3944eeae458130128a4ea997bb79}{
\index{mln::linear@{mln::linear}!mln\_\-ch\_\-convolve@{mln\_\-ch\_\-convolve}}
\index{mln\_\-ch\_\-convolve@{mln\_\-ch\_\-convolve}!mln::linear@{mln::linear}}
\subsubsection[{mln\_\-ch\_\-convolve}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename I , typename W $>$ mln::linear::mln\_\-ch\_\-convolve (
\begin{DoxyParamCaption}
\item[{I}]{, }
\item[{W}]{}
\end{DoxyParamCaption}
) const}}
\label{d9/d07/a02635_a66fe3944eeae458130128a4ea997bb79}
Convolution of an image {\ttfamily input} by the weighted window {\ttfamily w\_\-win}.

\begin{DoxyWarning}{Warning}
Computation of {\ttfamily output(p)} is performed with the value type of {\ttfamily output}.

The weighted window is used as-\/is, considering that its symmetrization is handled by the client.
\end{DoxyWarning}
\begin{DoxyPrecond}{Precondition}
input.is\_\-valid 
\end{DoxyPrecond}


Referenced by mln\_\-ch\_\-convolve(), and mln\_\-ch\_\-convolve\_\-grad().

\hypertarget{a02635_af03beb2f9038a9057200c88fa3450a66}{
\index{mln::linear@{mln::linear}!mln\_\-ch\_\-convolve@{mln\_\-ch\_\-convolve}}
\index{mln\_\-ch\_\-convolve@{mln\_\-ch\_\-convolve}!mln::linear@{mln::linear}}
\subsubsection[{mln\_\-ch\_\-convolve}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename I , typename W , unsigned S$>$ mln::linear::mln\_\-ch\_\-convolve (
\begin{DoxyParamCaption}
\item[{I}]{, }
\item[{W}]{}
\end{DoxyParamCaption}
) const\hspace{0.3cm}{\ttfamily  \mbox{[}inline\mbox{]}}}}
\label{d9/d07/a02635_af03beb2f9038a9057200c88fa3450a66}
Convolution of an image {\ttfamily input} by a line-\/shaped (directional) weighted window defined by the array of {\ttfamily weights}.

\begin{DoxyWarning}{Warning}
Computation of {\ttfamily output(p)} is performed with the value type of {\ttfamily output}.

The weighted window is used as-\/is, considering that its symmetrization is handled by the client.
\end{DoxyWarning}
\begin{DoxyPrecond}{Precondition}
input.is\_\-valid 
\end{DoxyPrecond}
\hypertarget{a02635_ae5ff43ec102f506f3712004995246e00}{
\index{mln::linear@{mln::linear}!mln\_\-ch\_\-convolve\_\-grad@{mln\_\-ch\_\-convolve\_\-grad}}
\index{mln\_\-ch\_\-convolve\_\-grad@{mln\_\-ch\_\-convolve\_\-grad}!mln::linear@{mln::linear}}
\subsubsection[{mln\_\-ch\_\-convolve\_\-grad}]{\setlength{\rightskip}{0pt plus 5cm}template$<$typename I $>$ mln::linear::mln\_\-ch\_\-convolve\_\-grad (
\begin{DoxyParamCaption}
\item[{I}]{, }
\item[{int}]{}
\end{DoxyParamCaption}
) const}}
\label{d9/d07/a02635_ae5ff43ec102f506f3712004995246e00}


Compute the vertical component of the 2D Sobel gradient. 



Definition at line 124 of file sobel\_\-2d.hh.



References mln\_\-ch\_\-convolve(), and mln::data::transform().



Referenced by mln\_\-ch\_\-convolve().

