Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Grundlegende Transformationen | Bildverarbeitung mit OpenCV
Grundlagen der Computer Vision

bookGrundlegende Transformationen

Note
Definition

OpenCV (Open Source Computer Vision Library) ist eine leistungsstarke Open-Source-Bibliothek, die für Echtzeit-Computer Vision und Bildverarbeitung entwickelt wurde. Sie bietet Werkzeuge zur Bildmanipulation, Objekterkennung und sogar zur Arbeit mit Deep-Learning-Modellen.

Einlesen und Anzeigen eines Bildes

Bevor Transformationen durchgeführt werden, muss zunächst ein Bild mit OpenCV geladen und angezeigt werden. Das Foto wurde bereits importiert. Auf Ihrem lokalen Computer sollten Sie zum einfachen Einlesen und Anzeigen des Fotos Folgendes verwenden:

import cv2

image = cv2.imread('path/to/image.jpg')
cv2.imshow('Image title', image)

Größenänderung eines Bildes

Die Größenänderung ist nützlich, um Bilder unter Beibehaltung des Seitenverhältnisses (ratio) (fx- und fy-Parameter) zu skalieren, wobei fx und fy den Skalierungsfaktor für Breite und Höhe definieren.

resized_image = cv2.resize(image, fx=0.7, fy=0.5)

Es können auch exakte Pixelabmessungen angegeben werden (Parameter dsize), wobei dsize die Ausgabedimensionen (new_y, new_x) festlegt.

resized = cv2.resize(image, (100, 100))

Bildrotation

Um ein Bild um einen bestimmten Winkel zu drehen, werden cv2.getRotationMatrix2D() und cv2.warpAffine() verwendet.

  • cv2.getRotationMatrix2D(center, angle, scale) definiert die Rotationsmatrix;
  • cv2.warpAffine(image, matrix, output_size) wendet die Transformation an.
height, width = image.shape[:2]
centre = (width // 2, height // 2)

rotation_matrix = cv2.getRotationMatrix2D(centre, 180, 1)
rotated = cv2.warpAffine(image, rotation_matrix, (width, height))

Zuschneiden eines Bildes

Das Zuschneiden extrahiert einen bestimmten Bereich aus einem Bild. Dies erfolgt mittels NumPy-Slicing. Die Syntax image[start_y:end_y, start_x:end_x] wählt einen gewünschten Bereich aus.

cropped = image[450:500, 250:350]
Aufgabe

Swipe to start coding

Sie erhalten ein image:

  • Bild auf die Größe (100, 100) skalieren und in der Variable resized speichern;
  • height und width aus dem Bild extrahieren;
  • center von height und width berechnen;
  • Rotationsmatrix erstellen und in der Variable rotation_matrix speichern;
  • Bild um 90 Grad im Uhrzeigersinn drehen und in der Variable rotated speichern;
  • Den Bereich X: 250-600 und Y: 100-450 aus dem Bild ausschneiden und in der Variable cropped speichern.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 1
single

single

Fragen Sie AI

expand

Fragen Sie AI

ChatGPT

Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen

close

Awesome!

Completion rate improved to 3.45

bookGrundlegende Transformationen

Swipe um das Menü anzuzeigen

Note
Definition

OpenCV (Open Source Computer Vision Library) ist eine leistungsstarke Open-Source-Bibliothek, die für Echtzeit-Computer Vision und Bildverarbeitung entwickelt wurde. Sie bietet Werkzeuge zur Bildmanipulation, Objekterkennung und sogar zur Arbeit mit Deep-Learning-Modellen.

Einlesen und Anzeigen eines Bildes

Bevor Transformationen durchgeführt werden, muss zunächst ein Bild mit OpenCV geladen und angezeigt werden. Das Foto wurde bereits importiert. Auf Ihrem lokalen Computer sollten Sie zum einfachen Einlesen und Anzeigen des Fotos Folgendes verwenden:

import cv2

image = cv2.imread('path/to/image.jpg')
cv2.imshow('Image title', image)

Größenänderung eines Bildes

Die Größenänderung ist nützlich, um Bilder unter Beibehaltung des Seitenverhältnisses (ratio) (fx- und fy-Parameter) zu skalieren, wobei fx und fy den Skalierungsfaktor für Breite und Höhe definieren.

resized_image = cv2.resize(image, fx=0.7, fy=0.5)

Es können auch exakte Pixelabmessungen angegeben werden (Parameter dsize), wobei dsize die Ausgabedimensionen (new_y, new_x) festlegt.

resized = cv2.resize(image, (100, 100))

Bildrotation

Um ein Bild um einen bestimmten Winkel zu drehen, werden cv2.getRotationMatrix2D() und cv2.warpAffine() verwendet.

  • cv2.getRotationMatrix2D(center, angle, scale) definiert die Rotationsmatrix;
  • cv2.warpAffine(image, matrix, output_size) wendet die Transformation an.
height, width = image.shape[:2]
centre = (width // 2, height // 2)

rotation_matrix = cv2.getRotationMatrix2D(centre, 180, 1)
rotated = cv2.warpAffine(image, rotation_matrix, (width, height))

Zuschneiden eines Bildes

Das Zuschneiden extrahiert einen bestimmten Bereich aus einem Bild. Dies erfolgt mittels NumPy-Slicing. Die Syntax image[start_y:end_y, start_x:end_x] wählt einen gewünschten Bereich aus.

cropped = image[450:500, 250:350]
Aufgabe

Swipe to start coding

Sie erhalten ein image:

  • Bild auf die Größe (100, 100) skalieren und in der Variable resized speichern;
  • height und width aus dem Bild extrahieren;
  • center von height und width berechnen;
  • Rotationsmatrix erstellen und in der Variable rotation_matrix speichern;
  • Bild um 90 Grad im Uhrzeigersinn drehen und in der Variable rotated speichern;
  • Den Bereich X: 250-600 und Y: 100-450 aus dem Bild ausschneiden und in der Variable cropped speichern.

Lösung

Switch to desktopWechseln Sie zum Desktop, um in der realen Welt zu übenFahren Sie dort fort, wo Sie sind, indem Sie eine der folgenden Optionen verwenden
War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 1
single

single

some-alt