3D медианный фильтр в Matlab

Мне нужно выполнить некоторую медианную фильтрацию в трехмерном окружении (скажем, 5x5x5) на томе. В Matlab нет медианного фильтра 3D (по крайней мере, в той версии, которую я использую). Есть ли способ обеспечить трехмерную геометрию при выполнении одномерной медианной фильтрации? То есть реструктуризация 3D-матрицы с использованием функций Matlab (таких как reshape, permute, ...) для преобразования 3D-матрицы в 1D и выполнения медианной фильтрации, зная, что значения, используемые в медианном фильтре 1D, являются теми, которые определяют 3D-окрестность . Возьмите квартал 5x5x5. Тогда у нас будет 124 вокселя вокруг центрального воксела, значение которого должно быть заменено медианой из 124 вокселей, окружающих его. Как мне затем преобразовать мою трехмерную матрицу в одномерный вектор, чтобы при применении медианной фильтрации я оставался верным трехмерной геометрии?

Извините, если я не смог пояснить.

Спасибо


person user1641496    schedule 01.02.2014    source источник
comment
Я не думаю, что вы можете сохранить все трехмерные отношения соседства, если преобразовать в одномерный массив. Я думаю, вам нужно попытаться сделать это, сохраняя трехмерную структуру   -  person Luis Mendo    schedule 02.02.2014


Ответы (1)


Было бы приемлемо выполнять медианную фильтрацию в отдельных проходах, например, сначала операцию 5x5 medfilt2 в xy, а затем 5x1 medfilt вдоль z?

person Matt J    schedule 01.02.2014
comment
Что ж, это хорошая мысль. Даже если медианная фильтрация не является линейной операцией, я думаю, что это хорошее приближение. Спасибо. - person user1641496; 02.02.2014