Secondo questo sito web , questo confronto viene utilizzato per determinare dove esattamente lo zero l'attraversamento è se sembra che si verifichi tra due pixel. Se ci sono più spigoli validi, quale è il più vicino al limite? Ovviamente, quello con il valore assoluto più piccolo è quello più vicino allo zero crossing! Ci sono molti altri modi per localizzare il bordo, alcuni dei quali sono riepilogati sul sito web che ho collegato e probabilmente molti altri trovati nella tua biblioteca locale in un libro di testo per l'elaborazione delle immagini.
Detto questo, tieni presente che l'algoritmo per il rilevamento dei fronti nell'OP precedente effettivamente ti darà margini molto sparsi, come ho dimostrato implementando l'algoritmo qui . Se vuoi i bordi continui, anche se ammettiamo con molti falsi rilevamenti, puoi usare il seguente algoritmo semplificato.
- Verifica se tutti i pixel intorno a te hanno lo stesso segno.
- Se non hanno lo stesso segno, allora sei a zero crossing.
Il codice in cui implemento questo è qui .
Alla fine, se vuoi una localizzazione davvero buona, devi andare alla scala sub-pixel, che sfortunatamente, non posso aiutarti, ma è trattata in questo carta . In alternativa, potresti anche provare ad aumentare la dimensione dell'intervallo di rilevamento a passaggio zero. Alla fine, l'unica cosa da tenere lontana da tutto questo è che se stai per effettuare il rilevamento dei bordi, attaccati con Canny.