栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

目标检测中的数据增强

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

目标检测中的数据增强

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

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

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()遍历即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/928229.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号