gamma矫正公式:
output = input^r
input的取值范围为[0,1],因为如果为0-255,对输入图像进行指数运算时很容易达到255,然后需要截断操作,就失去gamma变换的意义。
从上图中可以看出,gamma变换实际上就是一种将图像的像素值进行非线性处理的技术。
下面附上非常简短的python实现代码:
import cv2
import numpy as np
src = cv2.imread('./gamma.jpg', 0)
r1 = 1/2.2
r2 = 2.2
result_r1 = ((src/float(np.max(src)))**r1)
result_r2 = ((src/float(np.max(src)))**r2)
cv2.imshow('src', src)
cv2.imshow('result_r1', result_r1)
cv2.imshow('result_r2', result_r2)
cv2.waitKey(0)
参考文献1
参考文献2
参考文献3