Randdetectie
Randdetectie
Randen vertegenwoordigen plotselinge veranderingen in pixelintensiteit, wat meestal overeenkomt met objectgrenzen. Het detecteren van randen helpt bij vormherkenning en segmentatie.
Sobel-randdetectie
De Sobel-operator berekent gradiënten (veranderingen in intensiteit) in zowel de X- als Y-richting, waardoor horizontale en verticale randen kunnen worden gedetecteerd.
# 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
Belangrijke parameters:
src
: invoerafbeelding (moet grijswaarden zijn);ddepth
: diepte van de uitvoerafbeelding (bijv.cv2.CV_64F
);dx
: orde van de afgeleide in de X-richting (stel in op1
voor horizontale randen);dy
: orde van de afgeleide in de Y-richting (stel in op1
voor verticale randen);ksize
: kernelgrootte (moet oneven zijn, bijv.3
,5
,7
).
Canny-randdetectie
De Canny-randdetector is een meerstapsalgoritme dat nauwkeurigere randen oplevert door:
- Het toepassen van een Gaussiaanse vervaging om ruis te verwijderen.
- Het vinden van intensiteitsgradiënten met Sobel-filters.
- Het onderdrukken van zwakke randen.
- Het gebruiken van dubbele drempelwaarden en randtracering.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
image
: invoer grijswaardenafbeelding;threshold1
: onderste drempelwaarde voor randdetectie (bijv.50
);threshold2
: bovenste drempelwaarde voor randdetectie (bijv.150
);apertureSize
(optioneel): grootte van de Sobel-kernel (standaard:3
, moet oneven zijn);L2gradient
(optioneel): gebruik nauwkeurigere L2-norm gradiëntberekening (standaard:False
).
Een vergelijking van randdetectiemethoden:

Swipe to start coding
Je krijgt een image
:
- Zet de afbeelding om naar grijswaarden en sla op in
gray_image
; - Pas het Sobel-filter toe in de X- en Y-richting (uitvoer-diepte
cv2.CV_64F
en kernelgrootte3
) en sla op in respectievelijksobel_x
,sobel_y
; - Combineer de Sobel-gefilterde richtingen in
sobel_img
; - Pas een Canny-filter toe met een drempel van
200
tot300
en sla op incanny_img
.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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
Randdetectie
Veeg om het menu te tonen
Randdetectie
Randen vertegenwoordigen plotselinge veranderingen in pixelintensiteit, wat meestal overeenkomt met objectgrenzen. Het detecteren van randen helpt bij vormherkenning en segmentatie.
Sobel-randdetectie
De Sobel-operator berekent gradiënten (veranderingen in intensiteit) in zowel de X- als Y-richting, waardoor horizontale en verticale randen kunnen worden gedetecteerd.
# 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
Belangrijke parameters:
src
: invoerafbeelding (moet grijswaarden zijn);ddepth
: diepte van de uitvoerafbeelding (bijv.cv2.CV_64F
);dx
: orde van de afgeleide in de X-richting (stel in op1
voor horizontale randen);dy
: orde van de afgeleide in de Y-richting (stel in op1
voor verticale randen);ksize
: kernelgrootte (moet oneven zijn, bijv.3
,5
,7
).
Canny-randdetectie
De Canny-randdetector is een meerstapsalgoritme dat nauwkeurigere randen oplevert door:
- Het toepassen van een Gaussiaanse vervaging om ruis te verwijderen.
- Het vinden van intensiteitsgradiënten met Sobel-filters.
- Het onderdrukken van zwakke randen.
- Het gebruiken van dubbele drempelwaarden en randtracering.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
image
: invoer grijswaardenafbeelding;threshold1
: onderste drempelwaarde voor randdetectie (bijv.50
);threshold2
: bovenste drempelwaarde voor randdetectie (bijv.150
);apertureSize
(optioneel): grootte van de Sobel-kernel (standaard:3
, moet oneven zijn);L2gradient
(optioneel): gebruik nauwkeurigere L2-norm gradiëntberekening (standaard:False
).
Een vergelijking van randdetectiemethoden:

Swipe to start coding
Je krijgt een image
:
- Zet de afbeelding om naar grijswaarden en sla op in
gray_image
; - Pas het Sobel-filter toe in de X- en Y-richting (uitvoer-diepte
cv2.CV_64F
en kernelgrootte3
) en sla op in respectievelijksobel_x
,sobel_y
; - Combineer de Sobel-gefilterde richtingen in
sobel_img
; - Pas een Canny-filter toe met een drempel van
200
tot300
en sla op incanny_img
.
Oplossing
Bedankt voor je feedback!
single