Class: SpatialFilter
Defined in: src/spatial/SpatialFilter.ts:18
Implementation of spatial filtering operations for NeuroVol
Implements
Constructors
Constructor
new SpatialFilter(volume): SpatialFilter;Defined in: src/spatial/SpatialFilter.ts:21
Parameters
volume
Returns
SpatialFilter
Methods
gaussianBlur()
gaussianBlur(sigma): NeuroVol;Defined in: src/spatial/SpatialFilter.ts:36
Apply Gaussian blur.
A Gaussian kernel is separable (w3d = wx * wy * wz), so we apply three 1D passes (O(k) per voxel per axis) instead of one full 3D convolution (O(k^3) per voxel). The boundary handling matches the full-3D path exactly: the full-3D kernel clips its window independently per axis, so the in-bounds weight sum factorises and per-axis 1D renormalisation reproduces the same result. The 1D weight vectors are taken as the marginals of the same Kernel3D.gaussian(sigma) kernel, so output is identical to within fp error.
Parameters
sigma
number | [number, number, number]
Returns
Implementation of
bilateralFilter()
bilateralFilter(options): NeuroVol;Defined in: src/spatial/SpatialFilter.ts:164
Apply bilateral filter for edge-preserving smoothing
Parameters
options
Returns
Implementation of
ISpatialFilter.bilateralFilter
guidedFilter()
guidedFilter(options): NeuroVol;Defined in: src/spatial/SpatialFilter.ts:249
Apply guided filter (He et al. 2013).
When no guide is provided the filter is self-guided (edge-preserving smoothing). The algorithm:
mean_I = box(I, r) mean_p = box(p, r) corr_Ip = box(Ip, r) corr_II = box(II, r) var_I = corr_II - mean_I * mean_I cov_Ip = corr_Ip - mean_I * mean_p a = cov_Ip / (var_I + eps) b = mean_p - a * mean_I mean_a = box(a, r) mean_b = box(b, r) output = mean_a * I + mean_b
Parameters
options
Returns
Implementation of
spatialFilter()
spatialFilter(kernel): NeuroVol;Defined in: src/spatial/SpatialFilter.ts:379
Apply a custom 3D kernel
Parameters
kernel
Returns
Implementation of
medianFilter()
medianFilter(radius): NeuroVol;Defined in: src/spatial/SpatialFilter.ts:429
Apply median filter
Parameters
radius
number
Returns
Implementation of
erode()
erode(radius): NeuroVol;Defined in: src/spatial/SpatialFilter.ts:471
Apply morphological erosion
Parameters
radius
number
Returns
Implementation of
dilate()
dilate(radius): NeuroVol;Defined in: src/spatial/SpatialFilter.ts:479
Apply morphological dilation
Parameters
radius
number
Returns
Implementation of
open()
open(radius): NeuroVol;Defined in: src/spatial/SpatialFilter.ts:487
Apply morphological opening
Parameters
radius
number
Returns
Implementation of
close()
close(radius): NeuroVol;Defined in: src/spatial/SpatialFilter.ts:495
Apply morphological closing
Parameters
radius
number
Returns
Implementation of
anisotropicDiffusion()
anisotropicDiffusion(
iterations,
kappa,
lambda): NeuroVol;Defined in: src/spatial/SpatialFilter.ts:503
Apply anisotropic diffusion filter
Parameters
iterations
number
kappa
number
lambda
number
Returns
Implementation of
ISpatialFilter.anisotropicDiffusion
edgeDetection()
edgeDetection(method): NeuroVol;Defined in: src/spatial/SpatialFilter.ts:568
Apply edge detection filter
Parameters
method
"sobel" | "laplacian" | "canny"