函数原型
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 );
参数解释
- arrays。输入的图像的指针,可以是多幅图像,所有的图像必须有同样的深度(CV_8U or CV_32F)。同时一副图像可以有多个channes。
- narrays。输入的图像的个数
- channels。用来计算直方图的channes的数组。比如输入是2副图像,第一副图像有0,1,2共三个channel,第二幅图像只有0一个channel,那么输入就一共有4个channes,如果int channels[3] = {3, 2, 0},那么就表示是使用第二副图像的第一个通道和第一副图像的第2和第0个通道来计算直方图。
- mask。掩码。如果mask不为空,那么它必须是一个8位(CV_8U)的数组,并且它的大小的和arrays[i]的大小相同,值为1的点将用来计算直方图。
- hist。计算出来的直方图。
- dims。计算出来的直方图的维数。
- histSize。在每一维上直方图的个数。简单把直方图看作一个一个的竖条的话,就是每一维上竖条的个数。
- ranges。用来进行统计的范围。比如 float rang1[] = {0, 20};float rang2[] = {30, 40};
const float *rangs[] = {rang1, rang2};那么就是对0,20和30,40范围的值进行统计。 - uniform。每一个竖条的宽度是否相等。
本文详细解析了OpenCV中calcHist函数的使用方法,包括函数原型、参数解释及应用场景,帮助读者深入理解图像直方图计算的核心原理。
3万+

被折叠的 条评论
为什么被折叠?



