Python图像增强:三种方法拯救曝光不足或低对比度图像

当图片曝光不足或对比度较低时,细节难以辨认。本文介绍三种使用Python和OpenCV进行图像增强的灰度变换方法,帮助你提升图像质量。

1. 直方图均衡化

直方图均衡化通过拉伸图像直方图的分布范围来增强图像对比度。pythonimport cv2

def histogram_equalization(image): # 将图像转换为灰度图像 gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 进行直方图均衡化    equalized_image = cv2.equalizeHist(gray_image)

return equalized_image

2. 对比度拉伸

对比度拉伸通过扩展图像的动态范围来增强对比度。pythonimport cv2import numpy as np

def contrast_stretching(image): # 将图像转换为灰度图像 gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 计算图像的最小和最大像素值    min_pixel = np.min(gray_image)    max_pixel = np.max(gray_image)

# 进行对比度拉伸    stretched_image = cv2.convertScaleAbs(gray_image, alpha=255.0 / (max_pixel - min_pixel),                                           beta=-min_pixel * 255.0 / (max_pixel - min_pixel))

return stretched_image

3. 伽马校正

伽马校正通过非线性变换调整图像亮度,增强细节。pythonimport cv2import numpy as np

def gamma_correction(image, gamma): # 将图像转换为灰度图像 gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 进行伽马校正    corrected_image = np.power(gray_image / 255.0, gamma)    corrected_image = np.uint8(corrected_image * 255)

return corrected_image

总结

你可以根据图像的需求选择和调整以上方法和参数,尝试不同的组合以获得最佳的图像增强效果。希望本教程能帮助你提升图像处理技能!

Python图像增强:三种方法拯救曝光不足或低对比度图像

原文地址: https://www.cveoy.top/t/topic/by52 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录