NumPy für Bilder

Bildverarbeitung mit Python

Rebeca Gonzalez

Data Engineer

NumPy für Bilder

  • Grundlagen der Bildverarbeitung
    • Spiegeln
    • Merkmale extrahieren und analysieren

Niedlicher Hund, der im Park spaziert

Niedlicher Hund, horizontal gespiegelt

Bildverarbeitung mit Python

Bilder als NdArrays

Gebäude in Madrid

# Bild mit Matplotlib laden
madrid_image = plt.imread('/madrid.jpeg')

type(madrid_image)
<class 'numpy.ndarray'>
Bildverarbeitung mit Python

Farben mit NumPy

Traubenbild über 3 weiteren Bildern, die die Farbkanäle zeigen

Bildverarbeitung mit Python

Farben mit NumPy

# Rote Werte des Bildes erhalten
red = image[:, :, 0]

# Grüne Werte des Bildes erhalten
green = image[:, :, 1]

# Blaue Werte des Bildes erhalten
blue = image[:, :, 2]

Kanäle des Bildes separat dargestellt

Bildverarbeitung mit Python

Farben mit NumPy

Kanäle eines Bildes einer jungen Frau, jeweils in Graustufen dargestellt

plt.imshow(red, cmap="gray")    
plt.title('Red')
plt.axis('off')
plt.show()
Bildverarbeitung mit Python

Shapes

Gebäude in Madrid

# Auf die Form des Bildes zugreifen
madrid_image.shape
(426, 640, 3)
Bildverarbeitung mit Python

Sizes

Gebäude in Madrid

# Auf die Größe des Bildes zugreifen
madrid_image.size
817920
Bildverarbeitung mit Python

Bilder spiegeln: vertikal

# Bild vertikal spiegeln
vertically_flipped = np.flipud(madrid_image)

show_image(vertically_flipped, 'Vertically flipped image')

Vertikal gespiegeltes Madrid-Bild

Bildverarbeitung mit Python

Bilder spiegeln: horizontal

# Bild horizontal spiegeln
horizontally_flipped = np.fliplr(madrid_image)

show_image(horizontally_flipped, 'Horizontally flipped image')

Madrid-Bild, horizontal gespiegelt

Bildverarbeitung mit Python

Was ist ein Histogramm?

Histogramm eines dunklen Bildes Histogramm eines hellen Bildes

Bildverarbeitung mit Python

Farbhistogramme

Histogramm eines RGB-Bildes einer jungen Frau, je ein Histogramm pro Farbe

Bildverarbeitung mit Python

Anwendungen von Histogrammen

  • Analyse
  • Schwellwertbildung
  • Helligkeit und Kontrast
  • Bild egalisieren

Bild mit Schwellwert

Bildverarbeitung mit Python

Histogramme in Matplotlib

Histogramm der roten Farbe

# Roter Kanal des Bildes
red = image[:, :, 0]

# Rotes Histogramm berechnen plt.hist(red.ravel(), bins=256)
Bildverarbeitung mit Python

Histogramme mit Matplotlib visualisieren

blue = image[:, :, 2]

plt.hist(blue.ravel(), bins=256)
plt.title('Blue Histogram')
plt.show()

Histogramm der blauen Bildanteile

Bildverarbeitung mit Python

Lass uns üben!

Bildverarbeitung mit Python

Preparing Video For Download...