Когда я реализую скользящее окно, используя 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 для обработки изображений?
Спасибо