IT评测·应用市场-qidao123.com技术社区

标题: 关于伽马变换小记 [打印本页]

作者: 盛世宏图    时间: 2025-3-30 13:44
标题: 关于伽马变换小记
伽马变换(Gamma Correction)讲解

1. 伽马变换的基本概念

伽马变换(Gamma Correction)是一种非线性的灰度变换方法,主要用于调整图像的亮度和对比度,以适应人眼视觉特性或装备特性。它广泛应用于图像增强、HDR 处理、医学图像分析、视频编码等范畴。
伽马变换的数学公式如下:
                                                    I                               out                                      =                            c                            ⋅                                       I                               in                               γ                                            I_{\text{out}} = c \cdot I_{\text{in}}^{\gamma}                     Iout​=c⋅Iinγ​
此中:

1.1 伽马值的影响


2. 伽马变换的应用

2.1 适应人眼视觉特性

人眼对亮度变革的感知是非线性的,更敏感于较暗区域的亮度变革,而对高亮区域的变革不敏感。因此,在存储和表现进步行 Gamma 编码(Gamma Encoding)可以增强暗部细节。
2.2 表现装备校正

不同的表现装备(如 CRT、LCD、OLED)对输入信号的相应并不是线性的,因此必要进行伽马校正(Gamma Correction)以确保精确的亮度表现。
2.3 图像增强


2.4 视频编码


3. 伽马变换的实现

3.1 使用 OpenCV

  1. import cv2
  2. import numpy as np
  3. def gamma_correction(image, gamma):
  4.     gamma_table = np.array([(i / 255.0) ** gamma * 255 for i in range(256)]).astype("uint8")
  5.     return cv2.LUT(image, gamma_table)
  6. image = cv2.imread("input.jpg")
  7. gamma_corrected = gamma_correction(image, gamma=2.2)
  8. cv2.imshow("Original", image)
  9. cv2.imshow("Gamma Corrected", gamma_corrected)
  10. cv2.waitKey(0)
  11. cv2.destroyAllWindows()
复制代码
3.2 使用 NumPy

  1. def gamma_correction_numpy(image, gamma):
  2.     norm_img = image / 255.0
  3.     corrected_img = np.power(norm_img, gamma) * 255
  4.     return corrected_img.astype(np.uint8)
  5. image = cv2.imread("input.jpg")
  6. gamma_corrected = gamma_correction_numpy(image, 2.2)
  7. cv2.imshow("Gamma Corrected", gamma_corrected)
  8. cv2.waitKey(0)
复制代码
4. 伽马变换的局限性

5. 总结



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4