我们仍然如前例一样,构建一个类来处理得到直方图。
我们来看看基本的类定义
类的实现
这里面要用的几个函数在这里列出:
C++: void minMaxLoc(const SparseMat& src, double* minVal, double* maxVal, int* minIdx=0, int* maxIdx=0)
其作用是寻找一个矩阵中最大和最小值,并得到它们的位置
C++: void split(const Mat& mtx, vector& mv)
把一个多通道矩阵分成几个单通道矩阵,在这里主要用于计算各通道的直方图
C++: void calcHist(const Mat* arrays, int narrays, const int* channels, InputArray mask, OutputArray hist, int dims, const int* histSize, const float** ranges, bool uniform=true, bool accumulate=false )
计算直方图,各参数含义可在参考文档中查到
Parameters:
我们来看看主程序
运行效果如下:
