Я хочу выполнить произвольную обрезку фиксированного размера прямоугольника на изображениях различного размера. Это означает, что обрезка может перекрывать изображение со всех сторон. Я хочу сделать это с помощью нарезки, то есть я хочу предварительно вычислить диапазон индекса для изображения (матрица sr c) и кадрирования (матрица dst) для производительности.
crop = np.zeros((crop_size_x, crop_size_y, 3), dtype=np.uint8)
x_min_dst = ???
x_max_dst = ???
x_min_src = ???
x_max_src = ???
[...] # same for y
crop[x_min_dst:x_max_dst, y_min_dst:y_max_dst, :] = image[x_min_src:x_max_src,y_min_src:y_max_src, :]
Если кто-то знает решение для этого, пожалуйста, дайте мне знать, в противном случае я постараюсь найти решение самостоятельно и опубликовать его здесь. Может быть, в numpy или opencv уже есть функция, которая делает это?
Этот чертеж должен прояснить проблему (учитывается только перекрытие в измерении x, измерение y должно быть аналогичным):
![enter image description here](https://i.stack.imgur.com/TSfgt.png)