> 文章列表 > 挑战图像处理100问(24)——伽玛校正

挑战图像处理100问(24)——伽玛校正

挑战图像处理100问(24)——伽玛校正

在这里插入图片描述

伽马校正(Gamma Correction)是一种图像处理技术,用于校正显示设备的非线性响应。通过对图像进行伽马变换,可以将图像的亮度范围映射到显示设备的亮度范围内,从而提高图像的对比度和细节,改善图像的视觉效果。

伽马变换的基本原理是对图像的像素值进行幂次变换,公式如下:

Vout =VinγV_{\\text {out }}=V_{i n}^\\gammaVout =Vinγ

其中,VinV_{in}Vin 表示输入图像的像素值,VoutV_{out}Vout 表示输出图像的像素值,γ\\gammaγ 表示伽马值,通常取值在 0.20.20.25.05.05.0 之间。

import cv2
import numpy as np# 读取原始图像
img = cv2.imread('input.jpg', 0)# 计算伽马变换表
gamma = 0.5
gamma_table = np.array([((i / 255.0) ** gamma) * 255 for i in np.arange(0, 256)]).astype('uint8')# 对图像进行伽马校正
img_gamma = cv2.LUT(img, gamma_table)# 显示原始图像和伽马校正后的图像
cv2.imshow('Original Image', img)
cv2.imshow('Gamma Corrected Image', img_gamma)
cv2.waitKey(0)
cv2.destroyAllWindows()

在上面的代码中,使用 cv2.imread() 函数读取原始图像。然后计算伽马变换表,使用 cv2.LUT() 函数对图像进行伽马校正。最后使用 cv2.imshow() 函数显示原始图像和伽马校正后的图像,使用 cv2.waitKey() 函数等待用户按下按键,使用 cv2.destroyAllWindows() 函数销毁所有窗口。

在上面的代码中,gamma 表示伽马值,可以根据具体的应用场景进行调整。当 γ<1.0\\gamma < 1.0γ<1.0 时,伽马校正会使图像变暗;当 γ>1.0\\gamma > 1.0γ>1.0 时,伽马校正会使图像变亮。