opencv提供了calcHist函数来计算图像直方图。

其中C++的函数原型如下: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 );

void calcHist(const Mat* arrays, int narrays, const int* channels, InputArray mask, SparseMat&
hist, int dims, const int* histSize, const float** ranges, bool uniform=true, bool accumulate=
false );

参数解释:

arrays。输入的图像的指针,可以是多幅图像,所有的图像必须有同样的深度(CV_8U or CV_32F)。同时一副图像可以有多个channes。

narrays。输入的图像的个数。

channels。用来计算直方图的channes的数组。比如输入是2副图像,第一副图像有0,1,2共三个channel,第二幅图像只有0一个channel,

那么输入就一共有4个channes,如果int channels[3] = {3, 2, 0},那么就表示是使用第二副图像的第一个通道和第一副图像的第2和第0个通道来计

算直方图。

mask。掩码。如果mask不为空,那么它必须是一个8位(CV_8U)的数组,并且它的大小的和arrays[i]的大小相同,值为1的点将用来计算

直方图。

hist。计算出来的直方图

dims。计算出来的直方图的维数。

histSize。在每一维上直方图的个数。简单把直方图看作一个一个的竖条的话,就是每一维上竖条的个数。

ranges。用来进行统计的范围。比如

float rang1[] = {0, 20};

float rang2[] = {30, 40};

const float *rangs[] = {rang1, rang2};那么就是对0,20和30,40范围的值进行统计。

uniform。每一个竖条的宽度是否相等。

accumulate。Accumulation flag. If it is set, the histogram is not cleared in the beginning
when it is allocated. This feature enables you to compute a single histogram from several
sets of arrays, or to update the histogram in time.  是否累加。如果为true,在下次计算的时候不会首先清空hist。这个地方我是这样理解的,不知道有没有错,

请高手指点。

一段示例代码:

    //生成一幅单通道图像。
cv::Mat image(imageHeight, imageWidth, CV_8U, imageAddress);cv::MatND histogram;
//256个,范围是0,255.
const int histSize = 256;float range[] = {0, 255};const float *ranges[] = {range};const int channels = 0;cv::calcHist(image, 1, &channels, cv::Mat(), histogram, 1, &histSize, &ranges[0], true, false);int row = histogram.rows;int col = histogram.cols;float *h = (float*)histogram.data;double hh[256];if (h) {for (int i = 0; i < 256; ++i) {hh[i] = h[i];}
}

calcHist的使用相关推荐

  1. 【Opencv】直方图函数 calchist()

    calchist函数需要包含头文件 #include <opencv2/imgproc/imgproc.hpp> 函数声明(三个重载 calchist函数): //! computes t ...

  2. 使用Python,OpenCV计算图像直方图(cv2.calcHist)

    使用Python,OpenCV计算图像直方图(cv2.calcHist 1. 效果图 2. 原理 2.1 什么是图像直方图? 2.2 计算直方图 2.3 可视化蒙版区域 3. 源码 参考 这篇博客将介 ...

  3. OpenCV calcHist()创建直方图的实例(附完整代码)

    OpenCV calcHist创建直方图的实例 OpenCV calcHist()创建直方图的实例 OpenCV calcHist()创建直方图的实例 #include "opencv2/c ...

  4. openCV calcHist函数的使用

     本文转自:http://blog.csdn.net/sydnash/article/details/7451039 opencv提供了calcHist函数来计算图像直方图. 其中C++的函数原型 ...

  5. 【opencv学习笔记】025之直方图计算 - calcHist函数详解

    前言 如果你想了解更多有关于计算机视觉.OpenCV.机器学习.深度学习等相关技术的内容,想与更多大佬一起沟通,那就扫描下方二维码加入我们吧! 1.calcHist函数是干什么滴? 这个问题嘛,看看标 ...

  6. OpenCV的calcHist

    最近要计算图像的直方图,发现calcHist中的参数不是那么的一目了然,到网上搜了一下,资源还是比较多. http://blog.csdn.net/ljbsdu/article/details/741 ...

  7. OpenCV深入学习(6)--直方图之calcHist使用(补)

    上次对calcHist的参数进行了分析,并且给出了几个例子,但是对channels参数没搞清楚,今天又写了个例子分析了一下,终于弄明白了. calcHist函数的channels参数和narrays以 ...

  8. 【Opencv】【C++】 Opencv之calcHist() 计算直方图

    OpenCV 2.4.13 calcHist 通过图像计算直方图 函数声明如下: void calcHist( const Mat* images, int nimages,const int* ch ...

  9. 神奇。cv2.calcHist()函数返回值,灰度值为255的像素个数看似为0。

    cv2.calcHist()函数返回值,灰度值为255的像素个数看似为0的细节探究. import cv2 import matplotlib.pyplot as plt import numpy a ...

最新文章

  1. 为什么老外不愿意用MyBatis?
  2. java-结合c3p0封装的db 事务 类
  3. 查看平台内核信息脚本
  4. 自己动手写C语言编译器(暂停)
  5. 深入浅出FSUIPC的作用以及使用方法
  6. Linux中chown和chmod的区别和用法
  7. 华为可以升级鸿蒙的机型,首批升级鸿蒙机型提前泄露,华为这保密措施需要加强...
  8. office表格怎么冻结前两行_「excel冻结前两行」excel2013怎么冻结前两行 - seo实验室...
  9. 如何通过 User-Agent 识别百度蜘蛛
  10. 联想小新固态硬盘安装Win7或者win10过程
  11. android开发 页面关闭时,关闭软键盘
  12. 重发布,路由策略实验
  13. 两台虚拟机互相ping通(互相通讯)
  14. Ubuntu16.04发热 CPU/GPU温度比win10高解决方法
  15. 大众 mib android auto,【图】加入互联基因 体验大众第二代MIB多媒体_汽车之家
  16. 30 岁了, 现在开始努力,晚吗?
  17. 电影挖掘机 搜索各大视频网站API接口 自动搜索全网所有电影
  18. 一个新开端,存储服务器再添骨灰级玩家
  19. 【华为2021校招】笔试题【通用硬件】
  20. 课程设计c语言拼写字母,C语言课程设计电子英汉词典.doc

热门文章

  1. 使用pngquant压缩png图片
  2. 2021消防设施操作员(中级)岗位考试真题安全检查知识部分
  3. C语言实现3个数的最小公倍数和最大公约数
  4. 优先级翻转与优先级继承
  5. Linux 1.debain 忘记root密码(修改root密码)2.debian 默认不允许 root 登录 解决办法 3.终端快捷键的设置 (超级详细)
  6. AWS Academy 学习平台建立 Learner Lab - 教师
  7. html5手机移动端三级联动城市选择器,jquery移动端省市县(区)三级联动插件
  8. mysql跨库oracle查询_ORACLE跨数据库查询的方法
  9. For循环语句及使用
  10. keras深度学习安装全过程(2021-08-03)