Sto tentando di implementare la corrispondenza del blocco stereo senza utilizzare OpenCV o altre librerie di elaborazione immagini. Tutti i tutorial, i libri, le diapositive delle lezioni ecc. Insegnano solo l'approccio di base per confrontare i blocchi nelle immagini, ma i risultati sono pessimi. Ho letto alcuni documenti come quello di K. Konolige, che è la base dell'algoritmo di OpenCV, ma mi sembra che manchi ancora qualcosa di importante.Risultati errati con corrispondenza del blocco stereo di base (senza OpenCV)
Quello che sto facendo ora:
- Applicare Sobel a sinistra e l'immagine a destra.
- Do blocco corrispondenza
- selezionamento un blocco (9x9) attorno ad un pixel dell'immagine sinistra e confronta con i blocchi nella stessa riga dell'immagine destra (fino ad un massimo di 80 pixel a destra del blocco originale)
- trovare quello con la migliore corrispondenza (con somma SAD delle differenze assolute)
la disparità risultante è quanti passi ho dovuto andare a destra per trovare la migliore corrispondenza.
Dopo aver letto il documento Konolige, ho implementato il controllo left-right, che, dopo aver trovato la migliore corrispondenza, cerca la migliore corrispondenza dell'immagine giusta nell'immagine a sinistra e la accetta solo se è quella giusta la tua ricerca originale o proprio accanto ad essa.
Inoltre, è stato aggiunto un controllo in modo che un pixel possa essere abbinato solo una volta, utilizzando un pixel bitfield che verrà saltato nelle ricerche se in precedenza sono stati abbinati a un pixel.
Il risultato non sembra molto sbagliato ma molto scarso.
Che cosa non riesco ad aggiungere? Qualcosa che tutti sembrano sapere ma non è spiegato. Devo aggiungere qualche tipo di interpolazione?
Qualsiasi aiuto è apprezzato!
Il mio ingresso è la coppia stereo Tsukuba.
Risultato trovato sul web (2 ° è OpenCV BM, 3 ° a quanto pare è triste BM da autori blog)
http://cseautonomouscar2012.files.wordpress.com/2012/11/111412_2001_comparisono1.png