Kantenerkennung
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
Hinweis
Wichtige Parameter:
src: Eingabebild (muss in Graustufen vorliegen);ddepth: Tiefe des Ausgabebildes (z. B.cv2.CV_64F);dx: Ableitungsordnung in X-Richtung (auf1setzen für horizontale Kanten);dy: Ableitungsordnung in Y-Richtung (auf1setzen 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:
- Anwendung eines Gaußschen Weichzeichners zur Rauschreduzierung.
- Bestimmung von Intensitätsgradienten mit Sobel-Filtern.
- Unterdrückung schwacher Kanten.
- Verwendung von doppelter Schwellenwertsetzung und Kantennachverfolgung.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
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:
Aufgabe
Wischen, um mit dem Codieren zu beginnen
Gegeben ist ein image:
- Bild in Graustufen umwandeln und in
gray_imagespeichern; - Sobel-Filter in X- und Y-Richtung anwenden (Ausgabetiefe
cv2.CV_64Fund Kernelgröße3) und entsprechend insobel_x,sobel_yspeichern; - Sobel-gefilterte Richtungen in
sobel_imgkombinieren; - Einen Canny-Filter mit einem Schwellenwert von
200bis300anwenden und incanny_imgspeichern.
Lösung
War alles klar?
Danke für Ihr Feedback!
Abschnitt 2. Kapitel 7
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen