OpenCV2 计算直方图

2014-11-24 11:22:42 · 作者: · 浏览: 2

我们仍然如前例一样,构建一个类来处理得到直方图。


我们来看看基本的类定义


类的实现


这里面要用的几个函数在这里列出:


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:



我们来看看主程序


运行效果如下: