Sezione 1. Capitolo 10
single
Rilevamento dei Bordi
Scorri per mostrare il menu
I bordi rappresentano variazioni improvvise nell'intensità dei pixel, che solitamente corrispondono ai contorni degli oggetti. L'individuazione dei bordi facilita il riconoscimento delle forme e la segmentazione.
Rilevamento dei Bordi con Sobel
L'operatore Sobel calcola i gradienti (variazioni di intensità) sia nelle direzioni X che Y, consentendo di rilevare bordi orizzontali e verticali.
# 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
Nota
Parametri principali:
src: immagine di input (deve essere in scala di grigi);ddepth: profondità dell'immagine di output (ad esempio,cv2.CV_64F);dx: ordine della derivata nella direzione X (impostare1per i bordi orizzontali);dy: ordine della derivata nella direzione Y (impostare1per i bordi verticali);ksize: dimensione del kernel (deve essere dispari, ad esempio3,5,7).
Rilevamento dei Bordi con Canny
Il rilevatore di bordi di Canny è un algoritmo multi-fase che fornisce bordi più accurati tramite:
- Applicazione di un filtro Gaussiano per rimuovere il rumore.
- Calcolo dei gradienti di intensità tramite i filtri Sobel.
- Soppressione dei bordi deboli.
- Utilizzo di doppia soglia e tracciamento dei bordi.
# Apply Canny Edge Detector
canny_image = cv2.Canny(image, threshold1, threshold2, apertureSize, L2gradient)
Nota
image: immagine di input in scala di grigi;threshold1: soglia inferiore per il rilevamento dei bordi (ad esempio,50);threshold2: soglia superiore per il rilevamento dei bordi (ad esempio,150);apertureSize(opzionale): dimensione del kernel di Sobel (predefinito:3, deve essere dispari);L2gradient(opzionale): utilizzo di un calcolo del gradiente L2 più accurato (predefinito:False).
Un confronto tra i metodi di rilevamento dei bordi:
Compito
Swipe to start coding
Ti viene fornita un'immagine image:
- Convertire l'immagine in scala di grigi e salvarla in
gray_image; - Applicare il filtro Sobel nelle direzioni X e Y (profondità di output
cv2.CV_64Fe dimensione kernel3) e salvarli rispettivamente insobel_x,sobel_y; - Combinare le direzioni filtrate da Sobel in
sobel_img; - Applicare un filtro Canny con soglia da
200a300e salvarlo incanny_img.
Soluzione
Tutto è chiaro?
Grazie per i tuoi commenti!
Sezione 1. Capitolo 10
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione