一. 伽馬校正簡介:
伽馬校正用來對照相機等電子設備傳感器的非線性光電轉換特性進行校正。如果圖像原樣顯示在顯示器等上,畫面就會顯得很暗。伽馬校正通過預先增大 RGB 的值來排除影響,達到對圖像校正的目的。

伽馬校正做了什么 ↑
二. 伽馬校正算法:
非線性變換是由下式引起的,其中I_in和I_out 被歸一化,限定在 [0,1] 范圍內,c是常數,g為伽馬變量,通常取 2.2。

該式引起非線性變換 ↑
我們只需要進行上面非線性變換的逆變換就可以進行伽馬校正了,伽馬校正式子如下:

伽馬校正算法 ↑
三. 伽馬校正python實現,其中c=1,g=2.2
1 import cv2 2 import numpy as np 3 import matplotlib.pyplot as plt 4 5 # gamma correction 6 def gamma_correction(img, c=1, g=2.2): 7 out = img.copy() 8 out /= 255. 9 out = (1/c * out) ** (1/g) 10 11 out *= 255 12 out = out.astype(np.uint8) 13 14 return out 15 16 # Read image 17 img = cv2.imread("../paojie.jpg").astype(np.float) 18 # Gammma correction 19 out = gamma_correction(img) 20 # Save result 21 cv2.imshow("result", out) 22 cv2.imwrite("out.jpg", out) 23 cv2.waitKey(0) 24 cv2.destroyAllWindows()
四. 實驗結果:

原圖 ↑

伽馬校正后 ↑
說白了,照相機等電子設備傳感器在成像時會使得圖像變暗,變得不真實,我們采用伽馬校正來校正圖像,使得圖像明亮真實。
五. 參考內容: