【OpenCV3】cv::Mat中最值和均值的求解

我们知道cv::Mat是OpenCV2和OpenCV3中最基本的数据结构,不仅可以作为图像数据的容器,也可以作为其他类型数据的容器。那么,我们在使用cv::Mat进行数据的处理时,会经常面临求解其最值和均值的问题。下面就介绍一下如何求解cv::Mat中的最值和均值。

1、cv::Mat中最值的求解

当然,我们可以自己遍历cv::Mat中的所有数值,逐个比较,然后获得其最值。但是,这么做费时又费力,也没有必要。因为OpenCV中已经封装了一个求cv::Mat最值的接口,即cv::minMaxLoc,该函数不仅可以同时获取到cv::Mat中的最大和最小值,而且还可以获得最大最小值所在的位置。

具体使用方法如下:

cv::Mat Mat;
//对Mat进行赋值和其他操作
double max, min;
cv::Point min_loc, max_loc;
cv::minMaxLoc(Mat, &min, &max, &min_loc, &max_loc);

2、cv::Mat中均值的求解

OpenCV中封装了一个专门用于求解cv::Mat均值的函数,即cv::mean(&cv::Mat),该函数会得到Mat中各个通道的均值,若要获取指定通道的均值,做进一步解析即可。

具体使用方法如下:

cv:Scalar tempVal = cv::mean( myMat );
float matMean = tempVal.val[0];







你可能感兴趣的:(OpenCV,opencv,最值,均值)