You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python编写曲线算法分别调整加载图像的对比度和亮度

Python实现图像对比度与亮度调节方案

完全可以通过Python实现你需要的对比度、亮度自定义调节效果,核心基于像素值映射逻辑,可灵活自定义调节参数适配不同需求。

效果参考

对比度亮度调节示例1
对比度亮度调节示例2

依赖安装

首先需要安装图像处理所需的第三方库:
pip install opencv-python numpy

完整实现代码

线性调节(最常用的对比度+亮度直接调整)

import cv2
import numpy as np

def adjust_contrast_brightness(img, alpha=1.0, beta=0):
    """
    调整图像对比度和亮度
    :param img: 输入的OpenCV格式图像
    :param alpha: 对比度系数,建议取值范围0~3,>1提升对比度,<1降低对比度
    :param beta: 亮度偏移值,建议取值范围-100~100,正值提亮,负值压暗
    :return: 调整后的图像
    """
    # 执行线性变换,自动裁剪像素值到0~255区间避免溢出
    adjusted = cv2.convertScaleAbs(img, alpha=alpha, beta=beta)
    return adjusted

# 调用示例
if __name__ == "__main__":
    # 加载本地图像
    img = cv2.imread("你的本地图像路径.jpg")
    if img is None:
        print("图像加载失败,请检查路径是否正确")
        exit()
    
    # 自定义调节参数
    contrast = 1.6  # 对比度提升1.6倍
    brightness = 15 # 亮度提升15个单位
    
    # 应用调节效果
    res = adjust_contrast_brightness(img, alpha=contrast, beta=brightness)
    
    # 对比展示效果
    cv2.imshow("原始图像", img)
    cv2.imshow("调整后图像", res)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
    # 保存调整后的图像到本地
    cv2.imwrite("调整后图像.jpg", res)

自定义曲线调节(非线性调节,适配特殊效果需求)

如果需要实现类似修图工具的自定义曲线调节效果,可以通过自定义像素映射表实现,示例如下:

def custom_curve_adjust(img, curve_rule):
    # 生成0~255全范围像素映射表
    lookup_table = np.array([curve_rule(i) for i in range(256)], dtype=np.uint8)
    # 应用映射表到整张图像
    return cv2.LUT(img, lookup_table)

# 示例:S型曲线,增强明暗层次同时保留灰阶过渡
def s_curve(x):
    return 255 * (1 / (1 + np.exp(-0.05 * (x - 127))))

# 调用方式
# res = custom_curve_adjust(img, s_curve)

内容的提问来源于stack exchange,提问作者Eslam Said Khashb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:45:05