# !/usr/bin python3 # encoding : utf-8 -*- # @software : PyCharm # @file : Augment.py import cv2 import os import numpy as np import random from tqdm import tqdm list = os.listdir('Order') for i in range(len(list)): list[i] = "Order/" + list[i] def rotate_bound(image, angle): # grab the dimensions of the image and then determine the # center (h, w) = image.shape[:2] (cX, cY) = (w // 2, h // 2) # grab the rotation matrix (applying the negative of the # angle to rotate clockwise), then grab the sine and cosine # (i.e., the rotation components of the matrix) M = cv2.getRotationMatrix2D((cX, cY), -angle, 1.0) cos = np.abs(M[0, 0]) sin = np.abs(M[0, 1]) # compute the new bounding dimensions of the image nW = int((h * sin) + (w * cos)) nH = int((h * cos) + (w * sin)) # adjust the rotation matrix to take into account translation M[0, 2] += (nW / 2) - cX M[1, 2] += (nH / 2) - cY # perform the actual rotation and return the image return cv2.warpAffine(image, M, (nW, nH)) def add_noise(img, num): imgInfo = img.shape height = imgInfo[0] - 1 # 防止越界 width = imgInfo[1] - 1 temp = num # 噪声点的个数 for i in range(0, temp): if random.randint(1, temp) % 2 == 0: img[random.randint(0, height), random.randint(0, width)] = (255, 255, 255) if random.randint(1, temp) % 2 != 0: img[random.randint(0, height), random.randint(0, width)] = (0, 0, 0) return img for i in tqdm(range(len(list))): if i % 2 == 0: img = cv2.imread(list[i]) img_dst = rotate_bound(img, random.randint(1, 9)*20) cv2.imwrite('Order/{}_rotate.jpg'.format(i), img_dst)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)