1 亮度和對比度
亮度:圖像像素的整體強度,亮度提高就是所有的像素加一個固定值。
? ? ?
對比度:當對比度提高時,圖像的暗部與亮部的差值會變大。


OpenCV調整圖像亮度和對比度的公式使用一個:
代碼實踐步驟:圖片輸入→亮度變換→圖片輸出
1.1 亮度變換
亮度:主要通過β控制,在虛擬仿真實驗中控制范圍是[-100,100],如果是彩色圖像,則會同時應用在每個通道的數值上。
圖像原圖:1.jpg
import cv2
import numpy as npif __name__ == '__main__':# 1. 圖片輸入path = '1.jpg'image_np = cv2.imread(path)# 2. 亮度變換# 公式:g(i,j) = α * f(i,j) + β# β控制亮度alpha = 1.0 # 先不管對比度beta = -100 # 虛擬仿真限制在 [-100到100],實際可超過這個范圍# 截取,可以保證數據的上下限pix = np.clip((alpha * image_np + beta), # 要處理的原始圖像數據0, # 下限,低于此數值會被改為此數值255 # 上限,高于此數值會被改為此數值)print(pix)print(pix.dtype) # int16# 16位轉8位pix = np.uint8(pix)# 5. 圖像輸出cv2.imshow('pix', pix)cv2.imwrite('pix_1.jpg', pix)cv2.waitKey(0)
代碼運行結果:pix_1.jpg? ?(對比,右為pix_1.jpg)
??
圖像亮度變換可能會改變彩色圖片通道的平衡,因此實際使用時需要慎重,可以轉換為灰度調節改善此問題。
1.2 對比度變換
在對比度變換的過程中,需要同時考慮α和β的數值。
α
是對比度變換的主要因素,當α大于1時,圖像的對比度增加,因為圖像之間的亮度差異變大了;當α位于0到1之間時,圖像的對比度減小,因為像素之間的亮度差異變小了。
β
雖然β主要用于調節亮度,但是在調節對比度的時候,它也作為一個輔助因素,起到間接作用。β可以在α調節后,平移像素值,使畫面亮度恢復均衡。
對比度提升是一種圖像增強的手段,有助于增加梯度值,可以用于邊緣檢測。
原圖同上:1.jpg
import cv2
import numpy as npif __name__ == '__main__':# 1. 圖片輸入path = '1.jpg'image_np = cv2.imread(path)# 2. 亮度變換# 公式:g(i,j) = α * f(i,j) + βalpha = 1.5 # 對比度beta = -100 # 虛擬仿真限制在 [-100到100],實際可超過這個范圍# 截取,可以保證數據的上下限pix = np.clip((alpha * image_np + beta), # 要處理的原始圖像數據0, # 下限,低于此數值會被改為此數值255 # 上限,高于此數值會被改為此數值)print(pix)print(pix.dtype) # int16# 16位轉8位pix = np.uint8(pix)# 5. 圖像輸出cv2.imshow('pix', pix)cv2.imwrite('pix_2.jpg', pix)cv2.waitKey(0)
代碼運行:pix_2.jpg??(對比,右為pix_2.jpg)
? ??