Python?matplotlib繪制灰度和彩色直方圖
一、Matplotlib.Pyplot簡介
1、Matplotlib
Matplotlib 是 Python 的繪圖庫,它能讓使用者很輕松地將數(shù)據(jù)圖形化,并且提供多樣化的輸出格式。
Matplotlib 可以用來繪制各種靜態(tài),動態(tài),交互式的圖表。
Matplotlib 是一個非常強大的 Python 畫圖工具,我們可以使用該工具將很多數(shù)據(jù)通過圖表的形式更直觀的呈現(xiàn)出來。
Matplotlib 可以繪制線圖、散點圖、等高線圖、條形圖、柱狀圖、3D 圖形、甚至是圖形動畫等等。
2、Pyplot
Pyplot 是 Matplotlib 的子庫,提供了和 MATLAB 類似的繪圖 API。
Pyplot 是常用的繪圖模塊,能很方便讓用戶繪制 2D 圖表。
Pyplot 包含一系列繪圖函數(shù)的相關(guān)函數(shù),每個函數(shù)會對當(dāng)前的圖像進行一些修改,例如:給圖像加上標(biāo)記,生新的圖像,在圖像中產(chǎn)生新的繪圖區(qū)域等等。
使用的時候,我們可以使用 import 導(dǎo)入 pyplot 庫,并設(shè)置一個別名 plt:
import matplotlib.pyplot as plt
然后我們就可以使用它來繪制圖形了
二、灰度直方圖
1、主要函數(shù)
主要用到兩個函數(shù)
(1) calcHist()

(2) hist()

具體用法我就不做過多介紹了,可以自行參考文檔,或者找一找網(wǎng)上大神們的解釋說明。
2、實現(xiàn)代碼
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、效果示例




三、彩色直方圖
跟灰度直方圖的原理差不多,需要對三種顏色進行一個簡單的遍歷,循環(huán)輸出圖形。
1、實現(xiàn)代碼
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、效果示例

由此圖我們可以直觀地看出三種顏色不同閾值所出現(xiàn)的頻率的大小。?
到此這篇關(guān)于Python matplotlib繪制灰度和彩色直方圖的文章就介紹到這了,更多相關(guān)Python matplotlib繪制直方圖內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用pandas實現(xiàn)對數(shù)據(jù)進行特定排序
在數(shù)據(jù)分析和處理過程中,排序是一項常見而重要的操作,本文將詳細介紹如何利用pandas對數(shù)據(jù)進行特定排序,包括基本排序、多列排序、自定義排序規(guī)則等方面的內(nèi)容,需要的可以了解下2024-03-03
keras.layers.Conv2D()函數(shù)參數(shù)用法及說明
這篇文章主要介紹了keras.layers.Conv2D()函數(shù)參數(shù)用法及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02
Python可視化mhd格式和raw格式的醫(yī)學(xué)圖像并保存的方法
今天小編就為大家分享一篇Python可視化mhd格式和raw格式的醫(yī)學(xué)圖像并保存的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
Python實現(xiàn)基本Socket服務(wù)端與客戶端通信的完整代碼
這篇文章主要介紹了Python實現(xiàn)基本Socket服務(wù)端與客戶端通信,分步詳解與完整代碼都有,按需所求即可,對Python Socket服務(wù)端與客戶端通信相關(guān)知識感興趣的朋友一起看看吧2023-06-06

