image = | frequencyFiltering3dImg (inImg3d,frequencyBandPassFilterType,cutoffFrequency,inStdDev) |
image = | frequencyFiltering3dImg (inImg3d,frequencyBandPassFilterType,cutoffFrequency,inStdDev,theta,thetaRange,phi,phiRange) |
Filters a 3d image in Fourier domain by selecting a frequency range.
This algorithm applies a band-pass filter to the input image in the frequency domain. Such an approach is very powerful since a convolution in the spatial domain becomes a voxelwise multiplication in the Fourier domain. Hence, it is computationnally faster than a spatial filtering, in particular for large kernel sizes and 3d data. Moreover, it is possible to design a filter in order to fit a determined frequency range.
The steps of the algorithm are:
As for the 2d version of this algorithm, the user can specify two different band-pass filters :
where ,
being respectively the frequencies along the image axes (see Band-pass frequency filtering 2d for more details about these filters).
In some images, it may be interesting to isolate a texture with a specific 3d orientation. For this reason, the algorithm allows to specify orientations theta and phi, as well as their ranges thetaRange and phiRange which will mask the filtered spectrum and keep only the information in the desired direction range, in degrees.
See Band-pass frequency filtering 2d for a 2d example of band-pass filtering and Points and vectors 3d representation for more details about 3d trigonometry convention.