Скользящее окно с использованием функции as_strided в numpy?

Когда я реализую скользящее окно, используя python для обнаружения объектов в неподвижных изображениях, я узнаю хорошую функцию:

numpy.lib.stride_tricks.as_strided

Поэтому я попытался выработать общее правило, чтобы избежать ошибок, с которыми я могу столкнуться при изменении размера нужных мне раздвижных окон. Наконец я получил это представление:

all_windows = as_strided(x,((x.shape[0] - xsize)/xstep ,(x.shape[1] - ysize)/ystep ,xsize,ysize), (x.strides[0]*xstep,x.strides[1]*ystep,x.strides[0],x.strides[1])

что приводит к 4 тусклой матрице. Первые два представляют количество окон на осях x и y изображения. а остальные представляют размер окна (xsize, ysize)

иstep представляет смещение между двумя последовательными окнами.

Это представление отлично работает, если я выберу квадратные раздвижные окна. но все же у меня есть проблема в том, чтобы заставить это работать для окон e.x. (128,64), где я обычно получаю несвязанные данные с изображением.

Что не так в моем коде. Есть идеи? а если есть лучший способ сделать скользящие окна красивыми и аккуратными в python для обработки изображений?

Спасибо

Ответы на вопрос(3)

Ваш ответ на вопрос