от
Я пытаюсь обрезать квадратные патчи из изображений, основываясь на координатах центра и масштабе, используя базовую нарезку NumPy (точно так же, как этот вопрос):
label_index, photo_id, ratio_x, ratio_y = line.split(",")
label = LABELS[int(label_index)]
bgr = cv2.imread(DIR_DATASET   "images/"   folder   "/"   photo_id   ".jpg")
height, width = bgr.shape[:2]
center_x, center_y = int(width * float(ratio_x)), int(height * float(ratio_y))
print("center: "   str(center_x)   ", "   str(center_y))
patch_radius = int((min(width, height) * 0.23) / 2)
print("patch radius: "   str(patch_radius))
min_x = center_x 

Тем не менее, извлеченные патчи часто совсем не квадратные, о чем свидетельствуют операторы печати:

NEWLINE
center: 2002, 598
patch radius: 230
coords: min: 1772, 368; max: 2232, 828
patch shape: (228, 460, 3)
NEWLINE
center: 2375, 727
patch radius: 230
coords: min: 2145, 497; max: 2605, 957
patch shape: (0, 460, 3)
NEWLINE
center: 2566, 820
patch radius: 230
coords: min: 2336, 590; max: 2796, 1050
patch shape: (0, 460, 3)
NEWLINE
center: 2195, 603
patch radius: 230
coords: min: 1965, 373; max: 2425, 833
patch shape: (35, 460, 3)
Минимальная и максимальная координаты рассчитаны правильно, поэтому ясно, что мой способ нарезки должен быть неправильным? Что мне здесь не хватает?              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...