目录
1.直方图的定义
- 1.直方图的定义
- 2.calcHist()函数说明
- 3.绘制直方图
- 3.1 读取原图像并检查图像是否读取成功
- 3.2 定义直方图参数并计算直方图
- 3.3 绘制直方图
- 4.关于BGR直方图的绘制
- 4.1 读取原图像并检查图像是否读取成功
- 4.2 分通道显示
- 4.3 分B,G,R计算直方图
- 4.4 绘制直方图
要理解直方图,绕不开“亮度”这个概念。人们把亮度分为0到255共256个数值,数值越大,代表的亮度越高。其中0代表纯黑色的最暗区域,255表示最亮的纯白色,而中间的数字就是不同亮度的灰色。人们还进一步把这些亮度分为了5个区域,分别是黑色,阴影,中间调,高光和白色。 在图像处理上,直方图是图像信息统计的有力工具。其实也就是统计一幅图某个亮度像素数量。
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:输入的图像的指针; • nimages:输入图像个数; • channels:需要统计直方图的第几通道; • mask:掩模,mask必须是一个8位(CV_8U)的数组并且和images的数组大小相同; • hist:直方图计算的输出值; • dims:输出直方图的维度(由channels指定); • histSize:直方图中每个dims维度需要分成多少个区间(如果把直方图看作一个一个竖条的话,就是竖条的个数); • ranges:统计像素值的区间; • uniform=true:是否对得到的直方图数组进行归一化处理; • accumulate=false:在多个图像时,是否累积计算像素值的个数;
【注】:在计算图像直方图的时候一般配合minMaxLoc()和normalize()函数一起使用。
3.绘制直方图只看函数说明肯定看不明白,下面来对函数进行代码演示。绘制直方图主要有三步:
3.1 读取原图像并检查图像是否读取成功相关代码如下:
Mat src, gray;
src = imread("D:/Desktop/16.png");
if (!src.data)
{
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?