让原图像在除以255后,进行一个指数运算,再乘255。
import cv2
import numpy as np
img0=cv2.imread('an.jpg',cv2.IMREAD_REDUCED_COLOR_2 )
img=cv2.imread('an.jpg',cv2.IMREAD_REDUCED_COLOR_2 ).astype(np.float32) / 255
#图像变亮
gamma0=0.4
gamma_img0=np.power(img,gamma0)
gamma_img0=gamma_img0.astype(np.float32)*255
#图像变暗
gamma1=2
gamma_img1=np.power(img,gamma1)
gamma_img1=gamma_img1.astype(np.float32)*255
#显示图像
cv2.imshow('img',img)
cv2.imshow('gamma_img0',gamma_img0)
cv2.imshow('gamma_img1',gamma_img1)
#保存图像
cv2.imwrite("D:/img0.jpg",img0)
cv2.imwrite('D:/gamma_img0.jpg',gamma_img0)
cv2.imwrite('D:/gamma_img1.jpg',gamma_img1)
cv2.waitKey(0)
cv2.destroyAllWindows()
原图像如下
gamma=0.4,变亮后图像如下
gamma=2,变暗后图像如下