import numpy as np
import matplotlib.pyplot as plt
gamma = 2.2
x = np.arange(0, 256, 1)
y1= 255 / (pow(255,gamma)) * (pow(x,gamma))
y2= 255 / (pow(255,1/gamma)) * (pow(x,1/gamma))
y3=x
# y2=pow(x,gamma)
# plt.subplot(2,2,1)
plt.plot(y2,'b',label='gamma = 1/2.2')
plt.plot(y1,'r',label='gamma = 2.2')
plt.plot(y3,'--',)
plt.xlabel('Input illuminance')
plt.ylabel('Out illuminance')
plt.title('Gamma correction')
plt.legend()
plt.savefig('gamma_curve.png')
plt.show()
# plt.figure(1)
# plt.subplot(2, 2, 1)
# plt.plot(a) # 原始
#
# b = ((a + 0.5) / 256)
# plt.subplot(2, 2, 2)
# plt.plot(b) # 归一化
#
# c = pow(b, 1 / gamma)
# plt.subplot(2, 2, 3)
# plt.plot(c) # 校正
#
# d = c * 256 - 0.5
# plt.subplot(2, 2, 4)
# plt.plot(d) # 反归一化
# plt.show()
效果: