Kantdetektion
Kantdetektion
Kanter repræsenterer pludselige ændringer i pixelintensitet, hvilket typisk svarer til objektgrænser. Detektering af kanter hjælper med genkendelse af former og segmentering.
Sobel-kantdetektion
Sobel-operatoren beregner gradienter (ændringer i intensitet) i både X- og Y-retningen, hvilket hjælper med at detektere horisontale og vertikale 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
Vigtige parametre:
src
: inputbillede (skal være gråtone);ddepth
: dybde for outputbilledet (f.eks.cv2.CV_64F
);dx
: orden af afledt i X-retningen (sæt1
for horisontale kanter);dy
: orden af afledt i Y-retningen (sæt1
for vertikale kanter);ksize
: kernelstørrelse (skal være ulige, f.eks.3
,5
,7
).
Canny-kantdetektion
Canny Edge Detector er en flertrinsalgoritme, der giver mere præcise kanter ved at:
- Anvende Gaussisk sløring for at fjerne støj.
- Finde intensitetsgradienter ved hjælp af Sobel-filtre.
- Undertrykke svage kanter.
- Bruge dobbelt tærskelværdi og kantsporing.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
image
: input gråtonebillede;threshold1
: nedre tærskelværdi for kantdetektion (f.eks.50
);threshold2
: øvre tærskelværdi for kantdetektion (f.eks.150
);apertureSize
(valgfri): størrelse på Sobel-kernen (standard:3
, skal være ulige);L2gradient
(valgfri): brug mere præcis L2-norm gradientberegning (standard:False
).
En sammenligning af kantdetektionsmetoder:

Swipe to start coding
Du får et image
:
- Konverter billedet til gråtoner og gem det i
gray_image
; - Anvend Sobel-filter i X- og Y-retninger (output-dybde
cv2.CV_64F
og kernel-størrelse3
) og gem i henholdsvissobel_x
,sobel_y
; - Kombinér Sobel-filtrerede retninger i
sobel_img
; - Anvend et Canny-filter med tærskel fra
200
til300
og gem icanny_img
.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
Awesome!
Completion rate improved to 3.45
Kantdetektion
Stryg for at vise menuen
Kantdetektion
Kanter repræsenterer pludselige ændringer i pixelintensitet, hvilket typisk svarer til objektgrænser. Detektering af kanter hjælper med genkendelse af former og segmentering.
Sobel-kantdetektion
Sobel-operatoren beregner gradienter (ændringer i intensitet) i både X- og Y-retningen, hvilket hjælper med at detektere horisontale og vertikale 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
Vigtige parametre:
src
: inputbillede (skal være gråtone);ddepth
: dybde for outputbilledet (f.eks.cv2.CV_64F
);dx
: orden af afledt i X-retningen (sæt1
for horisontale kanter);dy
: orden af afledt i Y-retningen (sæt1
for vertikale kanter);ksize
: kernelstørrelse (skal være ulige, f.eks.3
,5
,7
).
Canny-kantdetektion
Canny Edge Detector er en flertrinsalgoritme, der giver mere præcise kanter ved at:
- Anvende Gaussisk sløring for at fjerne støj.
- Finde intensitetsgradienter ved hjælp af Sobel-filtre.
- Undertrykke svage kanter.
- Bruge dobbelt tærskelværdi og kantsporing.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
image
: input gråtonebillede;threshold1
: nedre tærskelværdi for kantdetektion (f.eks.50
);threshold2
: øvre tærskelværdi for kantdetektion (f.eks.150
);apertureSize
(valgfri): størrelse på Sobel-kernen (standard:3
, skal være ulige);L2gradient
(valgfri): brug mere præcis L2-norm gradientberegning (standard:False
).
En sammenligning af kantdetektionsmetoder:

Swipe to start coding
Du får et image
:
- Konverter billedet til gråtoner og gem det i
gray_image
; - Anvend Sobel-filter i X- og Y-retninger (output-dybde
cv2.CV_64F
og kernel-størrelse3
) og gem i henholdsvissobel_x
,sobel_y
; - Kombinér Sobel-filtrerede retninger i
sobel_img
; - Anvend et Canny-filter med tærskel fra
200
til300
og gem icanny_img
.
Løsning
Tak for dine kommentarer!
single