目标检测中的数据增强

数据增强的目的是为了增加输入图像的可变性,从而使所设计的目标检测模型对在不同环境下获得的图像具有更高的鲁棒性。

简单贴点自己整理的数据增强代码。

import os
import cv2 
import numpy as np
from PIL import Image,ImageEnhance

def enhance(mode,image,brightness=1,sharpness=1,color=1,contrast=1):    
    '''
    parameter:
        mode:选择需要的形式
        image:读取的数组形式的图片
        brightness:传入的亮度的数值,默认为1
        sharpness:传入的锐化的数值,默认为1
        color:传入的对色度的数值,默认为1
        contrast:传入的对比度的数值,默认为1
    return:
        数组    
    '''
    if mode == '亮度':  
        img = Image.fromarray(image)                       #数组转PIL image形式
        enh_bri = ImageEnhance.Brightness(img)             #增强(或减弱)图像的亮度
        image_brightened = enh_bri.enhance(brightness)
        img = np.array(image_brightened)
    elif mode == '浮雕':
        kernel = np.array([[-2, -1, 0], [-1, 1, 1], [0, 1, 2]], np.float32)
        img = cv2.filter2D(image, -1, kernel = kernel)
    elif mode == '模糊':
        kernel = np.array([[0.0625, 0.125, 0.0625], [0.125, 0.25, 0.125], [0.0625, 0.125,0.125]], np.float32)
        img = cv2.filter2D(image, -1, kernel=kernel)
    elif mode == '锐化':
        img = Image.fromarray(image)               
        enh_sha = ImageEnhance.Sharpness(img)              #增强(或减弱)图像的锐化度
        image_sharped = enh_sha.enhance(sharpness)
        img = np.array(image_sharped)
    elif mode == '色度':
        img = Image.fromarray(image) 
        enh_col = ImageEnhance.Color(img)                  #增强(或减弱)图像的色度                   
        image_colored = enh_col.enhance(color)
        img = np.array(image_colored)
    elif mode == '对比度':
        img = Image.fromarray(image) 
        enh_col = ImageEnhance.Contrast(img)               #增强(或减弱)图像的对比度                   
        image_colored = enh_col.enhance(contrast)
        img = np.array(image_colored)
    else:
        print('error!')
    return img

if __name__ == '__main__':
    path = '图片路径'
    mode = '亮度'
    im = cv2.imread(path)
    im = enhance(mode,im,brightness=1.8)
    cv2.imshow('',im)
    cv2.waitKey()
    cv2.destroyAllWindows()

也可以自己选择保存增强后的图片,使用cv2.imwrite()就可以了,如果要做多张图片的数据增强,用os.listdir()遍历即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值