Skip to content

Class: SpatialFilter ​

Defined in: src/spatial/SpatialFilter.ts:18

Implementation of spatial filtering operations for NeuroVol

Implements ​

Constructors ​

Constructor ​

ts
new SpatialFilter(volume): SpatialFilter;

Defined in: src/spatial/SpatialFilter.ts:21

Parameters ​

volume ​

NeuroVol

Returns ​

SpatialFilter

Methods ​

gaussianBlur() ​

ts
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 ​

NeuroVol

Implementation of ​

ISpatialFilter.gaussianBlur


bilateralFilter() ​

ts
bilateralFilter(options): NeuroVol;

Defined in: src/spatial/SpatialFilter.ts:164

Apply bilateral filter for edge-preserving smoothing

Parameters ​

options ​

BilateralFilterOptions

Returns ​

NeuroVol

Implementation of ​

ISpatialFilter.bilateralFilter


guidedFilter() ​

ts
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 ​

GuidedFilterOptions

Returns ​

NeuroVol

Implementation of ​

ISpatialFilter.guidedFilter


spatialFilter() ​

ts
spatialFilter(kernel): NeuroVol;

Defined in: src/spatial/SpatialFilter.ts:379

Apply a custom 3D kernel

Parameters ​

kernel ​

Kernel3D

Returns ​

NeuroVol

Implementation of ​

ISpatialFilter.spatialFilter


medianFilter() ​

ts
medianFilter(radius): NeuroVol;

Defined in: src/spatial/SpatialFilter.ts:429

Apply median filter

Parameters ​

radius ​

number

Returns ​

NeuroVol

Implementation of ​

ISpatialFilter.medianFilter


erode() ​

ts
erode(radius): NeuroVol;

Defined in: src/spatial/SpatialFilter.ts:471

Apply morphological erosion

Parameters ​

radius ​

number

Returns ​

NeuroVol

Implementation of ​

ISpatialFilter.erode


dilate() ​

ts
dilate(radius): NeuroVol;

Defined in: src/spatial/SpatialFilter.ts:479

Apply morphological dilation

Parameters ​

radius ​

number

Returns ​

NeuroVol

Implementation of ​

ISpatialFilter.dilate


open() ​

ts
open(radius): NeuroVol;

Defined in: src/spatial/SpatialFilter.ts:487

Apply morphological opening

Parameters ​

radius ​

number

Returns ​

NeuroVol

Implementation of ​

ISpatialFilter.open


close() ​

ts
close(radius): NeuroVol;

Defined in: src/spatial/SpatialFilter.ts:495

Apply morphological closing

Parameters ​

radius ​

number

Returns ​

NeuroVol

Implementation of ​

ISpatialFilter.close


anisotropicDiffusion() ​

ts
anisotropicDiffusion(
   iterations, 
   kappa, 
   lambda): NeuroVol;

Defined in: src/spatial/SpatialFilter.ts:503

Apply anisotropic diffusion filter

Parameters ​

iterations ​

number

kappa ​

number

lambda ​

number

Returns ​

NeuroVol

Implementation of ​

ISpatialFilter.anisotropicDiffusion


edgeDetection() ​

ts
edgeDetection(method): NeuroVol;

Defined in: src/spatial/SpatialFilter.ts:568

Apply edge detection filter

Parameters ​

method ​

"sobel" | "laplacian" | "canny"

Returns ​

NeuroVol

Implementation of ​

ISpatialFilter.edgeDetection

Released under the MIT License.