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