Scikit-image

Last updated
scikit-image
Original author(s) Stéfan van der Walt
Initial releaseAugust 2009;14 years ago (2009-08)
Stable release
0.23.2 [1] / 20 April 2024;23 days ago (20 April 2024)
Repository
Written in Python, Cython, and C.
Operating system Linux, Mac OS X, Microsoft Windows
Type Library for image processing
License BSD License
Website scikit-image.org

scikit-image (formerly scikits.image) is an open-source image processing library for the Python programming language. [2] It includes algorithms for segmentation, geometric transformations, color space manipulation, analysis, filtering, morphology, feature detection, and more. [3] It is designed to interoperate with the Python numerical and scientific libraries NumPy and SciPy.

Contents

Overview

The scikit-image project started as scikits.image, by Stéfan van der Walt. Its name stems from the notion that it is a "SciKit" (SciPy Toolkit), a separately-developed and distributed third-party extension to SciPy. [4] The original codebase was later extensively rewritten by other developers. Of the various scikits, scikit-image as well as scikit-learn were described as "well-maintained and popular" in November 2012. [5] Scikit-image has also been active in the Google Summer of Code. [6]

Implementation

scikit-image is largely written in Python, with some core algorithms written in Cython to achieve performance.

Related Research Articles

<span class="mw-page-title-main">Python (programming language)</span> General-purpose programming language

Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.

<span class="mw-page-title-main">SciPy</span> Open-source Python library for scientific computing

SciPy is a free and open-source Python library used for scientific computing and technical computing.

<span class="mw-page-title-main">NumPy</span> Python library for numerical programming

NumPy is a library for the Python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large collection of high-level mathematical functions to operate on these arrays. The predecessor of NumPy, Numeric, was originally created by Jim Hugunin with contributions from several other developers. In 2005, Travis Oliphant created NumPy by incorporating features of the competing Numarray into Numeric, with extensive modifications. NumPy is open-source software and has many contributors. NumPy is a NumFOCUS fiscally sponsored project.

<span class="mw-page-title-main">Matplotlib</span> Library for creating static, animated, and interactive visualizations in Python.

Matplotlib is a plotting library for the Python programming language and its numerical mathematics extension NumPy. It provides an object-oriented API for embedding plots into applications using general-purpose GUI toolkits like Tkinter, wxPython, Qt, or GTK. There is also a procedural "pylab" interface based on a state machine, designed to closely resemble that of MATLAB, though its use is discouraged. SciPy makes use of Matplotlib.

<span class="mw-page-title-main">Cython</span> Programming language

Cython is a superset of the programming language Python, which allows developers to write Python code that yields performance comparable to that of C.

scikit-learn Python library for machine learning

scikit-learn is a free and open-source machine learning library for the Python programming language. It features various classification, regression and clustering algorithms including support-vector machines, random forests, gradient boosting, k-means and DBSCAN, and is designed to interoperate with the Python numerical and scientific libraries NumPy and SciPy. Scikit-learn is a NumFOCUS fiscally sponsored project.

Theano is a Python library and optimizing compiler for manipulating and evaluating mathematical expressions, especially matrix-valued ones. In Theano, computations are expressed using a NumPy-esque syntax and compiled to run efficiently on either CPU or GPU architectures.

pandas (software) Python library for data analysis

Pandas is a software library written for the Python programming language for data manipulation and analysis. In particular, it offers data structures and operations for manipulating numerical tables and time series. It is free software released under the three-clause BSD license. The name is derived from the term "panel data", an econometrics term for data sets that include observations over multiple time periods for the same individuals, as well as a play on the phrase "Python data analysis". Wes McKinney started building what would become Pandas at AQR Capital while he was a researcher there from 2007 to 2010.

John D. Hunter was an American neurobiologist and the original author of Matplotlib.

<span class="mw-page-title-main">Berkeley Institute for Data Science</span>

The Berkeley Institute for Data Science (BIDS) is a central hub of research and education within University of California, Berkeley designed to facilitate data-intensive science and earn grants to be disseminated within the sciences. BIDS was initially funded by grants from the Gordon and Betty Moore Foundation and the Sloan Foundation as part of a three-year grant with data science institutes at New York University and the University of Washington. The objective of the three-university initiative is to bring together domain experts from the natural and social sciences, along with methodological experts from computer science, statistics, and applied mathematics. The organization has an executive director and a faculty director, Saul Perlmutter, who won the 2011 Nobel Prize in Physics. The initiative was announced at a White House Office of Science and Technology Policy event to highlight and promote advances in data-driven scientific discovery, and is a core component of the National Science Foundation's strategic plan for building national capacity in data science.

Travis Oliphant is an American computer scientist and businessman. He’s widely regarded as a leading authority in software engineering and programming, contributing to foundational open-source software tools for data science, machine learning and artificial intelligence. Travis is credited to have driven the proliferation of Python and is the creator of NumPy, SciPy, Numba and Anaconda.

David Cournapeau is a data scientist. He is the original author of the scikit-learn package, an open source machine learning library in the Python programming language.

PyMC is a probabilistic programming language written in Python. It can be used for Bayesian statistical modeling and probabilistic machine learning.

<span class="mw-page-title-main">Dask (software)</span> Python library for parallel computing

Dask is an open-source Python library for parallel computing. Dask scales Python code from multi-core local machines to large distributed clusters in the cloud. Dask provides a familiar user interface by mirroring the APIs of other libraries in the PyData ecosystem including: Pandas, scikit-learn and NumPy. It also exposes low-level APIs that help programmers run custom algorithms in parallel.

scikit-multiflow Machine learning library for data streams in Python

scikit-mutliflow is a free and open source software machine learning library for multi-output/multi-label and stream data written in Python.

CuPy is an open source library for GPU-accelerated computing with Python programming language, providing support for multi-dimensional arrays, sparse matrices, and a variety of numerical algorithms implemented on top of them. CuPy shares the same API set as NumPy and SciPy, allowing it to be a drop-in replacement to run NumPy/SciPy code on GPU. CuPy supports Nvidia CUDA GPU platform, and AMD ROCm GPU platform starting in v9.0.

References

  1. "Release 0.23.2". 20 April 2024. Retrieved 25 April 2024.
  2. S van der Walt; JL Schönberger; J Nunez-Iglesias; F Boulogne; JD Warner; N Yager; E Gouillart; T Yu; the scikit-image contributors (2014). "scikit-image: image processing in Python". PeerJ. 2:e453: e453. arXiv: 1407.6245 . Bibcode:2014PeerJ...2..453V. doi: 10.7717/peerj.453 . PMC   4081273 . PMID   25024921.{{cite journal}}: |author9= has generic name (help)
  3. Chiang, Eric (2014). "Image Processing with scikit-image".
  4. Dreijer, Janto. "scikit-image".
  5. Eli Bressert (2012). SciPy and NumPy: an overview for developers. O'Reilly. p. 43. ISBN   9781449361624.
  6. Birodkar, Vighnesh (2014). "GSOC 2014 – Signing Off".