void minMaxIdx()
说明: 返还数组的最小值和最大值,以及其在数组里的位置。
参数说明如下:
- InputArray src 说明: 一个channel的数组。 这里的channel 可以看成图像里的RGB channel。
- double* minVal, double* maxVal 说明:数组里的最大值,最小值。
- int* minIdx, int* maxIdx 说明:最大值和最小的位置,即index值。
这里要注意 arr[0] 代表坐标y ,arr[1]代表坐标x。- InputArray mask
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
uchar data[] = {
10, 200, 5, 7, 9,
15, 35, 60, 80, 170,
100, 2, 55, 37, 70
};
Mat m1(3, 5, CV_8U, data);
Mat m_min, m_max; // minimum value, maximum value
double minVal, maxVal;
int minIdx[2] = {}, maxIdx[2] = {}; // minnimum Index, maximum Index
minMaxIdx(m1, &minVal, &maxVal, minIdx, maxIdx);
cout << "[m1] = " << endl << m1 << endl << endl;
cout << "[m_min] = " << endl << m_min << endl;
cout << "[m_max] = " << endl << m_max << endl << endl;
cout << "minimum value in m1 : " << minVal << endl;
cout << " minimum value's Index is : " << minIdx[1] << ", " << minIdx[0] << endl;
cout << "maximum value in m1: " << maxVal << endl;
cout << " maxnimum value's Index is : " << maxIdx[1] << ", " << maxIdx[0] << endl << endl;
return 0;
}