Kantenerkennung
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
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)
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:
Swipe to start coding
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
Danke für Ihr Feedback!
single
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Awesome!
Completion rate improved to 3.45
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
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)
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:
Swipe to start coding
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
Danke für Ihr Feedback!
single