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

bookKantenerkennung

Kantenerkennung

Kanten stellen abrupte Änderungen der Pixelintensität dar, die in der Regel Objektgrenzen entsprechen. Die Erkennung von Kanten unterstützt die Formerkennung und Segmentierung.

Sobel-Kantenerkennung

Der Sobel-Operator berechnet Gradienten (Intensitätsänderungen) in X- und Y-Richtung und ermöglicht so die Erkennung von horizontalen und vertikalen Kanten.

# Convert to grayscale
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

# Apply Sobel filter
sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=5)  # Detects vertical edges
sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=5)  # Detects horizontal edges
sobel_combined = cv2.magnitude(sobel_x, sobel_y)  # Combines both directions
Note
Hinweis

Wichtige Parameter:

  • src: Eingabebild (muss in Graustufen vorliegen);
  • ddepth: Tiefe des Ausgabebildes (z. B. cv2.CV_64F);
  • dx: Ableitungsordnung in X-Richtung (auf 1 setzen für horizontale Kanten);
  • dy: Ableitungsordnung in Y-Richtung (auf 1 setzen für vertikale Kanten);
  • ksize: Kernelgröße (muss ungerade sein, z. B. 3, 5, 7).

Canny-Kantenerkennung

Der Canny-Kantendetektor ist ein mehrstufiger Algorithmus, der präzisere Kanten liefert durch:

  1. Anwendung eines Gaußschen Weichzeichners zur Rauschreduzierung.
  2. Bestimmung von Intensitätsgradienten mit Sobel-Filtern.
  3. Unterdrückung schwacher Kanten.
  4. Verwendung von doppelter Schwellenwertsetzung und Kantennachverfolgung.
# Apply Canny Edge Detector 
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)  
Note
Hinweis
  • image: Eingabebild in Graustufen;
  • threshold1: untere Schwelle für die Kantenerkennung (z. B. 50);
  • threshold2: obere Schwelle für die Kantenerkennung (z. B. 150);
  • apertureSize (optional): Größe des Sobel-Kernels (Standard: 3, muss ungerade sein);
  • L2gradient (optional): genauere Berechnung des Gradienten mit L2-Norm verwenden (Standard: False).

Ein Vergleich von Kantenerkennungsverfahren:

Kantenerkennung im Vergleich
Aufgabe

Swipe to start coding

Gegeben ist ein image:

  • Bild in Graustufen umwandeln und in gray_image speichern;
  • Sobel-Filter in X- und Y-Richtung anwenden (Ausgabetiefe cv2.CV_64F und Kernelgröße 3) und entsprechend in sobel_x, sobel_y speichern;
  • Sobel-gefilterte Richtungen in sobel_img kombinieren;
  • Einen Canny-Filter mit einem Schwellenwert von 200 bis 300 anwenden und in canny_img speichern.

Lösung

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 2. Kapitel 7
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

Suggested prompts:

What are the main differences between Sobel and Canny edge detection?

Can you explain when to use Sobel versus Canny edge detection?

Can you provide more details on how the Canny edge detector works?

close

Awesome!

Completion rate improved to 3.45

bookKantenerkennung

Swipe um das Menü anzuzeigen

Kantenerkennung

Kanten stellen abrupte Änderungen der Pixelintensität dar, die in der Regel Objektgrenzen entsprechen. Die Erkennung von Kanten unterstützt die Formerkennung und Segmentierung.

Sobel-Kantenerkennung

Der Sobel-Operator berechnet Gradienten (Intensitätsänderungen) in X- und Y-Richtung und ermöglicht so die Erkennung von horizontalen und vertikalen Kanten.

# Convert to grayscale
image = cv2.cvtColor(image, cv2.COLOR_RGB2GRAY)

# Apply Sobel filter
sobel_x = cv2.Sobel(image, cv2.CV_64F, 1, 0, ksize=5)  # Detects vertical edges
sobel_y = cv2.Sobel(image, cv2.CV_64F, 0, 1, ksize=5)  # Detects horizontal edges
sobel_combined = cv2.magnitude(sobel_x, sobel_y)  # Combines both directions
Note
Hinweis

Wichtige Parameter:

  • src: Eingabebild (muss in Graustufen vorliegen);
  • ddepth: Tiefe des Ausgabebildes (z. B. cv2.CV_64F);
  • dx: Ableitungsordnung in X-Richtung (auf 1 setzen für horizontale Kanten);
  • dy: Ableitungsordnung in Y-Richtung (auf 1 setzen für vertikale Kanten);
  • ksize: Kernelgröße (muss ungerade sein, z. B. 3, 5, 7).

Canny-Kantenerkennung

Der Canny-Kantendetektor ist ein mehrstufiger Algorithmus, der präzisere Kanten liefert durch:

  1. Anwendung eines Gaußschen Weichzeichners zur Rauschreduzierung.
  2. Bestimmung von Intensitätsgradienten mit Sobel-Filtern.
  3. Unterdrückung schwacher Kanten.
  4. Verwendung von doppelter Schwellenwertsetzung und Kantennachverfolgung.
# Apply Canny Edge Detector 
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)  
Note
Hinweis
  • image: Eingabebild in Graustufen;
  • threshold1: untere Schwelle für die Kantenerkennung (z. B. 50);
  • threshold2: obere Schwelle für die Kantenerkennung (z. B. 150);
  • apertureSize (optional): Größe des Sobel-Kernels (Standard: 3, muss ungerade sein);
  • L2gradient (optional): genauere Berechnung des Gradienten mit L2-Norm verwenden (Standard: False).

Ein Vergleich von Kantenerkennungsverfahren:

Kantenerkennung im Vergleich
Aufgabe

Swipe to start coding

Gegeben ist ein image:

  • Bild in Graustufen umwandeln und in gray_image speichern;
  • Sobel-Filter in X- und Y-Richtung anwenden (Ausgabetiefe cv2.CV_64F und Kernelgröße 3) und entsprechend in sobel_x, sobel_y speichern;
  • Sobel-gefilterte Richtungen in sobel_img kombinieren;
  • Einen Canny-Filter mit einem Schwellenwert von 200 bis 300 anwenden und in canny_img 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 7
single

single

some-alt