OpenCV中提供了多个直方图相关的函数,包括计算直方图、绘制直方图、直方图均衡化等,下面将对这些函数进行详细介绍。
- 计算直方图
OpenCV提供了calcHist函数来计算一幅图像的直方图。它的函数原型如下:
void calcHist(const Mat* images, int nimages, const int* channels, InputArray mask,
OutputArray hist, int dims, const int* histSize, const float** ranges,
bool uniform=true, bool accumulate=false);
其中,参数含义如下:
- images:输入图像,可以是一个Mat类型的数组,表示多张图像。
- nimages:images数组中图像的数量。
- channels:要统计的通道,可以是一个整数数组,每个整数表示一个通道的索引,例如:{0, 1, 2}表示统计三通道的直方图。默认情况下只统计第0个通道的直方图。
- mask:掩码图像,只有与掩码对应的像素才会被统计。默认情况下,所有像素都会被统计。
- hist:输出的直方图,是一个一维或多维的Mat类型数组。
- dims:直方图的维数。
- histSize:每个维度的直方图大小,可以是一个整数数组或向量。例如:{256,256,256}表示三通道的直方图大小均为256。
- ranges:每个维度