资源简介
用该文件可以实现以下功能:
用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
- 上一篇:python 12306 查询余票代码
- 下一篇:django入门-增删改
评论
共有 条评论