当前位置: 首页 > news >正文

如何绘制出图像的色素分布直方图

效果

如图,可以展示出我们的图像的颜色分布直方图,表明的图像的亮和暗

实现可视化色素分布直方图方法

这里我们对我们的灰色图片和彩色图片进行了直方图显示

import cv2
import matplotlib.pyplot as plt
image = cv2.imread("test.jpg")
# 彩色图片->灰色图片
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# cv2.calcHist([图像], [通道数(灰度图是0)], mask(掩码图像,为none即可), histSize(bines数量), [ranges(像素范围)])
# histSize(bines数量) 表示的是横坐标尺寸
hist1 = cv2.calcHist([gray], [0], None, [256], [0, 256])
hist2 = cv2.calcHist([image], [2], None, [256], [0, 256])
plt.plot(hist1, color='b')
plt.plot(hist2, color='r')
plt.show()

注意:记得下载

matplotlib包

上面代码里面的color='b'表示我们的直方图是蓝色的,这里可以用b代表blue

plt.plot(hist1, color='b', label='hist1')

运行结果

会出现这样一个程序

显示的直方图

扩展:给我们的直方图加上名字!

import cv2
import matplotlib.pyplot as plt
image = cv2.imread("test.jpg")
# 彩色图片->灰色图片
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# cv2.calcHist([图像], [通道数(灰度图是0)], mask(掩码图像,为none即可), histSize(bines数量), [ranges(像素范围)])
# histSize(bines数量) 表示的是横坐标尺寸
hist1 = cv2.calcHist([gray], [0], None, [256], [0, 256])
hist2 = cv2.calcHist([image], [2], None, [256], [0, 256])
plt.plot(hist1, color='b',label='hist1')
plt.plot(hist2, color='r',label='hist2')
plt.legend()
plt.show()

加入了

plt.legend()
plt.plot里面加入了laber属性

效果:

相关文章:

  • 【python 的各种模块】(9) 在python使用PIL( 即pillow模块 ) 修改图片
  • Python 语法糖
  • Jmeter的文件参数化:CSV数据文件设置和_CSVRead函数
  • 基于python舆情分析可视化系统+情感分析+爬虫+机器学习(源码)✅
  • JS tostring()和join()方法
  • 将 RxJava 的 Observable 转换为 Reactor 的 Flux流
  • Java基础-Java基础-笔记
  • 黑马程序员 Docker笔记
  • 基于云平台技术的GPS定位的浅谈
  • 【JVM】常用命令
  • 鸿蒙OS4.0兼容性测试
  • three.js 点按钮,相机飞行靠近观察设备
  • VC++中使用OpenCV读取图像、读取本地视频、读取摄像头并实时显示
  • 2024年美赛数学建模思路 - 复盘:校园消费行为分析
  • [zabbix] zabbix监控其他
  • 【许晓笛】 EOS 智能合约案例解析(3)
  • E-HPC支持多队列管理和自动伸缩
  • extract-text-webpack-plugin用法
  • Java 最常见的 200+ 面试题:面试必备
  • MYSQL 的 IF 函数
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • node学习系列之简单文件上传
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • use Google search engine
  • vue 个人积累(使用工具,组件)
  • vuex 学习笔记 01
  • 初识 webpack
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 驱动程序原理
  • 使用Gradle第一次构建Java程序
  • 使用Swoole加速Laravel(正式环境中)
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 小程序测试方案初探
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 找一份好的前端工作,起点很重要
  • 追踪解析 FutureTask 源码
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • #Java第九次作业--输入输出流和文件操作
  • #stm32整理(一)flash读写
  • #图像处理
  • $jQuery 重写Alert样式方法
  • (2)nginx 安装、启停
  • (23)Linux的软硬连接
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (十五)使用Nexus创建Maven私服
  • (万字长文)Spring的核心知识尽揽其中
  • (转)jQuery 基础
  • ***详解账号泄露:全球约1亿用户已泄露
  • *Django中的Ajax 纯js的书写样式1
  • .helper勒索病毒的最新威胁:如何恢复您的数据?
  • .NET Core WebAPI中使用Log4net 日志级别分类并记录到数据库