伽马校正python
时间: 2023-10-19 16:36:16 浏览: 110
二维伽马函数自适应校正python代码
伽马校正是一种对图像亮度进行非线性调整的算法,通过对输入值进行指数运算,将输出值与输入值呈指数关系,从而调整图像的整体亮度。伽马校正对于优化图像的显示效果非常重要,可以避免图像过亮或过暗的情况。具体的伽马校正计算过程可以用以下公式表示:output = input^(1/Gamma)
下面是一个使用Python实现伽马校正的代码示例:
```python
import numpy as np
import cv2
def gamma_trans(img, gamma):
# 先将像素值归一化处理,再进行伽马计算,后还原到范围
gmma_list = [np.power(x / 255.0, gamma) * 255.0 for x in range(256)]
# 将列表转换成nparray,并将数据类型转换为无符号8位整型
gamma_table = np.round(np.array(gmma_list)).astype(np.uint8)
# 使用伽马表对图像进行灰度映射
return cv2.LUT(img, gamma_table)
if __name__ == '__main__':
# 读取图像
im = cv2.imread('data/lena.jpg', 0)
# 显示原始图像
matshow('im', im)
# 使用伽马值小于1的伽马校正
im = gamma_trans(im, 0.5)
matshow('im0.5', im)
# 使用伽马值大于1的伽马校正
im = gamma_trans(im, 3)
matshow('im3', im)
```
以上代码使用了NumPy和OpenCV库,首先定义了一个`gamma_trans`函数,该函数接收一个图像和伽马值作为输入,通过计算生成伽马表,然后使用伽马表对图像进行灰度映射。最后,在主程序中读取图像,分别使用伽马值0.5和3进行伽马校正,并使用`matshow`函数显示处理后的图像。通过调整伽马值可以得到不同的伽马校正效果 。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
阅读全文