Вам не нужен генератор данных Keras для обрезки изображения.
Вы можете использовать python пакеты, такие как PIL
(подушка) или cv2
(opencv), чтобы обрезать изображение.
Вам нужны координаты x, y заголовка / квадрата, а также ширина и высота кадрирования, чтобы делать то, что вы хотите.
Вы неправильно используете PIL-кадрирование.
Что вам нужно сделать:
cropped_image = pil_img.crop((x-top_left, y-top_left,x-bottom_right, y-bottom_right))
cropped_image.show()
Примечание:
x-bottom_right = x-top_left + crop_width
y-bottom_right = y-top_left + crop_height
Дополнительно с OpenCV :
import cv2
orig_img = cv2.imread("path_to_your_image")
crop_img = orig_img[y:y+h, x:x+w]
cv2.imshow("Cropped Image", crop_img)
cv2.waitKey(0)
Здесь x, y - координаты x, y head-box/square
, которые вы хотите обрезать, т.е. x-top_left
и y-top_left
соответственно.
w = crop_width
h = crop_height