個人怎么做課程網(wǎng)站seo權(quán)重是什么意思
基于Python的OpenCV基礎(chǔ)入門——圖像直方圖
- 直方圖
- 圖像直方圖
- 圖像直方圖代碼以及實現(xiàn)效果
直方圖
直方圖是一種用于描述圖像亮度分布的統(tǒng)計工具。它將圖像的像素亮度值按照不同的亮度等級進行計數(shù),并以直方圖的形式呈現(xiàn)出來。圖像直方圖可以顯示圖像中每個亮度級別的像素數(shù)量,從而用于分析圖像的亮度分布情況。
圖像直方圖
hist = cv2.calcHist([img], [channels], Mask, [histSize], ranges)
參數(shù):
[img]: 必須用方括號括起來,表示被計算的圖像,可以是多幅。
[channels]: 用于計算直方圖的通道,這里使用灰度圖計算直方圖,所以就直接使用第一個通道,多幅圖像相當于多通道;
Mask: 與原圖維度相同,被計算的區(qū)域,1 計算,0 不計算,不使用該參數(shù)用 None。
[histSize]: 表示這個直方圖分成多少份(即多少個直方柱的數(shù)量)。
ranges: 表示直方圖中各個像素的值,[0.0, 256.0]表示直方圖能表示像素值從 0.0 到 256 的像素。
圖像直方圖代碼以及實現(xiàn)效果
import cv2
import matplotlib.pyplot as pltimg = cv2.imread("img/cat.jpg") img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #將BGR 格式轉(zhuǎn)換為RGB 格式 # 繪制圖像直方圖
plt.subplot(2,1,1) # 2 * 1布局的 上面
hist1=plt.hist(img.ravel(), 256, [0, 256]) #numpy 的ravel 函數(shù)功能是將多維數(shù)組降為一維數(shù)組 # 畫三通道圖像的折線圖
plt.subplot(2,1,2)
color = ('b', 'g', 'r') #這里畫筆顏色的值可以為大寫或小寫或只寫首字母或大小寫混合
for i , color in enumerate(color): hist = cv2.calcHist([img], [i], None, [256], [0, 256]) #計算直方圖 plt.plot(hist, color) plt.xlim([0, 256]) plt.show()
圖像直方圖的實現(xiàn)效果如下: