在OpenCV中,minMaxLoc和meanStdDev是两个用于统计图像或数组中元素的基本特性的函数。这些统计函数对于图像处理、特征提取和数据分析非常有用。
minMaxLoc函数用于查找数组或图像中的最小值和最大值,并可选地返回这些值的位置。这在处理图像时特别有用,比如在动态调整对比度或进行阈值操作之前确定图像的亮度范围。
void minMaxLoc(InputArray src, double* minVal, double* maxVal = 0, Point* minLoc = 0, Point* maxLoc = 0, InputArray mask = noArray());
meanStdDev函数计算数组或图像的平均值和标准偏差。这对于分析图像的亮度和对比度变化非常有用,可以帮助我们理解图像的统计特性。
void meanStdDev(InputArray src, OutputArray mean, OutputArray stddev, InputArray mask = noArray());
void QuickDemo::image_pixel_statistic_demo(Mat &image) {
double minv, maxv;
Point minLoc, maxLoc;
std::vector<Mat> mv;
split(image, mv);
for (int i = 0; i < mv.size(); i++) {
minMaxLoc(mv[i], &minv, &maxv, &minLoc, &maxLoc, Mat());
std::cout <<"No.channels:"<<i<< "min value:" << minv << "max value" << maxv << std::endl;
}
Mat mean, stddev;
meanStdDev(image, mean, stddev);
std::cout << "mean:" << mean <<std::endl << "stddev" << stddev << std::endl;
}

