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.可视化效果

CV:利用opencv对图片的亮度增强方法_第1张图片
CV:利用opencv对图片的亮度增强方法_第2张图片
CV:利用opencv对图片的亮度增强方法_第3张图片
CV:利用opencv对图片的亮度增强方法_第4张图片

CV:利用opencv对图片的亮度增强方法_第5张图片
CV:利用opencv对图片的亮度增强方法_第6张图片
CV:利用opencv对图片的亮度增强方法_第7张图片

你可能感兴趣的:(opencv,计算机视觉,人工智能)