直方图的定义、意义和特征

1. 定义

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

2. 意义

(1)直方图是图像中像素强度分布的图形表达方式。

(2)直方图统计了每一个强度值所具有的像素个数。

3. 特征

(1)直方图不再表征任何的图像纹理信息,而是对图像像素的统计。

(2)由于同一物体无论是旋转还是平移在图像中都具有相同的灰度值,因此直方图具有平移不变性、放缩不变性等优点。

4. 方法和参数

cv2.calcHist(images, channels, mask, histSize, ranges[hist[, accumulate]])

(1)images : 整型类型(uint8和float32)的原图(list形式显示)。

(2)channels : 通道的索引,例如:[0]代表灰度图片,[0],[1],[2]代表多通道。

(3)mask : 计算图片指定区域的直方图。如果mask为none,那么计算整张图。

(4)histSize( bins ) : 每个色调值(范围: 0 ~ 255)对应的像素数量/频率。[这256个值中的每一个都被称为bin,它的取值有8,16,32,64,128,256。在OpenCV中,用histSize表示bins。]

(5)range : 强度值的范围,[0, 256]。

# 1 导入库
import cv2
import matplotlib.pyplot as plt
import numpy as np# 2 方法:显示图片
def show_image(image, title, pos):#  顺序转换:BGR TO RGBimage_RGB = image[:, :, ::-1] # shape : (height, width, channel) -1表示倒序# 显示标题plt.title(title)plt.subplot(2, 1, pos) # 定位plt.imshow(image_RGB)# 3 方法:显示图片的灰度直方图
def show_histogram(hist, title, pos, color):# 显示标题plt.title(title)plt.subplot(2, 1, pos) # 定位图片plt.xlabel("Bins") # 横轴信息plt.ylabel("Pixels") # 纵轴信息plt.xlim([0, 256]) # 范围plt.plot(hist, color=color) # 绘制直方图# 4 主函数 main()
def main():# 5 创建画布plt.figure(figsize=(15, 6)) # 画布大小plt.suptitle("Gray Image Histogram", fontsize=14, fontweight="bold") # 设置标题形式# 6 加载图片img = cv2.imread("children.jpg")# 7 灰度转换img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# 8 计算灰度图的直方图hist_img = cv2.calcHist([img_gray], [0], None, [256], [0, 256])#列表# 9 展示灰度直方图# 灰度图转换成BGR格式图片img_BGR = cv2.cvtColor(img_gray, cv2.COLOR_GRAY2BGR)show_image(img_BGR, "BGR image", 1)show_histogram(hist_img, "gray image histogram", 2, "m")plt.show()if __name__ == '__main__':main()

直方图的定义、意义和特征相关推荐

  1. DataScienceML:金融科技领域之风控的简介、类别、应用流程(定义目标变量→特征构建思路等)、案例集锦之详细攻略

    DataScience&ML:金融科技领域之风控的简介.类别.应用流程(定义目标变量→特征构建思路等).案例集锦之详细攻略 目录 金融科技领域之风控的简介 1.风控指标相关概念或口径逻辑 金融 ...

  2. 获得无向图连通子图_讲透学烂二叉树(一):图的概念和定义—各种属性特征浅析...

    树和图的概念 图是一种特殊的数据结构,由点和边构成,它可以用来描述元素之间的网状关系,这个网状没有顺序,也没有层次,就是简单的把各个元素连接起来. 图的概念和基本性质 图(graph):图(graph ...

  3. 混沌现象基础知识总结:定义、基本特征及其判锯(转)

    混沌现象及其定义 混沌并非无序,简单确定的系统不仅可以产生简单确定的行为,还可以产生貌似随机的不确定行为,即混沌行为.混沌是指确定的宏观的非线性系统在一定条件下所呈现的不确定的或不可预测的随机现象:是 ...

  4. 信息学奥赛一本通(只记录有一定义意义的题目,有任何疑问可以私信我)

    基础一 C++语言入门 在梯形中阴影部分面积是150平方厘米,求梯形面积. #include <iostream> #include <iomanip>using namesp ...

  5. 一文了解点特征直方图

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 3D中特征检测和匹配的目标与2D中大致相同:从不同的角度查找可以与 ...

  6. 特征点提取算法 - 01 - 特征的定义基础

    前言:特征提取(feature extraction)是计算机视觉和图像处理中的一个概念.它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征.特征提取的结果是把图像上的点分为不同的子 ...

  7. pcl点云特征提取 法线估计 PFH FPFH NARF 惯量偏心矩 RoPs特征 视点特征直方图VFH GASD特征

    pcl点云特征提取 法线估计 PFH FPFH NARF 惯量偏心矩  RoPs特征  视点特征直方图VFH GASD特征 博文末尾支持二维码赞赏哦 _ 如果要对一个三维点云进行描述,光有点云的位置是 ...

  8. 矩特征、几何矩的定义

    [学习下矩的定义] 矩特征主要表征了图像区域的几何特征,又称为几何矩. 其中: 零阶矩 m00反映了目标图像的面积. 一阶矩 反映了目标图像的质心位置. 二阶矩 又称惯性矩. 三阶矩 主要表现了目标对 ...

  9. 常见数据结构——完全二叉树(定义、特征、节点个数的判断以及C++简单实现)

    完全二叉树 完全二叉树 1.定义 2.特征 3.C++简单实现完全二叉树的节点个数 完全二叉树 1.定义 完全二叉树是由满二叉树而引出来的,若设二叉树的深度为h,除第 h 层外,其它各层 (1-h-1 ...

  10. 「机器学习速成」数据预处理,特征工程,良好特征的特点

    https://www.toutiao.com/a6703863693408469516/ 大家好,今天我们学习[机器学习速成]之 数据预处理,特征工程,良好特征的特点 我们 马上学三点 , 特征工程 ...

最新文章

  1. 二分二题-P1678,P3902【二分,LIS】
  2. 《DBNotes: Buffer Pool对于缓冲页的链表式管理》
  3. 通过tomcat日志定位错误
  4. iphoneX样式兼容
  5. python爬虫京东评论_python爬京东评论
  6. lastinsertid mysql_mysql错误,帮忙看看
  7. 初学java之Map接口
  8. 宝塔apache mysql_宝塔Linux面板命令大全,安装宝塔,Nginx,Apache,MySQL等 - SEO中文网...
  9. UI基础--烟花动画
  10. Code First开发系列之数据库迁移
  11. html5酷狗音乐网页代码,酷狗音乐
  12. 2017年是晚立秋,“秋老虎”来袭!
  13. TensorFlow学习笔记(4)——TensorFlow实现GloVe
  14. 华硕主板反复进入BIOS以及无法识别固态硬盘?
  15. 玫瑰线 matlab,如何用MATLAB画玫瑰线
  16. 线性代数 李永乐强化班
  17. HTML下拉菜单悬停不消失,悬停后保持下拉菜单打开(CSS)
  18. gis可达性分析步骤_消息速递 | 学院2017级城市管理本科班GIS课程作业成果汇报顺利进行...
  19. matlab数字图像处理:时空域图像增强
  20. User Namespace

热门文章

  1. vue如何debugger
  2. 浏览器Debugger
  3. MFC建立简单绘图板
  4. Android Studio 报错:Incompatible types
  5. 配置中心—Consul配置管理
  6. 【Android Studio】Android Monitor找不到手机问题-无法显示运行程序问题解决
  7. 电脑计算机管理摄像头服务,电脑上打开摄像头的方法
  8. IDEA编译错误PersistentEnumerator storage corrupted
  9. java界面加入图片_JAVA界面设计怎么插入背景图片。
  10. [原创]火箭发动机设计---民科版