python 图片数据增强_python 图片批量数据增强

图片旋转

仅旋转图片90、180、270度,代码如下:

import scipy

from scipy import misc

import os

import time

import glob

from scipy import ndimage

def get_image_paths(folder):

return glob.glob(os.path.join(folder, '*.jpg'))

def create_read_img(filename):

im = misc.imread(filename)

img_rote_90 = ndimage.rotate(im, 90)

scipy.misc.imsave(filename[:-4]+'_90.jpg',img_rote_90)

img_rote_180 = ndimage.rotate(im, 180)

scipy.misc.imsave(filename[:-4]+'_180.jpg',img_rote_180)

img_rote_270 = ndimage.rotate(im, 270)

scipy.misc.imsave(filename[:-4]+'_270.jpg',img_rote_270)

img_path = '/home/wxy/天宫数据利用大赛/宽波段数据集-预赛训练集2000/LAKE/'

imgs = get_image_paths(img_path)

#print (imgs)

for i in imgs:

create_read_img(i)

随机旋转,裁剪,加噪,代码如下:

import cv2

import numpy as np

import os.path

import random

import math

def rotate(img,angle):

height = img.shape[0]

width = img.shape[1]

if angle%180 == 0:

scale = 1

elif angle%90 == 0:

scale = float(max(height, width))/min(height, width)

else:

scale = math.sqrt(pow(height,2)+pow(width,2))/min(height, width)

rotateMat = cv2.getRotationMatrix2D((width/2, height/2), angle, scale)

rotateImg = cv2.warpAffine(img, rotateMat, (width, height))

return rotateImg

def tfactor(img):

hsv = cv2.cvtColor(img,cv2.COLOR_BGR2HSV)

hsv[:,:,0] = hsv[:,:,0]*(0.75+ np.random.random()*0.5)

hsv[:,:,1] = hsv[:,:,1]*(0.75+ np.random.random()*0.5)

hsv[:,:,2] = hsv[:,:,2]*(0.75+ np.random.random()*0.5)

img = cv2.cvtColor(hsv,cv2.COLOR_HSV2BGR)

return img

file_dir = "./data/"

classes = {"LAKE"}

i = 0

for index,name in enumerate(classes):

class_path = file_dir + name + "/"

for img_name in os.listdir(class_path):

img_path = class_path + img_name

image = cv2.imread(img_path)

tfimg = tfactor(image)

rotateAngle = random.randrange(0,10)

rotateImg = rotate(tfimg,rotateAngle)

H,W,Channels = tfimg.shape

y = H//2+20

x = W//2+20

winW = random.randrange(80,x-20)

winH = random.randrange(80,y-20)

cropImg = rotateImg[int(y-winH):int(y + winH),int(x-winW):int(x + winW)]

cv2.imwrite('./data/LAKE/'+img_name[:-4]+'_cropRotatetf_{:04d}.jpg'.format(i),cropImg)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部