python实现gimp里面的曝光算法

这篇文章展示了如何利用Python和OpenCV库来实现图像的曝光调整功能。通过定义一个名为`exposure`的函数,作者实现了基于输入参数`black_level`和`exposure_negated`调整图像曝光度。文章提供了不同曝光值下的图像示例,显示了调整效果。
摘要由CSDN通过智能技术生成

在gimp里面有曝光的功能

 简单看了一下源码,看起来比较简单,使用python简单的实现了一下:

import numpy as np
import cv2


def exposure(img_input, black_level=0, exposure_negated=0.0):
    img_input = img_input.astype(np.float32)
    assert -0.1 <= black_level <= 0.1
    assert -10.0 <= exposure_negated <= 10.0
    white = pow(2, -exposure_negated)
    diff = max(white - black_level, 0.000001)
    gain = 1.0 / diff
    img_output = (img_input - black_level)*gain
    return img_output


if __name__ == '__main__':
    img = cv2.imread('tmp/50.jpg')
    exposure_negateds = [-2.5, -1.0, -0.5, 0.5, 1.0, 2.5]
    for exposure_negated in exposure_negateds:
        res_out = exposure(img, black_level=0, exposure_negated=exposure_negated)
        cv2.imwrite('tmp/50_exposure_{}.jpg'.format(exposure_negated), res_out)

 原图

 0.5曝光

-0.5曝光

 1.0曝光

-1.0曝光

 2.5曝光

 -2.5曝光

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值