У меня есть 3D-матрица, которую я хотел бы (гауссовское) размытие. Это я могу сделать с scipy.ndimage.filters.gaussian_filter()
. Мой вопрос: что я могу сделать, чтобы пиксели на краях были размыты, чтобы выполнялись периодические граничные условия?Размытие массива 3D-numpy с периодическими граничными условиями
Что я имею в виду, так это то, что когда рассматривается элемент в a[0,:,:]
, на значение, соответствующее этому элементу, также должны влиять элементы в a[-1,:,:]
.
Я думал конкатенации тот же массив a
несколько раз, так что у меня есть массив формы [[[a,a,a],[a,a,a],[a,a,a]],[[a,a,a],[a,a,a],[a,a,a]],[[a,a,a],[a,a,a],[a,a,a]]]
, то есть массив, который состоит из 3 на 3 сетки a
с. Я бы затем размыл результирующий массив. Поскольку моя матрица довольно большая (200 на 200 на 200), я стараюсь избегать этого. (Я мог бы рассмотреть подмассиву результирующего большого массива, где я оставляю достаточно поля вокруг a
в центре. Однако для этого потребуется определить размер этого поля при каждом изменении размытия размытия.)
Есть ли простой и эффективный способ сделать это?