在python中如何对文件夹内的所有图片进行切割
红心柚子 2019-06-06 10:47:07 我一改再改的代码,如下
from PIL import Image
import sys
import os
import cv2
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
#遍历文件夹内所有的图片
def cv_imread(filePath):
cv_img = cv2.imdecode(np.fromfile(filePath, dtype=np.uint8), -1)
return cv_img
root="F:\\system\\Documents\\python_project\\shuzishibie\\images"
#image=[]
#label=[]
for dirpath, dirnames, filenames in os.walk(root):
for filepath in filenames:
#siwei=filepath[0:4]
srcImage = cv_imread(os.path.join(root,filepath))
#cv2.imshow("Src", srcImage)
#cv2.waitKey(0)
#切图
def cut_image(image):
width, height = image.size
item_width = int(width / 4)
box_list = []
# (left, upper, right, lower)
for i in range(0,4):#一重循环,生成张图片基于原图的位置
box = (i*item_width,0,(i+1)*item_width,height)
box_list.append(box)
image_list = [image.crop(box) for box in box_list]
return image_list
#保存
def save_images(image_list):
index = 1
for image in image_list:
image.save('./img/'+str(index) + '.png', 'PNG')
index += 1
if __name__ == '__main__':
image = Image.open(file_path)
#image.show()
image_list = cut_image(image)
save_images(image_list)