opencv 直方图 calcHist函数的使用

本文详细解析了OpenCV中calcHist函数的使用方法,包括函数原型、参数解释及应用场景,帮助读者深入理解图像直方图计算的核心原理。

函数原型

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 )

参数解释

  1. arrays。输入的图像的指针,可以是多幅图像,所有的图像必须有同样的深度(CV_8U or CV_32F)。同时一副图像可以有多个channes。
  2. narrays。输入的图像的个数
  3. channels。用来计算直方图的channes的数组。比如输入是2副图像,第一副图像有0,1,2共三个channel,第二幅图像只有0一个channel,那么输入就一共有4个channes,如果int channels[3] = {3, 2, 0},那么就表示是使用第二副图像的第一个通道和第一副图像的第2和第0个通道来计算直方图。
  4. mask。掩码。如果mask不为空,那么它必须是一个8位(CV_8U)的数组,并且它的大小的和arrays[i]的大小相同,值为1的点将用来计算直方图。
  5. hist。计算出来的直方图。
  6. dims。计算出来的直方图的维数。
  7. histSize。在每一维上直方图的个数。简单把直方图看作一个一个的竖条的话,就是每一维上竖条的个数。
  8. ranges。用来进行统计的范围。比如 float rang1[] = {0, 20};float rang2[] = {30, 40};
    const float *rangs[] = {rang1, rang2};那么就是对0,20和30,40范围的值进行统计。
  9. uniform。每一个竖条的宽度是否相等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值