import cv2
import numpy as np
# 定义Gamma矫正的函数
def gamma_trans(img, gamma):
# 具体做法是先归一化到1,然后gamma作为指数值求出新的像素值再还原
gamma_table = [np.power(x/255.0, gamma)*255.0 for x in range(256)]#.power(x,n)计算x的n次方
gamma_table = np.round(np.array(gamma_table)).astype(np.uint8)#.round 四舍五入 .astype变量的类型
# 实现这个映射用的是OpenCV的查表函数
return cv2.LUT(img, gamma_table)
# 执行Gamma矫正,小于1的值让暗部细节大量提升,同时亮部细节少量提升
img_corrected = gamma_trans(img, 0.5)
cv2.imwrite('gamma_corrected.jpg', img_corrected)
图像的gamma变换
最新推荐文章于 2023-10-20 13:57:12 发布