Используя мой код ниже, я успешно смог импортировать изображение, определить список координат, а затем обрезать изображение до этих координат. Тем не менее, у меня есть две проблемы с моим текущим кодом:
Поскольку координаты попарно, это обрезка изображения, а затем обрезка ЭТОГО изображения, а не сохранение двух отдельных обрезок в качестве новых изображений. , отдельно от родительского изображения.
Когда я определяю свои координаты в коде, все работает нормально. Но когда я раскомментирую первый boxcrop (строка 11), чтобы получить координаты из моего csv, он не работает.
В конце концов, я бы хотел, чтобы код мог импортировать изображение, получить координаты желаемых культур (их может быть больше 2, до 8!) из файла CSV, а затем сохранить каждую культуру как новое изображение с тем же именем файла, что и у исходного изображения. например, flowers.png стал бы flowers_crop1, flowers_crop2, et c et c. Любой совет приветствуется, я просмотрел другие посты и не видел такой же проблемы с сохранением копий, поэтому надеюсь, что я не задаю вопрос повторно.
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)