Я хочу найти эффективный способ поворота патчей изображения 4x4 из большего изображения на углы, кратные 15. Я сейчас извлекаю патч 6x6, например, patch=img[x-3:x+3,y-3:y+3]
, а затем запускаю scipy.ndimage.interpolation.rotate(patch,-15*o,reshape=False)[1:5,1:5]
. Тем не менее, мне необходимо сделать это в любом месте (x,y)
на изображении. У меня есть «сложенная» версия изображения с массивом размером (m,n,6,6)
, где m
и n
- размеры исходного изображения. Даже если запустить interpolation.rotate
для стековой версии, похоже, что внутри она просто делает это итеративно, и это занимает много времени.
Поскольку мне нужно делать это только под фиксированными углами, я пытаюсь предварительновычислить некоторые константы и векторизовать реализацию, чтобы я мог обработать их все сразу. Я попытался покопаться в реализации SciPy rotate, но это не сильно помогло.
Есть ли разумный способ сделать это?