Python PIL裁剪图像并将裁剪保存为新图像/副本
使用下面的代码,我成功地导入了一个图像,定义了一个坐标列表,然后将图像裁剪成这些坐标。但是,我当前的代码有两个问题:Python PIL裁剪图像并将裁剪保存为新图像/副本,python,python-imaging-library,Python,Python Imaging Library,使用下面的代码,我成功地导入了一个图像,定义了一个坐标列表,然后将图像裁剪成这些坐标。但是,我当前的代码有两个问题: 因为坐标是成对的,所以它将裁剪图像,然后裁剪该图像,而不是将两个单独的裁剪保存为新图像,与父图像分开 当我在代码中定义坐标时,它工作得很好。但是,当我取消注释第一个boxcrop(第11行)以从csv获取坐标时,它不起作用 最后,我希望代码能够导入一个图像,从csv文件中获取所需作物的坐标(可能有2个以上,最多8个!),然后将每个作物保存为一个新图像,文件名与原始图像相同。例如,
from PIL import Image
import numpy as np
import pandas as pd
#Open image
im = Image.open(r'C:/Users/Testing/Capture.png')
#Open excel file
df = pd.read_csv(r'C:/Users/Testing/crops.csv', header=0)
#Get coordinates of box
#boxcrop = df.values.T[2].tolist()
boxcrop = ['(212,233,226,247)','(196,217,210,231)']
for i in boxcrop:
left, upper, right, lower = np.array([i.replace('(', '').replace(')','').split(',')], dtype=int).T
dims = np.concatenate([left, upper, right, lower])
im_crop = im.crop((dims))
im_crop.save(r'C:\Users\Testing\crops\cropped.png', quality=95)
使用:
裁剪副本
使用f字符串使文件名保存:
im_crop.save(f'blahblah{i}.png')
使用:
裁剪副本
使用f字符串使文件名保存:
im_crop.save(f'blahblah{i}.png')
这里有两个问题。如果你把问题一分为二,你就有更好的机会找到答案。例如,可以在中找到裁剪图像。然后您需要搜索cv2.imwrite或类似的方法将图像写入磁盘。@smttsp谢谢您的建议!另一个用户很快解决了我的复制问题,所以现在csv输入是唯一的问题。非常感谢。这里有两个问题。如果你把问题一分为二,你就有更好的机会找到答案。例如,可以在中找到裁剪图像。然后您需要搜索cv2.imwrite或类似的方法将图像写入磁盘。@smttsp谢谢您的建议!另一个用户很快解决了我的复制问题,所以现在csv输入是唯一的问题。非常感谢。