scipy.signal.gauss_spline¶
-
scipy.signal.
gauss_spline
(x, n)[source]¶ Gaussian approximation to B-spline basis function of order n.
- Parameters
- xarray
a knot vector
- nint
The order of the spline. Must be non-negative, i.e., n >= 0
- Returns
- resndarray
B-spline basis function values approximated by a zero-mean Gaussian function.
Notes
The B-spline basis function can be approximated well by a zero-mean Gaussian function with standard-deviation equal to \(\sigma=(n+1)/12\) for large n :
\[\frac{1}{\sqrt {2\pi\sigma^2}}exp(-\frac{x^2}{2\sigma})\]References
- 1
Bouma H., Vilanova A., Bescos J.O., ter Haar Romeny B.M., Gerritsen F.A. (2007) Fast and Accurate Gaussian Derivatives Based on B-Splines. In: Sgallari F., Murli A., Paragios N. (eds) Scale Space and Variational Methods in Computer Vision. SSVM 2007. Lecture Notes in Computer Science, vol 4485. Springer, Berlin, Heidelberg
- 2
http://folk.uio.no/inf3330/scripting/doc/python/SciPy/tutorial/old/node24.html
Examples
We can calculate B-Spline basis functions approximated by a gaussian distribution:
>>> from scipy.signal import gauss_spline, bspline >>> knots = np.array([-1.0, 0.0, -1.0]) >>> gauss_spline(knots, 3) array([0.15418033, 0.6909883, 0.15418033]) # may vary
>>> bspline(knots, 3) array([0.16666667, 0.66666667, 0.16666667]) # may vary