• 大小: 3KB
    文件类型: .py
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: Python
  • 标签: 数据增强  

资源简介

此代码用于实现图像数据增强,对图片进行批量处理。包括图片旋转、翻转、模糊、增加噪声、亮度几种处理。运行需要安装python、opencv、numpy等。 使用时将图片统一放在img文件夹中,并将img文件夹和下载的py文件放在一起。

资源截图

代码片段和文件信息

import cv2
import numpy as np
import os.path
import copy


def SaltAndPepper(srcpercetage):
    SP_NoiseImg=src.copy()
    SP_NoiseNum=int(percetage*src.shape[0]*src.shape[1])
    for i in range(SP_NoiseNum):
        randR=np.random.randint(0src.shape[0]-1)
        randG=np.random.randint(0src.shape[1]-1)
        randB=np.random.randint(03)
        if np.random.randint(01)==0:
            SP_NoiseImg[randRrandGrandB]=0
        else:
            SP_NoiseImg[randRrandGrandB]=255
    return SP_NoiseImg


def addGaussianNoise(imagepercetage):
    G_Noiseimg = image.copy()
    w = image.shape[1]
    h = image.shape[0]
    G_NoiseNum=int(percetage*image.shape[0]*image.shape[1])
    for i in range(G_NoiseNum):
        temp_x = np.random.randint(0h)
        temp_y = np.random.randint(0w)
        G_Noiseimg[temp_x][temp_y][np.random.randint(3)] = np.random.randn(1)[0]
    return G_Noiseimg


def darker(imagepercetage=0.9):
    image_copy = image.copy()
    w = image.shape[1]
    h = image.shape[0]
    #get darker
    for xi in range(0w):
        for xj in range(0h):
            image_copy[xjxi0] = int(image[xjxi0]*percetage)
            image_copy[xjxi1] = int(image[xjxi1]*percetage)
            image_copy[xjxi2] = int(image[xjxi2]*percetage)
    return image_copy


def brighter(image percetage=1.5):
    image_copy = image.copy()
    w = image.shape[1]
    h = image.shape[0]
    #get brighter
    for xi in range(0w):
        for xj in range(0h):
            image_copy[xjxi0] = np.clip(int(image[xjxi0]*percetage)a_max=255a_min=0)
            image_copy[xjxi1] = np.clip(int(image[xjxi1]*percetage)a_max=255a_min=0)
            image_copy[xjxi2] = np

评论

共有 条评论