Mat HistCalculate(Mat img) {Mat img_dect = img;img_dect.at<Vec3b>(0, 0)[0];//获得图像大小int width = img_dect.cols;int hight = img_dect.rows;//统计直方图数据分别累加每个颜色值的数量float B[256] = { 0.0 };float G[256] = { 0.0 };float R[256] = { 0.0 };for (int i = 0; i < width; i++) {for (int j = 0; j < hight; j++){int b = img_dect.at<Vec3b>(j, i)[0];int g = img_dect.at<Vec3b>(j, i)[1];int r = img_dect.at<Vec3b>(j, i)[2];B[b] += 1;G[g] += 1;R[r] += 1;}}//找到B G R中元素数量归一化float b_max = 0;float g_max = 0;float r_max = 0;//找最大元素for (int i = 0; i < 255; i++) {if (B[i] > b_max)b_max = B[i];if (G[i] > g_max) {g_max = G[i];}if (R[i] > r_max) {r_max = R[i];}}//除以最大元素归一化for (int i = 0; i < 255; i++) {B[i] = 100 * B[i] / b_max;G[i] = 100 * G[i] / g_max;R[i] = 100 * R[i] / r_max;}//创建一张空白图展示直方图数据Mat Hist = Mat(256, 256, CV_8UC3, Scalar(255, 255, 255));//在直方图数值上的像素用对应三原色表示,注意y轴变换for (int i = 0; i < 256; i++) {line(Hist, Point(i, 255 - B[i]), Point(i + 1, 255 - B[i + 1]), Scalar(255, 0, 0), 1, LINE_AA);line(Hist, Point(i, 255 - G[i]), Point(i + 1, 255 - G[i + 1]), Scalar(0, 255, 0), 1, LINE_AA);line(Hist, Point(i, 255 - R[i]), Point(i + 1, 255 - R[i + 1]), Scalar(0, 0, 255), 1, LINE_AA);}return Hist;
}

C++自定义直方图统计相关推荐

  1. C++ 超详细8Bit图像直方图统计并绘制显示,不使用calcHist()函数,自己手写统计

    C++ OpenCv中提供的函数calcHist()可以很方便的帮助我们统计一幅8Bit图像的直方图,但是有时候我们不想用OpenCv提供的函数来统计,想自己根据自己的需求来做一个统计,那么看这个教程 ...

  2. R语言plotly可视化:可视化直方图、归一化的直方图、水平直方图、互相重叠的直方图、堆叠的直方图、累积直方图、通过bingroup参数设置多个直方图使用相同的bins设置、自定义直方图条形的间距

    R语言plotly可视化:可视化直方图.归一化的直方图.水平直方图.互相重叠的直方图.堆叠的直方图.累积直方图.通过bingroup参数设置多个直方图使用相同的bins设置.自定义直方图条形的间距 目 ...

  3. seaborn可视化直方图(histogram)、添加密度曲线、并自定义直方图中每一个条形的条形框的色彩(edgecolor)

    seaborn可视化直方图(histogram).添加密度曲线.并自定义直方图中每一个条形的条形框的色彩(edgecolor) 目录

  4. [Python图像处理] 三十七.OpenCV直方图统计两万字详解(掩膜直方图、灰度直方图对比、黑夜白天预测)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  5. CUDA精进之路(三):图像处理——图像灰度化、灰度直方图统计

    引言 在大部分的图像处理程序中,其中必不可少的一步就是对传入的彩图进行灰度处理,将三个通道的RGB图片转化为单通道的Gray图,而对于灰度图进行直方图统计同样是观察检测图像特征的常用方法.在OpenC ...

  6. python+matplotlib对柿子图的彩色和灰色直方图统计

    python+matplotlib对柿子图的彩色和灰色直方图统计 前言 代码 有疑待查 参考链接 前言 最近在对柿子图统计时,遇到了np.histogram函数的参数bins的用法不理解,查找了大量资 ...

  7. 数字图像处理:使用直方图统计进行图像增强

    一.引言 在<数字图像处理:局部直方图处理(Local Histogram Processing) https://blog.csdn.net/LaoYuanPython/article/det ...

  8. mysql 直方图统计_MySQL 8.0 新特性之统计直方图

    原标题:MySQL 8.0 新特性之统计直方图 | 译者简介 译者 韩杰·沃趣科技MySQL数据库工程师 熟悉mysql体系架构.主从复制,熟悉问题定位与解决 出品 沃趣科技 原文链接: https: ...

  9. 自定义考勤统计日历(二)

    在说这篇文章之前我们先了解下自定义考勤统计一 的内容,以及他的参考文献,这样就更容易了解这篇文章了. 看下效果图: 分析下效果图: 1.功能是:筛选日期,检索考勤统计列表,点击列表条目进入考勤统计日历 ...

最新文章

  1. centos删除文件不释放_centos 磁盘空间不释放 各位有什么解决方案吗
  2. CCRD_TOC_2008年第6期
  3. PyTorch 1.0 中文文档:torch.Tensor
  4. sklearn-python简介
  5. 一步安装openssh的脚本
  6. (1)、win10 本地 安装 rabbitmq
  7. 数据库(员工信息表)
  8. golang怎么判断字符串是否为空
  9. DataGridView显示时间格式
  10. C语言自动计数功能,《Objective-C高级编程》温故知新之自动引用计数
  11. java 中counter什么意思_方便适用的计数器Counter
  12. meta中的http-equiv = X-UA-Compatible
  13. 史上最详细Multi-grained Spatio-Temporal Features Perceived Network for Event-based Lip-Reading文章记录
  14. 业务系统如何评估服务器,系统容量预估
  15. md5在线加密解密是不是什么都能解密?为什么我的没有解出来呢?
  16. Linux gzip gunzip(压缩与解压缩)命令
  17. android chrome 地址栏底部,Android Chrome地址栏下移方便单手操作
  18. 2017-12-9框架
  19. css filter blur 白边,CSS3的blur白边怎么去除
  20. pycharm 同一个目录下导入py文件时,模块下方出现红色波浪线时如何解决

热门文章

  1. MyEclipse6.5安装SVN插件的方法--在线安装
  2. ubuntu常见问题总结
  3. 【整理】史上最强的娱乐大餐———九奔、汉澳、器普。。。。。。
  4. visual studio报错:error C4996: ‘scanf‘
  5. 网页怎么在图片上添加文字_教你同时将图片水印和文字水印添加到视频画面
  6. [Vue源码分析]谷歌翻译后,Vue双向数据绑定失效了?
  7. 冒泡排序java代码_数据结构与算法—冒泡排序(Java实现)
  8. SpringCloud学习系列之七 ----- Zuul路由网关的过滤器和异常处理
  9. Linux带给了我什么?
  10. 推荐系统-基于矩阵分解的LFM模型