numpy知识库:基于numpy绘制灰度直方图

前言

对于灰度图像而言,灰度直方图可以统计灰度图像内各个灰度级出现的次数。
灰度直方图的横坐标是灰度图像中各像素点的灰度级。灰度的数值范围为[0, 255]。因此,如果将图像分为256个灰度级,那么每个灰度级唯一对应一个灰度;如果将图像分为16个灰度级,那么每个灰度级包含连续的16个灰度(如[0, 15], [15, 31]…)。
灰度直方图的纵坐标是具有该灰度级的像素个数。

需求说明

欲对灰度图像格式的lena图像实现灰度直方图的绘制。

解决方案

基于numpy数组的revel方法实现灰度直方图的绘制

代码如下:

import cv2
import matplotlib.pyplot as plt
import numpy as npimg = cv2.imread("lena.jpg", 0) # 以灰度图像格式读取图像
cv2.imshow("lena", img)# 基于numpy数组的ravel方法将二维数组img展开成一维数组
flattene_img = img.ravel()# 对一维数组进行直方图绘制
plt.hist(flattene_img, bins=16) # bins=16表示包含16个灰度级
plt.show()cv2.waitKey(0) # 显示图像

结果如下:
在这里插入图片描述
在这里插入图片描述

基于numpy数组的reshape方法实现灰度直方图的绘制

代码如下:

import cv2
import matplotlib.pyplot as plt
import numpy as npimg = cv2.imread("lena.jpg", 0) # 以灰度图像格式读取图像
cv2.imshow("lena", img)# 基于numpy数组的reshape方法将二维数组img展开成一维数组
flattene_img = img.reshape((-1,)) # 将reshape的shape参数设置为(-1,),代码可以自动计算img展成一维数组后的实际大小 
# ---> 比如img形状为(16, 16) ---> 参数(-1,) 等价于参数(256, )# 对一维数组进行直方图绘制
plt.hist(flattene_img, bins=16) # bins=256表示包含256个灰度级
plt.show()cv2.waitKey(0) # 显示图像

在这里插入图片描述
在这里插入图片描述

结束语

如果本博文对你有所帮助,可以点个赞/收藏支持一下,如果能够持续关注,小编感激不尽~
小编会坚持创作,持续优化博文质量,以小见大,给读者带来更好de阅读体验~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/194900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

流媒体方案之Nginx——实现物联网视频监控项目

目录 前言 一、Nginx是什么 二、Nginx在流媒体方案中的位置​编辑 三、软硬件准备 四、移植编译Nginx 五、运行Ngnix 六、测试流媒体方案 七、浏览器播放 前言 最近想做一个安防相关的项目,所以跟着韦东山老师的视频来学习视频监控方案的相关知识&#xff0…

lv11 嵌入式开发 ADC 16

目录 1 ADC 简介 2 Exynos4412下的ADC控制器 2.1 总览 2.2 特征 2.3 ADC转换时间 2.4 IO口 ​编辑3 ADC寄存器详解 3.1 寄存器介绍 3.2 ADCCON控制寄存器 3.3 ADCDAT 3.4 CLRINTADC 3.5 ADCMUX ​编辑 4 ADC编程 1 ADC 简介 ADC(Analog to Digital Converter)即…

Android开发,JNI开发项目创建

文章目录 Android开发,JNI开发项目创建1.jni是什么 Android开发,JNI开发项目创建 创建工程 1.jni是什么 使得java可以访问底层c语言,java本地化接口,是桥梁。 运行下我们的项目 出现这个就是我们的JNI开发环境已经配置好了 是…

【SpringBoot】SpringBoot配置Swagger

文章目录 前言配置步骤使用步骤总结 前言 使用Swagger只需要按照规范去定义接口及接口的相关信息,就可以做到生成接口文档和在线接口调试页面 官网:Swagger官网 Knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案 配置步骤 1.导入knife4j的m…

shell命令编写

1. 1 #!/bin/bash 2 3 directory_path"/txh"4 5 # 使用 find 命令查找指定路径下的文件,并使用 wc 命令统计行数(即文件个数)6 7 file_count$(find "directory_path" -type f | wc -l)8 9 10 echo "在路径$director…

网工学习5 交换机端口相关配置

交换机的接口属性默认支待一般网络环境,一般情况下是不需要对其接口进行设置的。在某些情况下需 要对其端口属性进行配置时,配置的对象主要有接口隔离、速率、双工等信息。 5.1 接口隔离设置 > 配置接口 GE0/0/1 和 GE0/0/2 的接口隔离功能&#xf…

Leetcode1094. 拼车

Every day a Leetcode 题目来源:1094. 拼车 解法1:差分数组 对于本题,设 a[i] 表示车行驶到位置 i 时车上的人数。我们需要判断是否所有 a[i] 都不超过 capacity。 trips[i] 相当于把 a 中下标从 fromi 到 toi−1 的数都增加 numPassenge…

【ArcGIS Pro微课1000例】0045:深度学习--车牌模糊

借助ArcGIS Pro提供的车牌模糊训练模型,可以很方便实现车牌模糊。 文章目录 一、车牌模糊对比二、工具介绍三、案例实现一、车牌模糊对比 车牌模糊前: 车牌模糊后: 二、工具介绍 本功能使用的依然是ArcGIS Pro提供的深度学习工具中的使用深度学习分类像素(Classify Pixel…

JavaScript基础知识20——循环结构:退出循环

哈喽,大家好,我是雷工! 最近一段时间没学习JavaScript,今天看数字孪生的资料,发现很多低代码开发还是得必须熟悉JavaScript才行,为了以后方便搞数字孪生,有时间还是继续学习下JavaScript。 以下…

如何开启Windows Server 2016 远端桌面

使用GUI 设定 服务器管理器–> 本地服务器–> 远端桌面 启用远端桌面 远端–> 允许远端连线至此电脑 会提示防火墙设定跟电源设定 防火墙之前已经关闭了 完成

matlab 多目标粒子群优化算法MOPSO

1、内容简介 略 21-可以交流、咨询、答疑 多目标、粒子群 2、内容说明 多目标粒子群优化算法MOPSO 3、仿真分析 略 %% Problem Definition TestProblem3; % Set to 1, 2, or 3 switch TestProblem case 1 CostFunction(x) MyCost1(x); nVar5; …

数据库管理-第120期 初探Halo数据库(202301201)

数据库管理-第120期 初探Halo数据库(202301201) 12月份正好也是第120期,新的一篇文章,尝试一条新的路线。其实吧,Halo(羲和)这个数据库我较早时间就听说过(早于今年DTCC&#xff0c…

时序预测 | Python实现LSTM长短期记忆神经网络时间序列预测(多图,多指标)

时序预测 | Python实现LSTM长短期记忆神经网络时间序列预测(多图,多指标) 目录 时序预测 | Python实现LSTM长短期记忆神经网络时间序列预测(多图,多指标)预测效果基本介绍环境准备程序设计参考资料预测效果 基本介绍 LSTM是一种递归神经网络(RNN)的变体

HCIP —— OSPF 综合实验

实验拓扑: 实验要求: 1,R4为ISP,其上只能配置IP地址;R4与其他所有直连设备间均使用公有IP 2,R3-R5/6/7为MGRE环境,R3为中心站点; 3,整个OSPF环境IP基于172.16.0.0/16划分…

如何从 Jira 成功迁移到极狐GitLab,看这个就够了!

内容来源:https://about.gitlab.com/blog 作者:Melissa Ushakov Atlassian 之前表示,到 2024 年 2 月会全面终止对于其服务器端产品的支持。 随着 Jira Server 的生命周期即将结束,众多组织都在考虑将其敏捷项目管理工具从Jira 迁…

van-list的onload事件多次触发的问题

一、问题描述 如图所示,页面刷新的时候,调了3次接口(总共27条数据,我分页10条),一直莫名奇妙的 我期望是默认加载第一页,然后我上拉的时候再push第二页的数据 二、解决方法 还是要多看文档 1…

彻底解决ModuleNotFoundError: No module named ‘exceptions‘【Bug完美解决】

文章目录 项目场景:问题描述原因分析:解决方案:此Bug解决方案总结心得项目场景: 根据本文可找到bug原因并彻底解决**ModuleNotFoundError: No module named ‘exceptions‘**Bug 报错: E:\Anconda\python.exe c:\Users\24190\PycharmProjects\pythonProject4py尝试 gong…

RK3568平台开发系列讲解(Linux系统篇) dtb 到 device_node 的转化

🚀返回专栏总目录 文章目录 一、dtb 展开流程二、dtb 解析过程源码分析沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍通过设备树 dtb 如何展开成 device_node 一、dtb 展开流程 设备树源文件编写: 根据设备树的基本语法和相关知识编写符合规范的设备树。…

c# OpenCV 读取、显示和写入图像(二)

读取、显示和写入图像是图像处理和计算机视觉的基础。即使在裁剪、调整大小、旋转或应用不同的滤镜来处理图像时,您也需要先读取图像。因此,掌握这些基本操作非常重要。 imread()读取图像imshow()在窗口中显示图像imwrite()将图像保存到文件目录里 我们…

YOLOV7改进:在C5模块不同位置添加SegNext_Attention

1.该文章属于YOLOV5/YOLOV7/YOLOV8改进专栏,包含大量的改进方式,主要以2023年的最新文章和2022年的文章提出改进方式。 2.提供更加详细的改进方法,如将注意力机制添加到网络的不同位置,便于做实验,也可以当做论文的创新点。 3.涨点效果:SegNext_Attention注意力机制,实现…