您好,登錄后才能下訂單哦!
Matplotlib 是 Python 的繪圖庫,它能讓使用者很輕松地將數據圖形化,并且提供多樣化的輸出格式。
Matplotlib 可以用來繪制各種靜態,動態,交互式的圖表。
Matplotlib 是一個非常強大的 Python 畫圖工具,我們可以使用該工具將很多數據通過圖表的形式更直觀的呈現出來。
Matplotlib 可以繪制線圖、散點圖、等高線圖、條形圖、柱狀圖、3D 圖形、甚至是圖形動畫等等。
Pyplot 是 Matplotlib 的子庫,提供了和 MATLAB 類似的繪圖 API。
Pyplot 是常用的繪圖模塊,能很方便讓用戶繪制 2D 圖表。
Pyplot 包含一系列繪圖函數的相關函數,每個函數會對當前的圖像進行一些修改,例如:給圖像加上標記,生新的圖像,在圖像中產生新的繪圖區域等等。
使用的時候,我們可以使用 import 導入 pyplot 庫,并設置一個別名 plt:
import matplotlib.pyplot as plt
然后我們就可以使用它來繪制圖形了
主要用到兩個函數
(1) calcHist()
(2) hist()
具體用法我就不做過多介紹了,可以自行參考文檔,或者找一找網上大神們的解釋說明。
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)
跟灰度直方圖的原理差不多,需要對三種顏色進行一個簡單的遍歷,循環輸出圖形。
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)
由此圖我們可以直觀地看出三種顏色不同閾值所出現的頻率的大小。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。