编程实现图像的gamma变换【opencv】图像处理之伽马变换
时间: 2024-09-26 19:12:19 浏览: 107
在OpenCV库中,伽玛变换是一种调整图像亮度和对比度的技术,尤其用于纠正传感器或显示器非线性响应导致的颜色失真。伽玛变换涉及到将像素值的线性空间转换到非线性的伽玛空间,然后再转换回线性空间。
以下是一个简单的Python示例,使用OpenCV(cv2)库来实现伽玛变换:
```python
import cv2
import numpy as np
def apply_gamma_correction(image_path, gamma=2.2):
# 读取图像
image = cv2.imread(image_path)
# 将BGR图像转换为灰度,如果原图是彩色的
if len(image.shape) == 3:
image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 应用伽玛变换
invGamma = 1.0 / gamma
table = np.array([((i / 255.0) ** invGamma) * 255 for i in np.arange(0, 256)]).astype("uint8")
adjusted = cv2.LUT(image, table)
return adjusted
# 使用伽玛变换处理图片
input_image = "input.jpg"
output_image = "output_after_gamma.png"
processed_image = apply_gamma_correction(input_image)
cv2.imwrite(output_image, processed_image)
阅读全文