Я загружаю изображение с:

from keras.preprocessing import image
img = image.load_img(image_path, target_size=(224, 224))
x = image.img_to_array(img)

Я хочу сохранить размер (224 x 224), но дополнить его. Где, как обычно, у меня будет изображение, подобное этому:

enter image description here

Вместо этого я хочу изображение как:

enter image description here

(черная рамка добавлена для пояснения. Не то, что я на самом деле хочу)

Я хочу, чтобы изображение было смещено (на некоторые x и y), а остальное было равно нулю.

1
Shamoon 19 Апр 2019 в 18:06

2 ответа

Лучший ответ

Самый простой подход - создать пустую матрицу и заполнить нужные части изображением:

x=np.ones((224,224,3),dtype=int)*255
x[x_start:,y_start:]=image.img_to_array[x_start:,y_start:]

Обратите внимание, что вы можете изменить dtype на uint8, если вам нужно.

1
anishtain4 22 Апр 2019 в 23:55

В numpy есть функция для заполнения матриц. Вы должны указать значение отступа для каждого измерения.

np.pad(img, ((top_pad, bottom_pad), (left_pad, right_pad), (0, 0)), mode='constant', constant_values=0)

Если вам нужна реализация, ознакомьтесь с этим

1
Hazarapet Tunanyan 7 Май 2019 в 15:58