OpenCV | 4.1.0 |
IDE | Visual Studio 2017 Enterprise (15.9.13) |
操作系统 | Windows 10 x64 中文专业版 (1903) |
void minMaxLoc(InputArray src, CV_OUT double* minVal,
CV_OUT double* maxVal = 0, CV_OUT Point* minLoc = 0,
CV_OUT Point* maxLoc = 0, InputArray mask = noArray());
src:输入图像。
minVal:返回像素最小值。可输入NULL表示不需要。
maxVal :返回像素最大值。可输入NULL表示不需要。
minLoc:返回最小值的位置。可输入NULL表示不需要。
maxLoc:返回最大值的位置。可输入NULL表示不需要。
mask:可选项。
void meanStdDev(InputArray src, OutputArray mean,
OutputArray stddev, InputArray mask=noArray());
src:输入图像。
mean:返回图像像素均值。
stddev:返回图像像素均差值。
mask:可选项。
#include
#include
using namespace cv;
using namespace std;
int main(int argc, const char *argv[])
{
Mat src = imread("../images/test.png", IMREAD_GRAYSCALE);
if (src.empty()) {
printf("不能加载图片!\n");
return -1;
}
namedWindow("1--原图", WINDOW_AUTOSIZE);
imshow("1--原图", src);
double minVal, maxVal;
Point minLoc, maxLoc;
//查找图像中最小值最大值及它们的位置
minMaxLoc(src, &minVal, &maxVal, &minLoc, &maxLoc, Mat());
printf("min: %.2f, max: %.2f \n", minVal, maxVal);
printf("min location: (%d, %d) \n", minLoc.x, minLoc.y);
printf("max location: (%d, %d) \n", maxLoc.x, maxLoc.y);
src = imread("../images/test.png");
Mat means, stddev;
//计算:彩色图像三通道的均值与方差
meanStdDev(src, means, stddev);
printf("Channel--[Blue] mean: %.2f, stddev: %.2f\n", means.at(0, 0), stddev.at(0, 0));
printf("Channel--[Green] mean: %.2f, stddev: %.2f\n", means.at(1, 0), stddev.at(1, 0));
printf("Channel--[Red] mean: %.2f, stddev: %.2f\n", means.at(2, 0), stddev.at(2, 0));
waitKey(0);
return 0;
}