Kantdeteksjon
Kantdeteksjon
Kanter representerer plutselige endringer i pikselintensitet, som vanligvis tilsvarer objekters grenser. Å oppdage kanter hjelper med gjenkjenning av former og segmentering.
Sobel kantdeteksjon
Sobel-operatoren beregner gradienter (endringer i intensitet) i både X- og Y-retning, og hjelper med å oppdage 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
Viktige parametere:
src
: inputbilde (må være gråtone);ddepth
: dybde på utgangsbildet (f.eks.cv2.CV_64F
);dx
: orden på deriveringen i X-retning (sett1
for horisontale kanter);dy
: orden på deriveringen i Y-retning (sett1
for vertikale kanter);ksize
: kjernestørrelse (må være oddetall, f.eks.3
,5
,7
).
Canny kantdeteksjon
Canny-kantdetektoren er en flerstegsalgoritme som gir mer nøyaktige kanter ved å:
- Bruke Gaussisk uskarphet for å fjerne støy.
- Finne intensitetsgradienter med Sobel-filtre.
- Undertrykke svake kanter.
- Bruke dobbel terskling og kantsporing.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
image
: input gråtonebilde;threshold1
: nedre terskelverdi for kantdeteksjon (f.eks.50
);threshold2
: øvre terskelverdi for kantdeteksjon (f.eks.150
);apertureSize
(valgfritt): størrelse på Sobel-kjernen (standard:3
, må være et oddetall);L2gradient
(valgfritt): bruk mer nøyaktig L2-norm gradientberegning (standard:False
).
En sammenligning av kantdeteksjonsmetoder:

Swipe to start coding
Du har fått et image
:
- Konverter bildet til gråtoner og lagre i
gray_image
; - Bruk Sobel-filter i X- og Y-retningene (utgangsdybde
cv2.CV_64F
og kjernestørrelse3
) og lagre i henholdsvissobel_x
,sobel_y
; - Kombiner Sobel-filtrerte retninger i
sobel_img
; - Bruk et Canny-filter med terskelverdier fra
200
til300
og lagre icanny_img
.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Awesome!
Completion rate improved to 3.45
Kantdeteksjon
Sveip for å vise menyen
Kantdeteksjon
Kanter representerer plutselige endringer i pikselintensitet, som vanligvis tilsvarer objekters grenser. Å oppdage kanter hjelper med gjenkjenning av former og segmentering.
Sobel kantdeteksjon
Sobel-operatoren beregner gradienter (endringer i intensitet) i både X- og Y-retning, og hjelper med å oppdage 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
Viktige parametere:
src
: inputbilde (må være gråtone);ddepth
: dybde på utgangsbildet (f.eks.cv2.CV_64F
);dx
: orden på deriveringen i X-retning (sett1
for horisontale kanter);dy
: orden på deriveringen i Y-retning (sett1
for vertikale kanter);ksize
: kjernestørrelse (må være oddetall, f.eks.3
,5
,7
).
Canny kantdeteksjon
Canny-kantdetektoren er en flerstegsalgoritme som gir mer nøyaktige kanter ved å:
- Bruke Gaussisk uskarphet for å fjerne støy.
- Finne intensitetsgradienter med Sobel-filtre.
- Undertrykke svake kanter.
- Bruke dobbel terskling og kantsporing.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
image
: input gråtonebilde;threshold1
: nedre terskelverdi for kantdeteksjon (f.eks.50
);threshold2
: øvre terskelverdi for kantdeteksjon (f.eks.150
);apertureSize
(valgfritt): størrelse på Sobel-kjernen (standard:3
, må være et oddetall);L2gradient
(valgfritt): bruk mer nøyaktig L2-norm gradientberegning (standard:False
).
En sammenligning av kantdeteksjonsmetoder:

Swipe to start coding
Du har fått et image
:
- Konverter bildet til gråtoner og lagre i
gray_image
; - Bruk Sobel-filter i X- og Y-retningene (utgangsdybde
cv2.CV_64F
og kjernestørrelse3
) og lagre i henholdsvissobel_x
,sobel_y
; - Kombiner Sobel-filtrerte retninger i
sobel_img
; - Bruk et Canny-filter med terskelverdier fra
200
til300
og lagre icanny_img
.
Løsning
Takk for tilbakemeldingene dine!
single