# pyscsp : Scale-Space Toolbox for Python
Contains the following modules:
## discscsp : Discrete Scale-Space and Scale-Space Derivative Toolbox for Python:
This module comprises:
-- functions for computing spatial scale-space representations by spatial smoothing
with the discrete analogue of the Gaussian kernel or other discrete approximations
of the continuous Gaussian kernel, that is used for defining a Gaussian
scale-space representation.
-- functions for computing discrete approximations of Gaussian
derivatives, based on first convolving the image data with the
discrete analogue of the Gaussian kernel, and then applying
small-support central difference operations to the spatial
smoothed image data.
-- functions for computing differential expressions in terms of scale-normalized
Gaussian derivatives for different purposes in feature detection
from image data, such as edge detection, interest point detection
(blob detection or corner detection) and ridge detection, based on
the above discrete derivative approximations obtained by applying
small-support central difference operations to spatially smoothed
image data obtained by convolving the input image with the
discrete analogue of the Gaussian kernel.
For examples of how to apply these functions for computing scale-space
features, please see the enclosed Jupyter notebook
[discscspdemo.ipynb](https://github.com/tonylindeberg/pyscsp/blob/main/discscspdemo.ipynb).
For more technical descriptions about the respective functions, as well
as explanations of the theoretical properties for different discrete
approximations of the Gaussian kernel, please see the documentation
strings for the respective functions in the source code in
[discscsp.py](https://github.com/tonylindeberg/pyscsp/blob/main/pyscsp/discscsp.py).
## gaussders: Gaussian Derivative Toolbox for Python
This module comprises:
-- functions for computing discrete approximations of Gaussian
derivatives, based on convolving the image data with sampled Gaussian derivative
kernels or integrated Gaussian derivative kernels.
-- functions for computing differential expressions in terms of scale-normalized
Gaussian derivatives for different purposes in feature detection
from image data, such as edge detection, interest point detection
(blob detection or corner detection) and ridge detection, based on
the above discrete derivative approximations obtained by convolving
the input image with either sampled Gaussian derivative kernels or
integrated Gaussian derivative kernels.
For examples of how to apply these functions for computing scale-space
features, please see the enclosed Jupyter notebook
[gaussdersdemo.ipynb](https://github.com/tonylindeberg/pyscsp/blob/main/gaussdersdemo.ipynb).
For more technical descriptions about the respective functions, as well
as explanations of the theoretical properties for different discrete
approximations of the Gaussian kernel, please see the documentation
strings for the respective functions in the source code in
[gaussders.py](https://github.com/tonylindeberg/pyscsp/blob/main/pyscsp/gaussders.py).
## affscsp : Affine Scale-Space and Scale-Space Derivative Toolbox for Python:
This module comprises:
-- functions for computing discrete approximations of affine Gaussian
kernels and affine Gaussian directional derivative approximation
masks, which can be used for computing the responses of filter
banks of directional derivative responses over different orders of
spatial differentiation and over different image orientations.
For examples of how to apply these functions for computing scale-space
features, please see the enclosed Jupyter notebook
[affscspdemo.ipynb](https://github.com/tonylindeberg/pyscsp/blob/main/affscspdemo.ipynb).
For more technical descriptions about the respective functions, please
see the documentation strings for the respective functions in the source
code in
[affscsp.py](https://github.com/tonylindeberg/pyscsp/blob/main/pyscsp/affscsp.py).
## torchscsp : Subset of functionalities for use in PyTorch:
This module comprises:
-- functions for generating 1-D discrete approximations of the Gaussian kernel
for spatial smoothing with separable filtering in PyTorch,
-- discrete derivative approximation masks for computing discrete approximations
of Gaussian derivatives and Gaussian derivative layers in PyTorch.
-- functions for generating affine Gaussian kernels and scale-normalized discrete
directional derivative approximation masks, which can be used for computing the responses to
filter banks of directional derivatives of affine Gaussian kernels in PyTorch.
For more technical descriptions about the respective functions, please
see the documentation strings for the respective functions in the source
code in
[torchscsp.py](https://github.com/tonylindeberg/pyscsp/blob/main/pyscsp/torchscsp.py).
## Installation:
These modules can be installed using pip.
To install only the discscsp, gaussders and affscsp modules
(without installing the torchscsp module which requires a larger
installation of PyTorch) do:
```bash
pip install pyscsp
```
To install also the torchscsp module, do instead perform the
following command:
```bash
pip install 'pyscsp[torch]'
```
Note, however, that you must then have PyTorch already installed to use
this option. Otherwise, the installation command may generate an
error message.
These modules can also be downloaded directly from GitHub:
```bash
git clone git@github.com:tonylindeberg/pyscsp.git
```
## References:
Lindeberg (1990) "Scale-space for discrete signals", IEEE Transactions on
Pattern Analysis and Machine Intelligence, 12(3): 234--254.
([preprint](http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-58057))
Lindeberg (1993a) "Discrete derivative approximations with scale-space properties:
A basis for low-level feature detection", Journal of Mathematical Imaging and Vision,
3(4): 349-376.
([preprint](https://kth.diva-portal.org/smash/record.jsf?pid=diva2%3A473368&dswid=3752))
Lindeberg (1993b) Scale-Space Theory in Computer Vision, Springer.
([Online edition](http://dx.doi.org/10.1007/978-1-4757-6465-9))
Lindeberg (1994) "Scale-space theory: A basic tool for analysing
structures at different scales", Journal of Applied Statistics 21(2):
224-270.
([preprint](http://kth.diva-portal.org/smash/record.jsf?pid=diva2%3A457189&dswid=7387))
Lindeberg and Garding (1997) "Shape-adapted smoothing in estimation
of 3-D depth cues from affine distortions of local 2-D structure",
Image and Vision Computing 15: 415-434
([preprint](http://kth.diva-portal.org/smash/record.jsf?pid=diva2%3A472972&dswid=2395))
Lindeberg (1998a) "Feature detection with automatic scale selection",
International Journal of Computer Vision, vol 30(2): 77-116.
([preprint](http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-40224))
Lindeberg (1998b) "Edge detection and ridge detection with automatic scale selection",
International Journal of Computer Vision, vol 30(2): 117-154.
([preprint](http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-40226))
Lindeberg (2009) "Scale-space". In: B. Wah (Ed.) Wiley Encyclopedia of Computer
Science and Engineering, John Wiley & Sons, pp. 2495-2504.
([preprint](https://kth.diva-portal.org/smash/record.jsf?pid=diva2%3A441147&dswid=2409))
Lindeberg (2013a) "A computational theory of visual receptive fields",
Biological Cybernetics, 107(6): 589-635.
([Open Access](https://doi.org/10.1007/s00422-013-0569-z))
Lindeberg (2013b) "Scale selection properties of generalized
scale-space interest point detectors", Journal of Mathematical
Imaging and Vision, 46(2): 177-210.
([Open Access](https://doi.org/10.1007/s10851-012-0378-3))
Lindeberg (2015) "Image matching using generalized scale-space
interest points", Journal of Mathematical Imaging and Vision, 52(1):
3-36.
([Open Access](https://dx.doi.org/10.1007/s10851-014-0541-0))
Lindeberg (2021) "Normative theory of visual receptive fields",
Heliyon 7(1): e05897: 1-20.
([Open Access](https://doi.org/10.1016/j.heliyon.2021.e05897))
Lindeberg (2022) "Scale-covariant and scale-invariant Gaussian derivative
networks", Journal of Mathematical Imaging and Vision, 64(3): 223-242.
([Open Access](https://doi.org/10.1007/s10851-021-01057-9))
Lindeberg (2024a) "Discrete approximations of Gaussian smoothing and
Gaussian derivatives", Journal of Mathematical Imaging and Vision,
66(5): 759-800.
([Open Access](https://doi.org/10.1007/s10851-024-01196-9))
Lindeberg (2024b) "Approximation properties relative to continuous scale space for hybrid discretizations of Gaussian derivative operators", arXiv preprint arXiv:2405.05095.
([preprint](https://doi.org/10.48550/arXiv.2405.05095))
## Relations between the scientific papers and concepts in this code:
The paper (Lindeberg 1990) describes the discrete analogue of the
Gaussian kernel used for discrete implementation of Gaussian
smoothing, including its theoretical properties and how it can be
defined by uniqueness from a set of theoretical assumptions
(scale-space axioms) that reflect desirable properties of a
scale-space smoothing operation. This paper also describes some of the
theoretical properties of the sampled Gaussian kernel.
The paper (Lindeberg 1993a) describes how discrete derivative
approximations defined by applying difference operators to a discrete
scale-space representation preserve scale-space properties of discrete
approximations of Gaussian derivatives, provided that the scale-space
smoothing operattion is performed using the discrete analogue of the
Gaussian kernel.
Chapters 3-5 in the book (Lindeberg 1993b) give a more extensive treatment of
discrete scale-space representation defined by convolution with the
discrete analogue of the Gaussian kernel, including scale-space
properties of discrete derivative approximations defined by applying
difference operators to the discrete scale-space representation
defined by convolution with the discrete analogue of the Gaussian
kernel. This treatment also describes theoretical properties of the
sampled Gaussian kernel, the integrated Gaussian kernel and the
linearily integrated Gaussian kernel.
The paper (Lindeberg 1994) gives a comprehensive general overview over the
notion of Gaussian scale-space representation.
Chapter 14 in the book (Lindeberg 1993b) and the paper
(Lindeberg and Garding 1997) describe the notion of affine Gaussian
scale space, with its closedness property under affine image
transformations, referred to as affine covariance or affine equivariance.
The paper (Lindeberg 1998a) describes the blob detector based on the
spatial extrema of the Laplacian operator (N-jet function 'Laplace'), the
interest point detector based on spatial extrema of the determinant of
the Hessian operator (N-jet function 'detHessian') and the corner
detector based on spatial extrema of the rescaled level curve
curvature operator (N-jet function 'Kappa'). This paper also defines
the notion of gamma-normalized scale-space derivatives by multiplying
the regular Gaussian derivative operators by the scale parameter s =
sigma^2 raised to the power of gamma multiplied by the order of
differentiation and divided by two.
The paper (Lindeberg 1998b) describes the differential definition of
edge detection from local directional derivatives of the image
intensity in the gradient direction (N-jet functions 'Lv', 'Lv2Lvv' and
Lv3Lvv') as well as corresponding ridge and valley detectors defined
from directional derivatives in the principal curvature directions (p,
q) of the grey-level landscape (N-jet functions 'Lp', 'Lq', 'Lpp' and
'Lqq').
The paper (Lindeberg 2009) gives a comprehensive overview of basic
components in scale-space theory, and can in this respect serve as a
good first introduction to this area, including demonstrations of how
different types of differential invariants in scale-space (in this
code referred to as N-jet functions) can be used for basic purposes of
detecting image features in image data.
The papers (Lindeberg 2013a) and (Lindeberg 2021) demonstrate how
the spatial component of the receptive fields of simple cells in
the primary visual cortex can be well modelled by directional
derivatives of affine Gaussian kernels. In the code below, we
provide functions for generating such kernels corresponding to
directional derivatives of affine Gaussian kernels and for computing
the effect of convolving images with such kernels.
The papers (Lindeberg 2013b, Lindeberg 2015) give a more modern treatment of some of
the concepts described in (Lindeberg 1998a), regarding the use of
spatial extrema of the Laplacian operator (N-jet function 'Laplace'),
the determinant of the Hessian operator (N-jet function 'detHessian')
and the rescaled level curve curvature operator (N-jet function 'Kappa')
for interest point detection.
The paper (Lindeberg 2022) defines the notion of a Gaussian derivative
layer, as a linear combination of scale-normalized Gaussian derivative
responses, as a basic concept for defining provably scale-covariant
and scale-invariant deep networks.
The paper (Lindeberg 2024a) gives an in-depth treatment of different
ways of approximating the Gaussian smoothing operation and the
Gaussian derivative operators that underlie the computation of
scale-space features. In this respect, this paper provides both
the theoretical foundations and quantitative performance
characterizations for many of the implementations in
the pyscsp package.
The paper (Lindeberg 2024b) extends the treatment of discrete
approximations of Gaussian derivative operators to a characterization
of properties of the hybrid discretization methods, based on
combinations of a first stage of spatial smoothing, with either the
normalized sampled Gaussian kernel or the integrated Gaussian kernel,
followed by central differences. These discretization methods are
computationally more efficient in situations when multiple derivatives
of different orders are to be computed at the same scale level,
compared to explicit convolutions with either sampled Gaussian
derivative kernels or integrated Gaussian derivative kernels.
## Remarks:
To avoid possible misunderstandings, this pyscsp package does
not contain the full implementations needed to reproduce the methods
in the above papers, only a subset of basic functionalities regarding
the first layer of computations on the image data.
The original implementations for most of the above papers have been
performed in C or Matlab. Only for the papers (Lindeberg 2022),
(Lindeberg 2024a) and (Lindeberg 2024b),
the experimental work has been based on Python implementations.
The more general set of references listed here is, however, provided
to point to a wider context, in which the basic functions in the
pyscsp package can be used.
Raw data
{
"_id": null,
"home_page": "https://github.com/tonylindeberg/pyscsp",
"name": "pyscsp",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.7",
"maintainer_email": null,
"keywords": null,
"author": "Tony Lindeberg",
"author_email": "tony@kth.se",
"download_url": "https://files.pythonhosted.org/packages/43/ba/afdd4be606dffa77489224cd097e31062c5275f725126f6da4c866f3e6f2/pyscsp-1.0.2.tar.gz",
"platform": null,
"description": "# pyscsp : Scale-Space Toolbox for Python\n\nContains the following modules:\n\n## discscsp : Discrete Scale-Space and Scale-Space Derivative Toolbox for Python:\n\nThis module comprises:\n\n-- functions for computing spatial scale-space representations by spatial smoothing \n with the discrete analogue of the Gaussian kernel or other discrete approximations \n\t of the continuous Gaussian kernel, that is used for defining a Gaussian \n\t scale-space representation.\n\n-- functions for computing discrete approximations of Gaussian\n\tderivatives, based on first convolving the image data with the\n\tdiscrete analogue of the Gaussian kernel, and then applying\n\tsmall-support central difference operations to the spatial\n\tsmoothed image data.\n\t\n-- functions for computing differential expressions in terms of scale-normalized\n Gaussian derivatives for different purposes in feature detection\n from image data, such as edge detection, interest point detection\n (blob detection or corner detection) and ridge detection, based on\n the above discrete derivative approximations obtained by applying\n small-support central difference operations to spatially smoothed\n image data obtained by convolving the input image with the\n discrete analogue of the Gaussian kernel.\n\t\nFor examples of how to apply these functions for computing scale-space\nfeatures, please see the enclosed Jupyter notebook \n[discscspdemo.ipynb](https://github.com/tonylindeberg/pyscsp/blob/main/discscspdemo.ipynb).\n\nFor more technical descriptions about the respective functions, as well\nas explanations of the theoretical properties for different discrete\napproximations of the Gaussian kernel, please see the documentation\nstrings for the respective functions in the source code in \n[discscsp.py](https://github.com/tonylindeberg/pyscsp/blob/main/pyscsp/discscsp.py).\n\n## gaussders: Gaussian Derivative Toolbox for Python\n\nThis module comprises:\n\n-- functions for computing discrete approximations of Gaussian\n\tderivatives, based on convolving the image data with sampled Gaussian derivative\n\tkernels or integrated Gaussian derivative kernels.\n\n-- functions for computing differential expressions in terms of scale-normalized\n Gaussian derivatives for different purposes in feature detection\n from image data, such as edge detection, interest point detection\n (blob detection or corner detection) and ridge detection, based on\n the above discrete derivative approximations obtained by convolving\n the input image with either sampled Gaussian derivative kernels or\n integrated Gaussian derivative kernels.\n\t\nFor examples of how to apply these functions for computing scale-space\nfeatures, please see the enclosed Jupyter notebook \n[gaussdersdemo.ipynb](https://github.com/tonylindeberg/pyscsp/blob/main/gaussdersdemo.ipynb).\n\nFor more technical descriptions about the respective functions, as well\nas explanations of the theoretical properties for different discrete\napproximations of the Gaussian kernel, please see the documentation\nstrings for the respective functions in the source code in\n[gaussders.py](https://github.com/tonylindeberg/pyscsp/blob/main/pyscsp/gaussders.py).\n\n## affscsp : Affine Scale-Space and Scale-Space Derivative Toolbox for Python:\n\nThis module comprises:\n\n-- functions for computing discrete approximations of affine Gaussian\n\tkernels and affine Gaussian directional derivative approximation\n\tmasks, which can be used for computing the responses of filter\n\tbanks of directional derivative responses over different orders of \n\tspatial differentiation and over different image orientations.\n\nFor examples of how to apply these functions for computing scale-space\nfeatures, please see the enclosed Jupyter notebook \n[affscspdemo.ipynb](https://github.com/tonylindeberg/pyscsp/blob/main/affscspdemo.ipynb).\n\nFor more technical descriptions about the respective functions, please\nsee the documentation strings for the respective functions in the source\ncode in \n[affscsp.py](https://github.com/tonylindeberg/pyscsp/blob/main/pyscsp/affscsp.py).\n\n## torchscsp : Subset of functionalities for use in PyTorch:\n\nThis module comprises:\n\n-- functions for generating 1-D discrete approximations of the Gaussian kernel\n for spatial smoothing with separable filtering in PyTorch,\n\t \n-- discrete derivative approximation masks for computing discrete approximations\n of Gaussian derivatives and Gaussian derivative layers in PyTorch.\n\n-- functions for generating affine Gaussian kernels and scale-normalized discrete\n directional derivative approximation masks, which can be used for computing the responses to\n filter banks of directional derivatives of affine Gaussian kernels in PyTorch.\n\nFor more technical descriptions about the respective functions, please\nsee the documentation strings for the respective functions in the source\ncode in \n[torchscsp.py](https://github.com/tonylindeberg/pyscsp/blob/main/pyscsp/torchscsp.py).\n\n## Installation:\n\nThese modules can be installed using pip.\n\nTo install only the discscsp, gaussders and affscsp modules\n(without installing the torchscsp module which requires a larger\ninstallation of PyTorch) do:\n```bash\npip install pyscsp\n```\n\nTo install also the torchscsp module, do instead perform the\nfollowing command:\n```bash\npip install 'pyscsp[torch]'\n```\nNote, however, that you must then have PyTorch already installed to use\nthis option. Otherwise, the installation command may generate an\nerror message.\n\nThese modules can also be downloaded directly from GitHub:\n\n```bash\ngit clone git@github.com:tonylindeberg/pyscsp.git\n```\n\n\n## References:\n\nLindeberg (1990) \"Scale-space for discrete signals\", IEEE Transactions on\nPattern Analysis and Machine Intelligence, 12(3): 234--254.\n([preprint](http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-58057))\n\nLindeberg (1993a) \"Discrete derivative approximations with scale-space properties: \nA basis for low-level feature detection\", Journal of Mathematical Imaging and Vision, \n3(4): 349-376.\n([preprint](https://kth.diva-portal.org/smash/record.jsf?pid=diva2%3A473368&dswid=3752))\n\nLindeberg (1993b) Scale-Space Theory in Computer Vision, Springer.\n([Online edition](http://dx.doi.org/10.1007/978-1-4757-6465-9))\n\nLindeberg (1994) \"Scale-space theory: A basic tool for analysing\nstructures at different scales\", Journal of Applied Statistics 21(2):\n224-270.\n([preprint](http://kth.diva-portal.org/smash/record.jsf?pid=diva2%3A457189&dswid=7387))\n\nLindeberg and Garding (1997) \"Shape-adapted smoothing in estimation \nof 3-D depth cues from affine distortions of local 2-D structure\",\nImage and Vision Computing 15: 415-434\n([preprint](http://kth.diva-portal.org/smash/record.jsf?pid=diva2%3A472972&dswid=2395))\n\nLindeberg (1998a) \"Feature detection with automatic scale selection\", \nInternational Journal of Computer Vision, vol 30(2): 77-116.\n([preprint](http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-40224))\n\nLindeberg (1998b) \"Edge detection and ridge detection with automatic scale selection\", \nInternational Journal of Computer Vision, vol 30(2): 117-154.\n([preprint](http://urn.kb.se/resolve?urn=urn:nbn:se:kth:diva-40226))\n\nLindeberg (2009) \"Scale-space\". In: B. Wah (Ed.) Wiley Encyclopedia of Computer \nScience and Engineering, John Wiley & Sons, pp. 2495-2504.\n([preprint](https://kth.diva-portal.org/smash/record.jsf?pid=diva2%3A441147&dswid=2409))\n\nLindeberg (2013a) \"A computational theory of visual receptive fields\", \nBiological Cybernetics, 107(6): 589-635.\n([Open Access](https://doi.org/10.1007/s00422-013-0569-z))\n\nLindeberg (2013b) \"Scale selection properties of generalized\nscale-space interest point detectors\", Journal of Mathematical\nImaging and Vision, 46(2): 177-210.\n([Open Access](https://doi.org/10.1007/s10851-012-0378-3))\n\nLindeberg (2015) \"Image matching using generalized scale-space\ninterest points\", Journal of Mathematical Imaging and Vision, 52(1):\n3-36.\n([Open Access](https://dx.doi.org/10.1007/s10851-014-0541-0))\n\nLindeberg (2021) \"Normative theory of visual receptive fields\", \nHeliyon 7(1): e05897: 1-20.\n([Open Access](https://doi.org/10.1016/j.heliyon.2021.e05897))\n\nLindeberg (2022) \"Scale-covariant and scale-invariant Gaussian derivative \nnetworks\", Journal of Mathematical Imaging and Vision, 64(3): 223-242.\n([Open Access](https://doi.org/10.1007/s10851-021-01057-9))\n\nLindeberg (2024a) \"Discrete approximations of Gaussian smoothing and\nGaussian derivatives\", Journal of Mathematical Imaging and Vision,\n66(5): 759-800.\n([Open Access](https://doi.org/10.1007/s10851-024-01196-9))\n\nLindeberg (2024b) \"Approximation properties relative to continuous scale space for hybrid discretizations of Gaussian derivative operators\", arXiv preprint arXiv:2405.05095.\n([preprint](https://doi.org/10.48550/arXiv.2405.05095))\n\n\n## Relations between the scientific papers and concepts in this code:\n\nThe paper (Lindeberg 1990) describes the discrete analogue of the\nGaussian kernel used for discrete implementation of Gaussian\nsmoothing, including its theoretical properties and how it can be\ndefined by uniqueness from a set of theoretical assumptions\n(scale-space axioms) that reflect desirable properties of a\nscale-space smoothing operation. This paper also describes some of the\ntheoretical properties of the sampled Gaussian kernel.\n\nThe paper (Lindeberg 1993a) describes how discrete derivative\napproximations defined by applying difference operators to a discrete\nscale-space representation preserve scale-space properties of discrete\napproximations of Gaussian derivatives, provided that the scale-space\nsmoothing operattion is performed using the discrete analogue of the\nGaussian kernel.\n\nChapters 3-5 in the book (Lindeberg 1993b) give a more extensive treatment of\ndiscrete scale-space representation defined by convolution with the\ndiscrete analogue of the Gaussian kernel, including scale-space\nproperties of discrete derivative approximations defined by applying\ndifference operators to the discrete scale-space representation\ndefined by convolution with the discrete analogue of the Gaussian\nkernel. This treatment also describes theoretical properties of the\nsampled Gaussian kernel, the integrated Gaussian kernel and the\nlinearily integrated Gaussian kernel.\n\nThe paper (Lindeberg 1994) gives a comprehensive general overview over the\nnotion of Gaussian scale-space representation.\n\nChapter 14 in the book (Lindeberg 1993b) and the paper\n(Lindeberg and Garding 1997) describe the notion of affine Gaussian\nscale space, with its closedness property under affine image\ntransformations, referred to as affine covariance or affine equivariance.\n\nThe paper (Lindeberg 1998a) describes the blob detector based on the\nspatial extrema of the Laplacian operator (N-jet function 'Laplace'), the\ninterest point detector based on spatial extrema of the determinant of\nthe Hessian operator (N-jet function 'detHessian') and the corner\ndetector based on spatial extrema of the rescaled level curve\ncurvature operator (N-jet function 'Kappa'). This paper also defines\nthe notion of gamma-normalized scale-space derivatives by multiplying\nthe regular Gaussian derivative operators by the scale parameter s =\nsigma^2 raised to the power of gamma multiplied by the order of\ndifferentiation and divided by two.\n\nThe paper (Lindeberg 1998b) describes the differential definition of\nedge detection from local directional derivatives of the image\nintensity in the gradient direction (N-jet functions 'Lv', 'Lv2Lvv' and\nLv3Lvv') as well as corresponding ridge and valley detectors defined\nfrom directional derivatives in the principal curvature directions (p,\nq) of the grey-level landscape (N-jet functions 'Lp', 'Lq', 'Lpp' and\n'Lqq').\n\nThe paper (Lindeberg 2009) gives a comprehensive overview of basic\ncomponents in scale-space theory, and can in this respect serve as a\ngood first introduction to this area, including demonstrations of how\ndifferent types of differential invariants in scale-space (in this\ncode referred to as N-jet functions) can be used for basic purposes of\ndetecting image features in image data.\n\nThe papers (Lindeberg 2013a) and (Lindeberg 2021) demonstrate how\nthe spatial component of the receptive fields of simple cells in\nthe primary visual cortex can be well modelled by directional\nderivatives of affine Gaussian kernels. In the code below, we\nprovide functions for generating such kernels corresponding to\ndirectional derivatives of affine Gaussian kernels and for computing\nthe effect of convolving images with such kernels.\n\nThe papers (Lindeberg 2013b, Lindeberg 2015) give a more modern treatment of some of\nthe concepts described in (Lindeberg 1998a), regarding the use of\nspatial extrema of the Laplacian operator (N-jet function 'Laplace'),\nthe determinant of the Hessian operator (N-jet function 'detHessian')\nand the rescaled level curve curvature operator (N-jet function 'Kappa')\nfor interest point detection.\n\nThe paper (Lindeberg 2022) defines the notion of a Gaussian derivative\nlayer, as a linear combination of scale-normalized Gaussian derivative\nresponses, as a basic concept for defining provably scale-covariant\nand scale-invariant deep networks.\n\nThe paper (Lindeberg 2024a) gives an in-depth treatment of different\nways of approximating the Gaussian smoothing operation and the\nGaussian derivative operators that underlie the computation of\nscale-space features. In this respect, this paper provides both\nthe theoretical foundations and quantitative performance\ncharacterizations for many of the implementations in\nthe pyscsp package.\n\nThe paper (Lindeberg 2024b) extends the treatment of discrete\napproximations of Gaussian derivative operators to a characterization\nof properties of the hybrid discretization methods, based on\ncombinations of a first stage of spatial smoothing, with either the\nnormalized sampled Gaussian kernel or the integrated Gaussian kernel,\nfollowed by central differences. These discretization methods are\ncomputationally more efficient in situations when multiple derivatives\nof different orders are to be computed at the same scale level,\ncompared to explicit convolutions with either sampled Gaussian\nderivative kernels or integrated Gaussian derivative kernels. \n\n## Remarks: \n\nTo avoid possible misunderstandings, this pyscsp package does\nnot contain the full implementations needed to reproduce the methods\nin the above papers, only a subset of basic functionalities regarding\nthe first layer of computations on the image data.\n\nThe original implementations for most of the above papers have been\nperformed in C or Matlab. Only for the papers (Lindeberg 2022),\n(Lindeberg 2024a) and (Lindeberg 2024b), \nthe experimental work has been based on Python implementations.\n\nThe more general set of references listed here is, however, provided\nto point to a wider context, in which the basic functions in the\npyscsp package can be used.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Scale-Space Toolbox for Python.",
"version": "1.0.2",
"project_urls": {
"Homepage": "https://github.com/tonylindeberg/pyscsp",
"Repository": "https://github.com/tonylindeberg/pyscsp"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "dcc29e596f247f691992c847107b67c19388b2d4d51ca729877495accb681f01",
"md5": "516aa949cbc2cf1d6724cad23319f332",
"sha256": "44592ffce18f60aa3e825dbb44c045950be8603ae2f3641a1055987ea2a59462"
},
"downloads": -1,
"filename": "pyscsp-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "516aa949cbc2cf1d6724cad23319f332",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.7",
"size": 34672,
"upload_time": "2024-09-09T16:06:11",
"upload_time_iso_8601": "2024-09-09T16:06:11.039967Z",
"url": "https://files.pythonhosted.org/packages/dc/c2/9e596f247f691992c847107b67c19388b2d4d51ca729877495accb681f01/pyscsp-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "43baafdd4be606dffa77489224cd097e31062c5275f725126f6da4c866f3e6f2",
"md5": "c09bd11f81fff06164dd7f3d9f5022ac",
"sha256": "7c3f6d6d1c12681dbe02a8bfe6b0ef66d7566f58f1b196020d2a8df0e40fdaac"
},
"downloads": -1,
"filename": "pyscsp-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "c09bd11f81fff06164dd7f3d9f5022ac",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.7",
"size": 34921,
"upload_time": "2024-09-09T16:06:12",
"upload_time_iso_8601": "2024-09-09T16:06:12.594528Z",
"url": "https://files.pythonhosted.org/packages/43/ba/afdd4be606dffa77489224cd097e31062c5275f725126f6da4c866f3e6f2/pyscsp-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-09-09 16:06:12",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tonylindeberg",
"github_project": "pyscsp",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pyscsp"
}