\section{Matrix Reductions} \cvCppFunc{gpu::meanStdDev} Computes mean value and standard deviation of matrix elements. \cvdefCpp{void meanStdDev(const GpuMat\& mtx, Scalar\& mean, Scalar\& stddev);} \begin{description} \cvarg{mtx}{Source matrix. \texttt{CV\_8UC1} matrices are supported for now.} \cvarg{mean}{Mean value.} \cvarg{stddev}{Standard deviation value.} \end{description} See also: \cvCppCross{meanStdDev}. \cvCppFunc{gpu::norm} Returns norm of matrix (or of two matrices difference). \cvdefCpp{double norm(const GpuMat\& src, int normType=NORM\_L2);} \begin{description} \cvarg{src}{Source matrix. Any matrices except 64F are supported.} \cvarg{normType}{Norm type. \texttt{NORM\_L1}, \texttt{NORM\_L2} and \texttt{NORM\_INF} are supported for now.} \end{description} \cvdefCpp{double norm(const GpuMat\& src, int normType, GpuMat\& buf);} \begin{description} \cvarg{src}{Source matrix. Any matrices except 64F are supported.} \cvarg{normType}{Norm type. \texttt{NORM\_L1}, \texttt{NORM\_L2} and \texttt{NORM\_INF} are supported for now.} \cvarg{buf}{Optional buffer to avoid extra memory allocations. It's resized automatically.} \end{description} \cvdefCpp{double norm(const GpuMat\& src1, const GpuMat\& src2,\par int normType=NORM\_L2);} \begin{description} \cvarg{src1}{First source matrix. \texttt{CV\_8UC1} matrices are supported for now.} \cvarg{src2}{Second source matrix. Must have the same size and type as \texttt{src1}}. \cvarg{normType}{Norm type. \texttt{NORM\_L1}, \texttt{NORM\_L2} and \texttt{NORM\_INF} are supported for now.} \end{description} See also: \cvCppCross{norm}. \cvCppFunc{gpu::sum} Returns sum of matrix elements. \cvdefCpp{Scalar sum(const GpuMat\& src);\newline Scalar sum(const GpuMat\& src, GpuMat\& buf);} \begin{description} \cvarg{src}{Source image of any depth except \texttt{CV\_64F}.} \cvarg{buf}{Optional buffer to avoid extra memory allocations. It's resized automatically.} \end{description} See also: \cvCppCross{sum}. \cvCppFunc{gpu::absSum} Returns sum of matrix elements absolute values. \cvdefCpp{Scalar absSum(const GpuMat\& src);\newline Scalar absSum(const GpuMat\& src, GpuMat\& buf);} \begin{description} \cvarg{src}{Source image of any depth except \texttt{CV\_64F}.} \cvarg{buf}{Optional buffer to avoid extra memory allocations. It's resized automatically.} \end{description} \cvCppFunc{gpu::sqrSum} Returns squared sum of matrix elements. \cvdefCpp{Scalar sqrSum(const GpuMat\& src);\newline Scalar sqrSum(const GpuMat\& src, GpuMat\& buf);} \begin{description} \cvarg{src}{Source image of any depth except \texttt{CV\_64F}.} \cvarg{buf}{Optional buffer to avoid extra memory allocations. It's resized automatically.} \end{description} \cvCppFunc{gpu::minMax} Finds global minimum and maximum matrix elements and returns their values. \cvdefCpp{void minMax(const GpuMat\& src, double* minVal,\par double* maxVal=0, const GpuMat\& mask=GpuMat());\newline void minMax(const GpuMat\& src, double* minVal, double* maxVal,\par const GpuMat\& mask, GpuMat\& buf);} \begin{description} \cvarg{src}{Single-channel source image.} \cvarg{minVal}{Pointer to returned minimum value. \texttt{NULL} if not required.} \cvarg{maxVal}{Pointer to returned maximum value. \texttt{NULL} if not required.} \cvarg{mask}{Optional mask to select a sub-matrix. Please note the result is undefined in the case of empty mask.} \cvarg{buf}{Optional buffer to avoid extra memory allocations. It's resized automatically.} \end{description} Function doesn't work with \texttt{CV\_64F} images on GPU with compute capability $<$ 1.3.\newline See also: \cvCppCross{minMaxLoc}. \cvCppFunc{gpu::minMaxLoc} Finds global minimum and maximum matrix elements and returns their values with locations. \cvdefCpp{void minMaxLoc(const GpuMat\& src, double\* minVal, double* maxVal=0,\par Point* minLoc=0, Point* maxLoc=0,\par const GpuMat\& mask=GpuMat());\newline void minMaxLoc(const GpuMat\& src, double* minVal, double* maxVal,\par Point* minLoc, Point* maxLoc, const GpuMat\& mask,\par GpuMat\& valbuf, GpuMat\& locbuf);} \begin{description} \cvarg{src}{Single-channel source image.} \cvarg{minVal}{Pointer to returned minimum value. \texttt{NULL} if not required.} \cvarg{maxVal}{Pointer to returned maximum value. \texttt{NULL} if not required.} \cvarg{minValLoc}{Pointer to returned minimum location. \texttt{NULL} if not required.} \cvarg{maxValLoc}{Pointer to returned maximum location. \texttt{NULL} if not required.} \cvarg{mask}{Optional mask to select a sub-matrix. Please note the result is undefined in the case of empty mask.} \cvarg{valbuf}{Optional values buffer to avoid extra memory allocations. It's resized automatically.} \cvarg{locbuf}{Optional locations buffer to avoid extra memory allocations. It's resized automatically.} \end{description} Function doesn't work with \texttt{CV\_64F} images on GPU with compute capability $<$ 1.3.\newline See also: \cvCppCross{minMaxLoc}. \cvCppFunc{gpu::countNonZero} Counts non-zero matrix elements. \cvdefCpp{int countNonZero(const GpuMat\& src);\newline int countNonZero(const GpuMat\& src, GpuMat\& buf);} \begin{description} \cvarg{src}{Single-channel source image.} \cvarg{buf}{Optional buffer to avoid extra memory allocations. It's resized automatically.} \end{description} Function doesn't work with \texttt{CV\_64F} images on GPU with compute capability $<$ 1.3.\newline See also: \cvCppCross{countNonZero}.