cv2小记——直方图的计算,绘制与分析
发布日期:2021-06-30 15:01:45
浏览次数:2
分类:技术文章
本文共 1679 字,大约阅读时间需要 5 分钟。
# coding: utf-8 # !/usr/bin/python"""@File : 直方图的计算,绘制与分析.py@Author : jiaming@Modify Time: 2020/2/6 14:35 @Contact : https://blog.csdn.net/weixin_39541632@Version : 1.0@Desciption : 计算直方图 绘制直方图 cv2.calcHist() np.histogram()"""import osimport sysimport numpy as npimport cv2import pprintfrom matplotlib import pyplot as pltrawPath = os.path.abspath(__file__)currentFile = os.path.basename(sys.argv[0])dataPath = rawPath[:rawPath.find(currentFile)] + r'static\\'
直方图
"""直方图通过直方图你可以对整幅图像的灰度分布有一个整体的了解。x 轴是灰度值(0-255) y 轴是图片中具有同一个灰度值的点的数目。"""
统计直方图
"""统计直方图使用 openCV 提供的函数 cv2.calcHist 可以帮助我们统计一幅图像的直方图。cv2.calcHist(images, channels, mask, histSize, ranges, [,hist,[,accumulate]])images: 原图像 uint8 float32 [img]channels: 需要使用中括号括起来,它会告诉函数我们要统计哪副图像的直方图。灰度图:[0] 彩色图像的色彩通道:[0],[1],[2]mask:掩模图像 要统计整幅图像的直方图就设置为 NonehistSize: BIN的数目 [256], BINS:如果想知道某个灰度范围内像素点的数目,就可以将[0, 256]进行分组,取 每组的总和,每一个小组称为 BINranges: 像素值的范围 通常为[0, 256]"""img = cv2.imread(dataPath+'big_500.png', 0)hist = cv2.calcHist([img], [0], None, [256], [0, 256])# 使用 numpy 中的函数 np.histogram() 也可以帮我们统计直方图# img.ravel() 将图像转成一维数组hist, bins = np.histogram(img.ravel(), 256, [0, 256])# openCV 的函数要比 np.histgram() 快 40 倍。
绘制直方图
"""绘制直方图"""img = cv2.imread(dataPath+'big_500.png', 0)plt.hist(img.ravel(), 256, [0, 256])plt.show()
显示多通道直方图
"""显示多通道直方图"""img = cv2.imread(dataPath+'big_500.png')color = ('b', 'g', 'r')for i, col in enumerate(color): histr = cv2.calcHist([img], [i], None, [256], [0, 256]) plt.plot(histr, color=col) plt.xlim([0, 256])plt.show()
使用掩模
"""使用掩模要统计图像某个局部区域的直方图只需要构建一副掩模图像。将要统计的 部分设置为白色,其余部分为黑色,就构成了一副掩模图像。"""
转载地址:https://jiaming.blog.csdn.net/article/details/104196837 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2024年04月06日 21时43分29秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java Lambda表达式的应用--Stream API操作集合框架
2019-04-30
Myslq连接(JDBC)url属性的参数的设置
2019-04-30
关于Spring MVC与前端的交互
2019-04-30
大厂经典面试题:Redis为什么这么快?
2019-04-30
Android之Retrofit基本用法篇
2019-04-30
Netty与网络协议资料整理
2019-04-30
golang实现大数据量文件的排序
2019-04-30
golang中的time包
2019-04-30
2019NOIP D4题 加工领奖
2019-04-30
2021.5.19 JS高级第二天
2019-04-30
SpringBoot内置Tomcat配置参数
2019-04-30
ubuntu 快捷键
2019-04-30
linux 根目录下文件夹分析
2019-04-30
linux 查看分区和文件大小
2019-04-30
Not using PCAP_FRAMES 解释(snort中)
2019-04-30
技术转管理?这些“坑”你要绕道走
2019-04-30
领域驱动设计(DDD)前夜:面向对象思想
2019-04-30
Camera驱动调试小记
2019-04-30
四线触摸屏原理
2019-04-30