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 (sett1for horisontale kanter);dy: orden på deriveringen i Y-retning (sett1for 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_64Fog kjernestørrelse3) og lagre i henholdsvissobel_x,sobel_y; - Kombiner Sobel-filtrerte retninger i
sobel_img; - Bruk et Canny-filter med terskelverdier fra
200til300og 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 (sett1for horisontale kanter);dy: orden på deriveringen i Y-retning (sett1for 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_64Fog kjernestørrelse3) og lagre i henholdsvissobel_x,sobel_y; - Kombiner Sobel-filtrerte retninger i
sobel_img; - Bruk et Canny-filter med terskelverdier fra
200til300og lagre icanny_img.
Løsning
Takk for tilbakemeldingene dine!
single