图像直方图是图像处理中非常重要的像素统计结果。图像直方图不再表征任何的图像纹理信息,而是对图像像素的统计。
在OpenCV4中,提供了图像直方图的统计函数calcHist(),该函数能够统计出图像中每个灰度值的个数,但是对于直方图的绘制需要我们自己进行。calcHist()函数原型如下所示:
void cv::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
)
下面为绘制灰度图像的图像直方图的完整示例:
#include <opencv2\opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
Mat img = imread("G:\\书本内容\\OpenCV4快速入门\\learnOpenCV4-master\\data\\apple.jpg");
if (img.empty())
{
cout << "请确认图像文件名称是否正确" << endl;