CV:利用opencv对图片的亮度增强方法

1. 背景

在CV领域,算法工(tiao)程(can)师(xia)经常会遇到训练数据不足或训练数据多样性太少的问题。此时,我们需要通过算法来进行数据扩充或数据增强。数据增强的方法有很多(如翻转、镜像、旋转、亮度增强等),本篇我们来讲一个最常用的数据增强策略:亮度增强。

2.亮度增强

本篇基于opencv对图片进行亮度增强,闲话少说,直接上代码:

import cv2
import random
import numpy as np


def data_augment(image, brightness):
    factor = 1.0 + random.uniform(-1.0*brightness, brightness)
    table = np.array([(i / 255.0) * factor * 255 for i in np.arange(0, 256)]).clip(0,255).astype(np.uint8)
    image = cv2.LUT(image, table)
    return image, factor


imgpath = "./huluwa.jpg"
input_image = cv2.imread(imgpath)
for i in range(100):
    output_image, factor = data_augment(input_image, 0.5)
    # print(factor)
    cv2.imwrite(imgpath+str(factor)[:6]+".jpg", output_image)

上述代码主要是利用了opencv的cv2.LUT函数的功能,该函数全名为LookUpTable,函数使用方法如名字那样直接。下面看看该函数的效果如何。

3.可视化效果

原图,factor=0
变暗:factor=0.52
变暗,factor=0.75
变暗,factor=0.908

变亮,factor=1.12
变亮,factor=1.256
变亮,factor=1.49

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值