资源简介

用该文件可以实现以下功能: 用labelme工具打1张图片的标签,生成1.png和1.json 在终端中运行命令python a.py生成20张数据增强后的图片及其对应的json文件,包括翻转,加噪,模糊,加减曝光等图片 在终端中运行python labelme2COCO.py生成COCO格式数据集,可以进行mask-rcnn 和faster-rcnn 等的输入数据集

资源截图

代码片段和文件信息

import base64
import json
from labelme import utils
import cv2 as cv
import sys
import numpy as np
import random
import re


class DataAugment(object):
    def __init__(self image_id=1):
        self.add_saltNoise = True
        self.gaussianBlur = True
        self.changeExposure = True
        self.id = image_id
        img = cv.imread(str(self.id)+‘.png‘)
        try:
            img.shape
        except:
            print(‘No Such image!---‘+str(id)+‘.png‘)
            sys.exit(0)
        self.src = img
        dst1 = cv.flip(img 0 dst=None)
        dst2 = cv.flip(img 1 dst=None)
        dst3 = cv.flip(img -1 dst=None)
        self.flip_x = dst1
        self.flip_y = dst2
        self.flip_x_y = dst3
        cv.imwrite(str(self.id)+‘_flip_x‘+‘.png‘ self.flip_x)
        cv.imwrite(str(self.id)+‘_flip_y‘+‘.png‘ self.flip_y)
        cv.imwrite(str(self.id)+‘_flip_x_y‘+‘.png‘ self.flip_x_y)

    def gaussian_blur_fun(self):
        if self.gaussianBlur:
            dst1 = cv.GaussianBlur(self.src (5 5) 0)
            dst2 = cv.GaussianBlur(self.flip_x (5 5) 0)
            dst3 = cv.GaussianBlur(self.flip_y (5 5) 0)
            dst4 = cv.GaussianBlur(self.flip_x_y (5 5) 0)
            cv.imwrite(str(self.id)+‘_Gaussian‘+‘.png‘ dst1)
            cv.imwrite(str(self.id)+‘_flip_x‘+‘_Gaussian‘+‘.png‘ dst2)
            cv.imwrite(str(self.id)+‘_flip_y‘+‘_Gaussian‘+‘.png‘ dst3)
            cv.imwrite(str(self.id)+‘_flip_x_y‘+‘_Gaussian‘+‘.png‘ dst4)

    def change_exposure_fun(self):
        if self.changeExposure:
            # contrast
            reduce = 0.5
            increase = 1.4
            # brightness
            g = 10
            h w ch = self.src.shape
            add = np.zeros([h w ch] self.src.dtype)
            dst1 = cv.addWeighted(self.src reduce add 1-reduce g)
            dst2 = cv.addWeighted(self.src increase add 1-increase g)
            dst3 = cv.addWeighted(self.flip_x reduce add 1 - reduce g)
            dst4 = cv.addWeighted(self.flip_x increase add 1 - increase g)
            dst5 = cv.addWeighted(self.flip_y reduce add 1 - reduce g)
            dst6 = cv.addWeighted(self.flip_y increase add 1 - increase g)
            dst7 = cv.addWeighted(self.flip_x_y reduce add 1 - reduce g)
            dst8 = cv.addWeighted(self.flip_x_y increase add 1 - increase g)
            cv.imwrite(str(self.id)+‘_ReduceEp‘+‘.png‘ dst1)
            cv.imwrite(str(self.id)+‘_flip_x‘+‘_ReduceEp‘+‘.png‘ dst3)
            cv.imwrite(str(self.id)+‘_flip_y‘+‘_ReduceEp‘+‘.png‘ dst5)
            cv.imwrite(str(self.id)+‘_flip_x_y‘+‘_ReduceEp‘+‘.png‘ dst7)
            cv.imwrite(str(self.id)+‘_IncreaseEp‘+‘.png‘ dst2)
            cv.imwrite(str(self.id)+‘_flip_x‘+‘_IncreaseEp‘+‘.png‘ dst4)
            cv.imwrite(str(self.id)+‘_flip_y‘+‘_IncreaseEp‘+‘.png‘ dst6)
            cv.imwrite(str(self.id)+‘_flip_x_y‘+‘_IncreaseEp‘+‘.png‘ dst8)

    def add_salt_noise(self):
        if self.ad

评论

共有 条评论