Kantdetektering
Kantdetektion
Kanterna representerar plötsliga förändringar i pixelintensitet, vilket vanligtvis motsvarar objektgränser. Att detektera kanter underlättar formigenkänning och segmentering.
Sobel-kantdetektion
Sobeloperatorn beräknar gradienter (förändringar i intensitet) i både X- och Y-riktning, vilket hjälper till att identifiera horisontella och vertikala kanter.
# 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
Viktiga parametrar:
src
: inmatningsbild (måste vara gråskala);ddepth
: djupet på utmatningsbilden (t.ex.cv2.CV_64F
);dx
: ordningen av derivatan i X-riktning (ange1
för horisontella kanter);dy
: ordningen av derivatan i Y-riktning (ange1
för vertikala kanter);ksize
: kärnstorlek (måste vara udda, t.ex.3
,5
,7
).
Canny-kantdetektion
Canny Edge Detector är en flerstegsalgoritm som ger mer exakta kanter genom att:
- Applicera Gaussisk oskärpa för att ta bort brus.
- Hitta intensitetsgradienter med Sobel-filter.
- Undertrycka svaga kanter.
- Använda dubbel tröskling och kantspårning.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
image
: inmatad gråskalebild;threshold1
: lägre tröskelvärde för kantdetektion (t.ex.50
);threshold2
: övre tröskelvärde för kantdetektion (t.ex.150
);apertureSize
(valfritt): storlek på Sobel-kärnan (standard:3
, måste vara udda);L2gradient
(valfritt): använd mer exakt L2-norm gradientberäkning (standard:False
).
En jämförelse av kantdetekteringsmetoder:

Swipe to start coding
Du har fått en image
:
- Konvertera bilden till gråskala och spara i
gray_image
; - Applicera Sobel-filter i X- och Y-riktning (utmatningsdjup
cv2.CV_64F
och kernelstorlek3
) och spara isobel_x
,sobel_y
respektive; - Kombinera Sobel-filtrerade riktningar i
sobel_img
; - Applicera ett Canny-filter med tröskelvärden från
200
till300
och spara icanny_img
.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
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
Kantdetektering
Svep för att visa menyn
Kantdetektion
Kanterna representerar plötsliga förändringar i pixelintensitet, vilket vanligtvis motsvarar objektgränser. Att detektera kanter underlättar formigenkänning och segmentering.
Sobel-kantdetektion
Sobeloperatorn beräknar gradienter (förändringar i intensitet) i både X- och Y-riktning, vilket hjälper till att identifiera horisontella och vertikala kanter.
# 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
Viktiga parametrar:
src
: inmatningsbild (måste vara gråskala);ddepth
: djupet på utmatningsbilden (t.ex.cv2.CV_64F
);dx
: ordningen av derivatan i X-riktning (ange1
för horisontella kanter);dy
: ordningen av derivatan i Y-riktning (ange1
för vertikala kanter);ksize
: kärnstorlek (måste vara udda, t.ex.3
,5
,7
).
Canny-kantdetektion
Canny Edge Detector är en flerstegsalgoritm som ger mer exakta kanter genom att:
- Applicera Gaussisk oskärpa för att ta bort brus.
- Hitta intensitetsgradienter med Sobel-filter.
- Undertrycka svaga kanter.
- Använda dubbel tröskling och kantspårning.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
image
: inmatad gråskalebild;threshold1
: lägre tröskelvärde för kantdetektion (t.ex.50
);threshold2
: övre tröskelvärde för kantdetektion (t.ex.150
);apertureSize
(valfritt): storlek på Sobel-kärnan (standard:3
, måste vara udda);L2gradient
(valfritt): använd mer exakt L2-norm gradientberäkning (standard:False
).
En jämförelse av kantdetekteringsmetoder:

Swipe to start coding
Du har fått en image
:
- Konvertera bilden till gråskala och spara i
gray_image
; - Applicera Sobel-filter i X- och Y-riktning (utmatningsdjup
cv2.CV_64F
och kernelstorlek3
) och spara isobel_x
,sobel_y
respektive; - Kombinera Sobel-filtrerade riktningar i
sobel_img
; - Applicera ett Canny-filter med tröskelvärden från
200
till300
och spara icanny_img
.
Lösning
Tack för dina kommentarer!
single