3D гауссовский фильтр в MATLAB

есть 3д eqivalent из imfilter доступно для MATLAB? Я хочу применить гауссовскую фильтрацию к 3D-гистограмме. Я собирался реализовать его сам, создав (3D) гауссовский фильтр, затем зацикливаясь на каждом элементе моей гистограммы и суммируя соответствующие записи данных.

однако я не хотел реализовывать его сам медленно и неэффективно, если что-то уже есть или более умный способ сделать это.

3 ответов


существует два способа решить эту проблему, чтобы эффективно выполнить фильтрацию:

(1) Использовать CONVN три раза, чтобы отфильтровать ваши данные с тремя 1D Gaussians, один x-by-1-by-1, один 1-by-y-by-1, и один 1-by-1-z.

(2) Если у вас есть панель инструментов обработки сигналов, используйте FFTFILT для выполнения фильтрации в обратном пространстве (или использовать любой из алгоритмов свертки fft на файлообмене).

[(3) отправить мне по электронной почте и я пришлю тебе fftFilterImage, который выполняет фильтрацию 3D Gauss.]


imfilter уже может выполнять 3D-фильтрацию, если матрица данных и фильтр, который вы ей даете, являются 3D. См.страница imfilter.


эта задача может быть обработана с новым (по состоянию на R2015a) imgaussfilt3