MeanStdDev 均值 标准差

MeanStdDev 均值 标准差
计算单通道矩阵所有元素均值和标准差

Mat tmp_m, tmp_sd;  
double m = 0, sd = 0;  

m = mean(gray)[0]; 
meanStdDev(gray, tmp_m, tmp_sd);  

m = tmp_m.at(0,0);  
sd = tmp_sd.at(0,0);  

mean, meanStdDev返回结果:double类型。

/** Calculates a mean and standard deviation of array elements.


The function meanStdDev calculates the mean and the standard deviation M
of array elements independently for each channel and returns it via the
output parameters:
\f[\begin{array}{l} N =  \sum _{I, \texttt{mask} (I)  \ne 0} 1 \\ \texttt{mean} _c =  \frac{\sum_{ I: \; \texttt{mask}(I) \ne 0} \texttt{src} (I)_c}{N} \\ \texttt{stddev} _c =  \sqrt{\frac{\sum_{ I: \; \texttt{mask}(I) \ne 0} \left ( \texttt{src} (I)_c -  \texttt{mean} _c \right )^2}{N}} \end{array}\f]
When all the mask elements are 0's, the functions return
mean=stddev=Scalar::all(0).
@note The calculated standard deviation is only the diagonal of the
complete normalized covariance matrix. If the full matrix is needed, you
can reshape the multi-channel array M x N to the single-channel array
M\*N x mtx.channels() (only possible when the matrix is continuous) and
then pass the matrix to calcCovarMatrix .
@param src input array that should have from 1 to 4 channels so that the results can be stored in
Scalar_ 's.
@param mean output parameter: calculated mean value.
@param stddev output parameter: calculateded standard deviation.
@param mask optional operation mask.
@sa  countNonZero, mean, norm, minMaxLoc, calcCovarMatrix
*/

CV_EXPORTS_W void meanStdDev(InputArray src, OutputArray mean, OutputArray stddev,
                             InputArray mask=noArray());

mean返回的值:Scalar,vector类型的数组,当要Scalar的元素,要用[n]方式访问。

meanStdDev以Mat形式返回1X1矩阵。

你可能感兴趣的:(OpenCV)