Ho utilizzato l'API cv::findHomography
di OpenCV per cacolare la matrice di omografia di due immagini planari. I punti chiave corrispondenti vengono estratti da SIFT e abbinati a BFMatcher. Come so, lo standard cv:findHomography
utilizza l'iterazione RANSAC per individuare i quattro punti corrispondenti migliori per ottenere la matrice di omografia. Quindi disegno le quattro coppie di punti selezionate con il contorno calcolato utilizzando la matrice omografica del bordo dell'oggetto. Il risultato sono come collegamenti:come migliorare l'accuratezza dell'omografia?
http://postimg.org/image/5igwvfrx9/
Come si vede, il selezionato corrisponde punti RANSAC sono corrette, ma il contorno mostra che l'omografia non è accurato.
Ma questi test dimostra che, sia la scelta punti abbinati e l'omografia sono corrette:
http://postimg.org/image/dvjnvtm53/
La mia ipotesi è che se il selezionato abbinato punti sono troppo vicini, il piccolo errore della posizione di pixel porterà all'errore significativo della matrice di omografia. Se i quattro punti si trovano nell'angolo dell'immagine, lo spostamento dei punti corrispondenti di 4-6 pixel avrà comunque una buona matrice di omografia. (secondo il coordinate omogenee, penso che sia ragionevole, come il piccolo errore nel piano nei pressi sarà amplificato nel lontano)
La mia domanda è:
1.Is la mia ipotesi giusta? 2. Poiché i quattro punti corrispondenti sono generati dall'iterazione RANSAC, l'errore complessivo di tutti i punti chiave è minimo. Ma come ottenere l'omografia stabile, almeno la mappatura del contorno è corretta? La teoria ha dimostrato che se vengono trovati i quattro punti corrispondenti in un piano, la matrice di omografia deve essere calcolata, ma c'è qualche trucco nel lavoro di ingegnere?
Grazie.
hai trovato qualche soluzione o spiegazione? Sto avendo lo stesso problema – MMH