Matplotlib中画灰度和彩色的直方图效果的代码是什么

Admin 2022-06-24 群英技术资讯 339 次浏览

这篇文章主要讲解了“Matplotlib中画灰度和彩色的直方图效果的代码是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Matplotlib中画灰度和彩色的直方图效果的代码是什么”吧!

一、Matplotlib.Pyplot简介

1、Matplotlib

Matplotlib 是 Python 的绘图库,它能让使用者很轻松地将数据图形化,并且提供多样化的输出格式。

Matplotlib 可以用来绘制各种静态,动态,交互式的图表。

Matplotlib 是一个非常强大的 Python 画图工具,我们可以使用该工具将很多数据通过图表的形式更直观的呈现出来。

Matplotlib 可以绘制线图、散点图、等高线图、条形图、柱状图、3D 图形、甚至是图形动画等等。

2、Pyplot

Pyplot 是 Matplotlib 的子库,提供了和 MATLAB 类似的绘图 API。

Pyplot 是常用的绘图模块,能很方便让用户绘制 2D 图表。

Pyplot 包含一系列绘图函数的相关函数,每个函数会对当前的图像进行一些修改,例如:给图像加上标记,生新的图像,在图像中产生新的绘图区域等等。

使用的时候,我们可以使用 import 导入 pyplot 库,并设置一个别名 plt:

import matplotlib.pyplot as plt

然后我们就可以使用它来绘制图形了

二、灰度直方图

1、主要函数

主要用到两个函数

(1) calcHist()

(2) hist()

具体用法我就不做过多介绍了,可以自行参考文档,或者找一找网上大神们的解释说明。

2、实现代码

import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt

img = cv.imread('Photos/1.bmp')
cv.imshow('Img', img)

gray_img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
cv.imshow('GrayImg', gray_img)

# Gray Histogram
gray_hist = cv.calcHist([gray_img], [0], None, [256], [0,256], False)
# cv.calcHist(images, channels, mask, histSize, ranges, accumulate)

plt.figure(1)
plt.title('Gray Histogram Contour')
plt.xlabel('gray level')
plt.ylabel('number of pixels')
plt.plot(gray_hist)
plt.xlim([0,256])

plt.figure(2)
plt.title('Gray Histogram')
plt.xlabel('gray level')
plt.ylabel('number of pixels')
plt.hist(gray_img.ravel(),256)

plt.show()

cv.waitKey(0)

3、效果示例

三、彩色直方图

跟灰度直方图的原理差不多,需要对三种颜色进行一个简单的遍历,循环输出图形。

1、实现代码

import cv2 as cv
import matplotlib.pyplot as plt
import numpy as np

img = cv.imread('Photos/1.bmp')
cv.imshow('Img', img)

plt.figure()
plt.title('Color Histogram')
plt.xlabel('level')
plt.ylabel('number of pixels')
colors = ('b', 'g', 'r')
for i,item in enumerate(colors):
    hist = cv.calcHist([img], [i], None, [256], [0,256])
    plt.plot(hist, color=item)
    plt.xlim([0,256])

plt.show()

cv.waitKey(0)

2、效果示例

由此图我们可以直观地看出三种颜色不同阈值所出现的频率的大小。 


关于“Matplotlib中画灰度和彩色的直方图效果的代码是什么”就介绍到这了,如果大家觉得不错可以参考了解看看,如果想要了解更多,欢迎关注群英网络,小编每天都会为大家更新不同的知识。 群英智防CDN,智能加速解决方案

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。

猜你喜欢

成为群英会员,开启智能安全云计算之旅

立即注册
专业资深工程师驻守
7X24小时快速响应
一站式无忧技术支持
免费备案服务
免费拨打  400-678-4567
免费拨打  400-678-4567 免费拨打 400-678-4567 或 0668-2555555
在线客服
微信公众号
返回顶部
返回顶部 返回顶部
在线客服
在线客服