图像直方图 是用以表示数字图像中亮度分布的直方图,标绘了图像中每个亮度值的像素个数。这种直方图中,横坐标的左侧为较暗的区域,而右侧为较亮的区域。因此一张较暗图片的直方图中的数据多集中于左侧和中间部分,而整体明亮、只有少量阴影的图像则相反。

直方图的意义:

  • 直方图是图像中像素强度分布的图形表达方式。
  • 它统计了每一个强度值所具有的像素个数。
  • 不同的图像的直方图可能是相同的

使用OpenCV中的方法统计直方图,并使用matplotlib将其绘制出来。

cv2.calcHist(images,channels,mask,histSize,ranges[,hist[,accumulate]])
  • images: 原图像。当传入函数时应该用中括号 [] 括起来,例如:[img]。

  • channels: 如果输入图像是灰度图,它的值就是 [0];如果是彩色图像的话,传入的参数可以是 [0],[1],[2] 它们分别对应着通道 B,G,R。

  • mask: 掩模图像。要统计整幅图像的直方图就把它设为 None。但是如果你想统计图像某一部分的直方图的话,你就需要制作一个掩模图像,并使用它。

  • histSize:BIN 的数目。也应该用中括号括起来,例如:[256]。

  • ranges: 像素值范围,通常为 [0,256]

import cv2 as cv
from matplotlib import pyplot as plt# 1 直接以灰度图的方式读入
img = cv.imread('./1.png', 0)# # 2 统计灰度图
histr = cv.calcHist([img], [0], None, [256], [0, 256])# 3 绘制灰度图
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(10, 5), dpi=100)
axes[0].imshow(img, cmap=plt.cm.gray)
axes[0].set_title("原图")
axes[1].plot(histr)
axes[1].grid()
axes[1].set_title("灰度直方图")
plt.show()

OpenCV 直方图的计算和绘制相关推荐

  1. 使用Python,Opencv进行二维直方图的计算及绘制

    使用Python,Opencv进行二维直方图的计算及绘制 1. 效果图 2. 源码 参考 这篇博客将介绍如何使用Python,Opencv进行二维直方图的计算及绘制(分别用Opencv和Numpy计算 ...

  2. OpenCV中直方图的计算和绘制

    OpenCV中直方图的计算和绘制 主要记录一下几个关键的API: cvRound(输入一个浮点数 );//返回一个整型数,取整的方法为四舍五入 split(输入多通道图像,数组或者vector变量. ...

  3. 《OpenCV3编程入门》学习笔记9 直方图与匹配(一二) 图像直方图概述直方图的计算与绘制

    第9章 直方图与匹配 9.1 图像直方图(Histogram)概述 1.作用:   在每个兴趣点设置一个有相近特征的直方图所构成的标签,通过标记帧与帧之间显著的边缘.颜色.角度等特征的统计变化,来检测 ...

  4. 直方图的计算,绘制与分析

    直方图的计算,绘制与分析 目标 • 使用 OpenCV 或 Numpy 函数计算直方图 • 使用 Opencv 或者 Matplotlib 函数绘制直方图 • 将要学习的函数有:cv2.calcHis ...

  5. OpenCV学习笔记(八)——直方图的计算与绘制(cv.calcHist()、plt.hist()、plt.imshow())

    目录 1 直方图的计算 2 直方图的绘制 2.1 cv.line()和cv.polylines() 2.2 plt.hist() 3 2D 直方图 3.1 cv.calcHist() 3.2 plt. ...

  6. 【Opencv入门】RGB三通道直方图的计算与绘制

    文章目录 一. 直方图概述 Overview of histogram 二.直方图的建立 Establishment of histogram 三.直方图的作用 The function of his ...

  7. 花老湿学习OpenCV:直方图、直方图的计算、均衡化、对比、反向投影

    直方图概述: 在统计学中,直方图是一种对数据分布情况的图形表示,是一种二维统计图表,他的两个坐标分别是统计样本(图像.视频帧)和样本的某种属性(亮度,像素值,梯度,方向,色彩等等任何特征). 也可以这 ...

  8. 使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析

    使用OpenCV,Numpy计算直方图,Matplot绘制直方图及分析 1. 效果图 2. 原理 3. 源码 3.1 直方图3种计算方法和2种绘制方法 3.2 Mask遮罩图像直方图 参考 这篇博客将 ...

  9. OpenCV Python教程(3)(4)(5): 直方图的计算与显示 形态学处理 初级滤波内

    OpenCV Python教程(3.直方图的计算与显示) 本篇文章介绍如何用OpenCV Python来计算直方图,并简略介绍用NumPy和Matplotlib计算和绘制直方图 直方图的背景知识.用途 ...

最新文章

  1. JAVA面向对象-----final关键字
  2. Build Tools三问
  3. 设计模式的理解:组合模式 (Composite)
  4. 切面是异步还是同步操作‘_【 .NET Core 3.0 】框架之十 || AOP 切面思想
  5. 作者:李海生(1974-),男,博士,食品安全大数据技术北京市重点实验室、北京工商大学计算机与信息工程学院教授、研究生导师...
  6. 轻松搞定JSONP跨域请求
  7. win10搭建hadoop环境
  8. 小米MIX 4无线反向充电安排上了?MIUI测试版固件中暗藏玄机
  9. mysql8.0其他机器访问_量子公司重大突破,量子机器学习实用化进程加速
  10. python语法(二)——截取字符串的方法详解
  11. ISO 37301:2021《合规管理体系 要求及使用指南》国际标准解读及相关标准
  12. hive建表语句 增加字段、分区基础操作
  13. mysql +cobar_转:阿里开源Mysql分布式中间件:Cobar
  14. 机器人自带触觉反馈,隔空微创手术的利器
  15. 【今日分享】官方实例用python调用OpenAI tahcTPG的APIkey生成智能问答
  16. UML选择题复习题库
  17. WFP实现侧边栏导航菜单
  18. 什么IT项目可以兼职在学校做
  19. c++实现图书管理系统v2.0
  20. 原码、反码、补码、移码 基本介绍

热门文章

  1. 百度地图-省市县联动加载地图
  2. LogStash 中字段的排除和数据的排除
  3. Visual Studio 2013 Web开发新特性
  4. 使用Xib解决1px线条绘制的一些方法
  5. 使用SVCUtil.exe生成客户端代理类和配置文件
  6. 定义css设备类型-Media Queries图表简介及使用方法
  7. Gridview数据控件的七种字段类型
  8. Android4.4 framework分析——ActivityManagerService的启动和对Activity的管理
  9. T-SQL查询进阶--基于列的逻辑表达式
  10. 用二叉树来理解树状数组