opencv学习笔记9 直方图均衡化并绘制直方图

这篇博客介绍了如何使用OpenCV进行直方图均衡化和绘制直方图,涉及的关键函数包括cvEqualizeHist、cvCvtColor、cvCalcHist、cvCreateHist、cvRectangle等。通过示例代码,展示了直方图均衡化过程,并提醒读者注意代码优化。
摘要由CSDN通过智能技术生成

进行直方图均衡化并将直方图绘制出来,主要需要如下几个函数:

1、CVAPI(void)  cvEqualizeHist( const CvArr* src, CvArr* dst );
这个函数用起来十分简单,只需要传入源图像以及已初始化的目标图像即可。

第一个参数:const CvArr* src:待处理的源图像;

第二个参数:CvArr* dst:目标图像;

在cvEqualizeHist()中,原始图像及目标图像必须是单通道,大小相同的8位图像。对于彩色图像,必须先利用cvSplite()将每个通道分开,再分别进行处理。

2、CVAPI(void) cvCvtColor( const CvArr* src, CvArr* dst, int code );
由上一个函数已知,因为我们传入的源图像必须为单通道图像,那么我们在进行其他操作之前,先将图像转换为单通道图像,即使用cvCvtColor()进行转换。

第一个参数:const CvArr* src:待处理的源图像;

第二个参数:CvArr* dst:目标图像;

第三个参数:int code:色彩空间转换的模式,该code来实现不同类型的颜色空间转换。比如CV_BGR2GRAY表示转换为灰度图,CV_BGR2HSV将图片从RGB空间转换为HSV空   间。其中当code选用CV_BGR2GRAY时,dst需要是单通道图片。当code选用CV_BGR2HSV时,对于8位图,需要将rgb值归一化到0-1之间。这样得到HSV图中的H范围才是0-360,S和V的范围是0-1。

3、CV_INLINE void cvCalcHist( IplImage** image, CvHistogram* hist,

                             int accumulate CV_DEFAULT(0),
                             const CvArr* mask CV_DEFAULT(NULL) )<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);"> </span>
第一个参数:Iplimage** image:输入图像 (也可以使用 CvMat** ).
第二个参数:CvHistogram* hist::直方图指针 
第三个参数:int accumulate:累计标识。如果设置,则直方图在开始时不被清零。这个特征保证可以为多个图像计算一个单独的直方图,或者在线更新直方图。
第四个参数:const CvArr* mask:操作 mask, 确定输入图像的哪个象素被计数 函数 cvCalcHist 计算单通道或多通道图像的直方图。 用来增加直方块的数组元素可从相应输入图
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值