灰度實驗
????????將彩色圖像轉換為灰度圖像的過程稱為灰度化,這種做法在圖像處理和計算機視覺領域非常常見。
????????灰度圖與彩色圖最大的不同就是:彩色圖是由R、G、B三個通道組成,而灰度圖只有一個通道,也稱為單通道圖像,所以彩色圖轉成灰度圖的過程本質上就是將R、G、B三通道合并成一個通道的過程。本實驗中一共介紹了三種合并方法,分別是最大值法、平均值法以及加權均值法。
1.灰度圖
????????每個像素只有一個采樣顏色的圖像,這類圖像通常顯示為從最暗黑色到最亮的白色的灰度,盡管理論上這個采樣可以任何顏色的不同深淺,甚至可以是不同亮度上的不同顏色。灰度圖像與黑白圖像不同,在計算機圖像領域中黑白圖像只有黑色與白色兩種顏色;但是,灰度圖像在黑色與白色之間還有許多級的顏色深度。灰度圖像經常是在單個電磁波頻譜如可見光內測量每個像素的亮度得到的,用于顯示的灰度圖像通常用每個采樣像素8位的非線性尺度來保存,這樣可以有256級灰度。
2.最大值法
????????對于彩色圖像的每個像素,它會從R、G、B三個通道的值中選出最大的一個,并將其作為灰度圖像中對應位置的像素值。
????????例如某圖像中某像素點的像素值如上圖所示,那么在使用最大值法進行灰度化時,就會從該像素點對應的RGB通道中選取最大的像素值作為灰度值,所以在灰度圖中的對應位置上,該像素點的像素值就是121。
示例:
import cv2 as cv
import numpy as np# 讀取圖像
pig = cv.imread('../images/pig.png')
shape = pig.shape # (h, w, c)
img = np.zeros((shape[0], shape[1]), dtype='uint8')
# 循環遍歷每一行img[0,0,0]
for i in range(shape[0]): # [0,0][0,1][0,2][1,0]for j in range(shape[1]):img[i, j] = max(pig[i, j, 0], pig[i, j, 1], pig[i, j, 2])cv.imshow('最大值', img)
cv.waitKey(0)
cv.destroyAllWindows()
結果如圖:
3.平均值法
????????對于彩色圖像的每個像素,它會將R、G、B三個通道的像素值全部加起來,然后再除以三,得到的平均值就是灰度圖像中對應位置的像素值。
?????????例如某圖像中某像素點的像素值如上圖所示,那么在使用平均值進行灰度化時,其計算結果就是(91+121+46)/3=86(對結果進行取整),所以在灰度圖中的對應位置上,該像素點的像素值就是86。
示例:
import cv2 as cv
import numpy as np# 讀取圖像
pig = cv.imread('../images/pig.png')
shape = pig.shape # (h, w, c)
img = np.zeros((shape[0], shape[1]), dtype='uint8')
# 循環遍歷每一行img[0,0,0]
for i in range(shape[0]): # [0,0][0,1][0,2][1,0]for j in range(shape[1]):# int():轉化為更大數據類型,防止溢出img[i, j] = (int(pig[i, j, 0]) + int(pig[i, j, 1]) + int(pig[i, j, 2])) // 3cv.imshow('平均值', img)
cv.waitKey(0)
cv.destroyAllWindows()
結果如下:
?4.加權平均值法
????????對于彩色圖像的每個像素,它會按照一定的權重去乘以每個通道的像素值,并將其相加,得到最后的值就是灰度圖像中對應位置的像素值。本實驗中,權重的比例為: R乘以0.299,G乘以0.587,B乘以0.114,這是經過大量實驗得到的一個權重比例,也是一個比較常用的權重比例。
????????所使用的權重之和應該等于1。這是為了確保生成的灰度圖像素值保持在合理的亮度范圍內,并且不會因為權重的比例不當導致整體過亮或過暗。
?????????例如某圖像中某像素點的像素值如上圖所示,那么在使用加權平均值進行灰度化時,其計算結果就是10*0.299+121*0.587+46*0.114=79。所以在灰度圖中的對應位置上,該像素點的像素值就是79。
示例
?5.兩個極端的灰度值
????????在灰度圖像中,“極端”的灰度值指的是亮度的兩個極端:最暗和最亮的值。
最暗的灰度值:0。這代表完全黑色,在灰度圖像中沒有任何亮度。
最亮的灰度值:255。這代表完全白色,在灰度圖像中具有最大亮度。
總結
????????灰度圖作為單通道圖像,通過將彩色圖的 R、G、B 三通道信息合并為單一通道實現,其像素值范圍通常為 0-255(8 位存儲),包含從黑到白的多級灰度,區別于僅含黑白兩色的黑白圖像。
三種灰度化方法各有特點:
- 最大值法:取每個像素 R、G、B 三通道中的最大值作為灰度值,操作簡單但可能導致圖像偏亮;
- 平均值法:計算三通道值的算術平均值作為灰度值,能均衡保留亮度信息,但未考慮人眼對不同顏色的敏感度差異;
- 加權均值法:按 R=0.299、G=0.587、B=0.114 的權重計算加權和(權重和為 1),因貼合人眼對綠色更敏感、對藍色較遲鈍的特性,是應用最廣泛的方法,能生成更符合視覺感知的灰度圖。
????????此外,文中還提及灰度圖的兩個極端值 ——0(最暗黑色)和 255(最亮白色),它們是灰度范圍的邊界,決定了圖像的明暗對比上限。
????????通過本文的實驗與解析,可清晰理解不同灰度化方法的原理及適用場景,為后續圖像處理(如特征提取、邊緣檢測)奠定基礎。