Scale space implementation
By definition, the linear scale space representation of an N-dimensional signal is obtained by smoothing with the N-dimensional Gaussian kernel. Using the separability property of the Gaussian kernel, this operation can be decomposed into a set of separable smoothing steps with a one-dimensional kernel along each dimension.
When implementing this smoothing step in practice, there are several approaches that could be taken: The presumably simplest approach is to convolve the discrete signal with a sampled Gaussian kernel:
which in turn is truncated at the ends to give a filter with finite impulse response. A more refined approach is to convolve the original signal by the discrete Gaussian kernel [1].[2]
where $I_n(t)$ denotes the modified Bessel functions of integer order. This filter can be truncated in the spatial domain or be implemented in terms of a closed-form expression for its discrete Fourier transform:
If computational efficiency is a primary criterion, implementation of the Gaussian kernel and Gaussian derivatives in terms of recursive filters is a common option [3][4]. Please, note, however that at fine scales these separable approaches do not always give the best possible approximation to rotational symmetry, so non-separable implementations for two-dimensional images may be considered as an alternative.
References
- ^ Lindeberg, T., "On the construction of a scale-space for discrete images," ISRN KTH/NA/P-88/08-SE, 1988.
- ^ Lindeberg, T., "Scale-space for discrete signals," PAMI(12), No. 3, March 1990, pp. 234-254.
- ^ Young, I.I., van Vliet, L.J.: Recursive implementation of the Gaussian filter, Signal Processing, vol. 44, no. 2, 1995, 139-151.
- ^ Deriche, R: Recursively implementing the Gaussian and its derivatives, INRIA Research Report 1893, 1993.