python图像处理之直⽅图绘制
上⼀次我们介绍了通过python将图像进⾏灰度化,这⼀次我们来介绍如何通过python进⾏图像直⽅图的绘制,这⼀次我们要借助于python中的matplotlib库。
预备知识
何为直⽅图
图像直⽅图是对图像像素分布情况的图形表⽰,⽐如我们可以统计像素为0的点有多少个,像素为1的点有多少个…然后将统计情况⽤图形表⽰出来即为直⽅图,当然我们也可以根据需要统计区间内的分布情况,⽐如像素在0到100内的像素点的个数等等。
matplotlib
matplotlib库是python第三⽅库,可以完成绘制各种图形以及数据可视化的任务。在绘制直⽅图时,我们使⽤pyplot⼦模块中的hist函数。下⾯我们先简要介绍该函数的使⽤,这样在下⾯就可以直接使⽤了。
plt.hist(a,num_bins)
a:数据列表
num_bins:要分成的组数
简⽽⾔之,对于图⽚⽽⾔,第⼀个参数就是所有像素点的取值情况,第⼆个参数就是我们打算把这些像素值分为⼏组,这个函数也可⽤于⼀般的直⽅图绘制,注意第⼀个参数应该为numpy数组类型。
开始绘制
⼀般⽽⾔我们都是对于灰度图进⾏直⽅图的绘制,因此我们先要进⾏灰度化操作,还需要注意的是不能直接将⼀张图⽚读取后直接作
为hist函数的第⼀个参数,要先将其转化为⼀个⼀维的数组。
中途岛级>东四民芳下⾯我们来看代码。
⾸先导⼊需要的库:
import numpy as np
复方红豆杉import cv2 as cv
import matplotlib.pyplot as plt
随后读⼊图⽚并进⾏灰度化操作,这⾥⽅便起见我们直接调⽤opencv⾃带的函数。
path_1 = 'work2data/guazi.bmp'
img_1 = cv.imread(path_1)
img_1_gray = cv.cvtColor(img_1, cv.COLOR_RGB2GRAY)服务公约>春天的故事歌曲
深的海接下来我们定义直⽅图绘制的函数
def histogram(img):
img = shape(-1) #将图像展开成⼀个⼀维的numpy数组
plt.hist(img, 128) #将数据分为128组
周易如何算卦
plt.show()
我们通过语句调⽤这个函数就可以完成直⽅图绘制,效果如下图所⽰。
图像直⽅图的绘制还可以通过numpy和opencv中的函数来完成,可以看这篇blog:本次分享就到这⾥,感谢阅读!
藏北草原