最大、最小值 | void cv::minMaxLoc() |
均值、方差 | void cv::meanStdDev() |
API:
C++ void cv::minMaxLoc(cv::InputArray src, 单通道输入图像
double *minVal, double *maxVal = (double *)0,
cv::Point *minLoc = (cv::Point *)0,
cv::Point *maxLoc = (cv::Point *)0,
cv::InputArray mask = noArray())
C++ void cv::meanStdDev(cv::InputArray src, 输入
cv::OutputArray mean, 均值
cv::OutputArray stddev, 方差
cv::InputArray mask = noArray())
代码:
#include<opencv2/opencv.hpp>
#include<iostream>
#include<imgproc.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv) {
Mat image = imread("C:/Users/YY/Pictures/Saved Pictures/frose.jpg");
imshow("原图", image);
double minVal, maxVal;
Point minp, maxp;
vector<Mat>bgr;
split(image, bgr);
for(int i=0;i<bgr.size();i++){
minMaxLoc(bgr[i], &minVal, &maxVal,&minp,&maxp);
cout << "minVal: " << minVal << " maxVal: " << maxVal << endl;
cout << "minpoint: " << minp << " maxpoint: " << maxp << endl;
}
Mat mean, stddev;
meanStdDev(image, mean, stddev);//均值,方差
cout << "均值" << mean << endl;
cout << "方差" << stddev << endl;
waitKey(0);
destroyAllWindows();
return 0;
}
minVal: 0 maxVal: 255
minpoint: [46, 0] maxpoint: [128, 66]
minVal: 2 maxVal: 253
minpoint: [209, 151] maxpoint: [117, 82]
minVal: 0 maxVal: 255
minpoint: [78, 0] maxpoint: [124, 61]
均值[51.10042116769548;
87.76117219650206;
65.56232317386832]
方差[66.59985266753239;
54.27424750156884;
70.82112553356178]