Hauptmenü öffnen

Scikit-image

Programmbibliothek für Bildverarbeitung

scikit-image (ehemals scikits.image) ist eine freie Software-Bibliothek zur Bildverarbeitung für die Programmiersprache Python. Sie enthält Algorithmen für Segmentierung, geometrische Transformationen, Farbraummanipulation, Analyse, Filterung, Morphologie, Feature-Erkennung und mehr. Sie ist so konzipiert, dass sie mit den numerischen und wissenschaftlichen Python-Bibliotheken NumPy und SciPy zusammenarbeitet.[2][3]

scikit-image

Scikit-image logo.png
Basisdaten

Aktuelle Version 0.14.3[1]
(23. Mai 2019)
Betriebssystem Plattformunabhängig
Programmiersprache Python, Cython
Lizenz BSD-Lizenz
scikit-image.org

ImplementierungBearbeiten

Scikit-image ist weitgehend in Python geschrieben. Einige Kernalgorithmen wurden aus Performancegründen in Cython realisiert.

BeispielBearbeiten

In diesem Beispiel wird ein Schachbrettmuster data.checkerboard() erzeugt und anschließend mit einer affinen Abbildung verzerrt. Nachdem noch weitere Elemente dem Bild hinzugefügt worden sind, werden Eckpunkte mit Hilfe des Harris Corner Detectors, eines Interest-Operators, ermittelt.

from matplotlib import pyplot as plt

from skimage import data
from skimage.feature import corner_harris, corner_subpix, corner_peaks
from skimage.transform import warp, AffineTransform
from skimage.draw import ellipse

# Wir erzeugen eine Affine Abbildung des Schachbrettmusters data.checkerboard()
tform = AffineTransform(scale=(1.3, 1.1), rotation=1, shear=0.7, translation=(210, 50))
image = warp(data.checkerboard(), tform.inverse, output_shape=(350, 350))

# Ellipse zeichnen
rr, cc = ellipse(310, 175, 10, 100)
image[rr, cc] = 1

# zwei Rechtecke zeichnen
image[180:230, 10:60] = 1
image[230:280, 60:110] = 1

# Mit Hilfe des Harris Corner Detectors Eckpunkte ermitteln
coords = corner_peaks(corner_harris(image), min_distance=5)
coords_subpix = corner_subpix(image, coords, window_size=13)

fig, ax = plt.subplots()
ax.imshow(image, interpolation='nearest', cmap=plt.cm.gray)
ax.plot(coords[:, 1], coords[:, 0], '.b', markersize=3)
ax.plot(coords_subpix[:, 1], coords_subpix[:, 0], '+r', markersize=15)
ax.axis((0, 350, 350, 0))
plt.show()

WeblinksBearbeiten

Siehe auchBearbeiten

EinzelnachweiseBearbeiten

  1. Release 0.14.3. 23. Mai 2019 (abgerufen am 24. Mai 2019).
  2. Emmanuelle Gouillart: Scikit-image: image processing — Scipy lecture notes. In: Tutorials on the scientific Python ecosystem: a quick introduction to central tools and techniques. Abgerufen am 31. August 2018 (englisch).
  3. Eric Chiang: Image Processing with scikit-image. In: The Yhat Blog. 30. Januar 2014, abgerufen am 31. August 2018 (englisch).