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 (auf1
setzen für horizontale Kanten);dy
: Ableitungsordnung in Y-Richtung (auf1
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:
- 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_image
speichern; - Sobel-Filter in X- und Y-Richtung anwenden (Ausgabetiefe
cv2.CV_64F
und Kernelgröße3
) und entsprechend insobel_x
,sobel_y
speichern; - Sobel-gefilterte Richtungen in
sobel_img
kombinieren; - Einen Canny-Filter mit einem Schwellenwert von
200
bis300
anwenden und incanny_img
speichern.
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
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?
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 (auf1
setzen für horizontale Kanten);dy
: Ableitungsordnung in Y-Richtung (auf1
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:
- 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_image
speichern; - Sobel-Filter in X- und Y-Richtung anwenden (Ausgabetiefe
cv2.CV_64F
und Kernelgröße3
) und entsprechend insobel_x
,sobel_y
speichern; - Sobel-gefilterte Richtungen in
sobel_img
kombinieren; - Einen Canny-Filter mit einem Schwellenwert von
200
bis300
anwenden und incanny_img
speichern.
Lösung
Danke für Ihr Feedback!
single