1.图片水平and垂直翻转
import cv2
img = cv2.imread('cv2.flip().jpg')
h_flip = cv2.flip(img, 1) # 水平翻转
v_flip = cv2.flip(img, 0) # 垂直翻转
hv_flip = cv2.flip(img, -1) # 水平垂直翻转
cv2.namedWindow('Original Image', cv2.WINDOW_KEEPRATIO)
cv2.imshow('Original Image', img)
cv2.namedWindow('Horizontally Flipped', cv2.WINDOW_KEEPRATIO)
cv2.imshow('Horizontally Flipped', h_flip)
cv2.namedWindow('Vertically Flipped', cv2.WINDOW_KEEPRATIO)
cv2.imshow('Vertically Flipped', v_flip)
cv2.namedWindow('Horizontally & Vertically Flipped', cv2.WINDOW_KEEPRATIO)
cv2.imshow('Horizontally & Vertically Flipped', hv_flip)
cv2.waitKey(0)
cv2.destroyAllWindows()
水平翻转
1.1批量垂直翻转图片
import cv2
import os
import numpy as np
def read_path(file_pathname):
for filename in os.listdir(file_pathname):
filename = filename
print(filename)
img = cv2.imread(file_pathname+'/'+filename)
imageR1p0 = cv2.flip(img, 0)
cv2.imwrite(r"F:/mydata_YJN/Data\FEN JI/yuantu_turn/img_turn_val/level_1" + "/" + filename, imageR1p0)
read_path(r"F:/mydata_YJN/Data/FEN JI/fenji_yuantu/yantu_val/level_1")
2. 批量旋转图片
以旋转90°为例:
import os
from PIL import Image
def read_path(file_pathname): # 函数的输入是图片所在的路径
for filename in os.listdir(file_pathname):
print(filename) # 所操作图片的名称可视化
img = Image.open(file_pathname+'/'+filename) # 读取文件
im_rotate = img.rotate(90) #图像旋转
im_rotate.save(r"E:\DATA\HR_IMG\Rotate\test for Rotate 345 degrees\Level-4" + "/" + filename) # 图片保存
read_path(r"E:/y.document/DATA.D/yauntu/yantu_test/level_4")