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.