赞
踩
- import cv2
- import os
- import numpy as np
-
- def flip(image,change_angle):
- # Extracting height and width from
- # image shape
- height, width = image.shape[:2]
- print("old image size (wxh)=", (width, height))
- # get the center coordinates of the
- # image to create the 2D rotation
- # matrix
- center = ((width-1)/2, (height-1)/2)
- # using cv2.getRotationMatrix2D()
- # to get the rotation matrix
- rotate_matrix = cv2.getRotationMatrix2D(center=center, angle=change_angle, scale=1)
- print(rotate_matrix)
- bound_w = height * np.abs(rotate_matrix[0,1]) + width * np.abs(rotate_matrix[0,0])
- bound_h = height * np.abs(rotate_matrix[0,0]) + width * np.abs(rotate_matrix[0,1])
- bound_w = int(round(bound_w, 10))
- bound_h = int(round(bound_h, 10))
- print("new image size (wxh)=", (bound_w, bound_h))
- rotate_matrix[0, 2] += (bound_w-1) / 2 - center[0]
- rotate_matrix[1, 2] += (bound_h-1) / 2 - center[1]
- # rotate_matrix[1,2] += height/2
- # rotate the image using cv2.warpAffine
- # 90 degree anticlockwise
- rotated_image = cv2.warpAffine(src=image, M=rotate_matrix, dsize=(bound_w, bound_h), borderMode=cv2.BORDER_CONSTANT, borderValue=(128, 128, 128))
- return rotated_image
-
- def save(data_dir,save_dir):
- if not os.path.exists(save_dir):
- os.mkdir(save_dir)
- for name in os.listdir(data_dir):
- #save_name = name[:-4] + "_{}.png".format(angle)#翻转图像命名
- save_name = name[:-4] + "_cut.png" # 剪切图像命名
- img = cv2.imread(os.path.join(data_dir,name))
- #img_new = flip(img, angle)#翻转图像方法
- img_new = cut(img) # 剪切图像方法
- cv2.imwrite(os.path.join(save_dir,save_name), img_new)
-
- def flip_main():
- Data_dir = "/home/ljs/Desktop/name" # 要改变的图片的路径文件夹
- Save_dir = "/home/ljs/Desktop/name_flip" # 要保存的图片的路径文件夹
- for i in range(0,361,15):
- #print(i)
- save(Data_dir, Save_dir, i) # 进行批量处理并且保存
-
- def show():
- imgFile = "/home/ljs/Desktop/name/1.png"
- img = cv2.imread(imgFile)
- cv2.imshow("Demo1", img)
- cv2.waitKey(0)
-
- def cut(image):
- cropped_image = image[250:1450, 300:1750] # Slicing to crop the image
- return cropped_image
-
- def cut_main():
- Data_dir = "/home/ljs/Desktop/name_flip" # 要改变的图片的路径文件夹
- Save_dir = "/home/ljs/Desktop/name_cut" # 要保存的图片的路径文件夹
- save(Data_dir, Save_dir) # 进行批量处理并且保存
-
- if __name__ == '__main__':
- #flip_main()
- #show()
- cut_main()

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。