2013-04-04 14 views
5

Sto utilizzando la funzione findHomography di OpenCV con il metodo RANSAC per trovare l'omografia che mette in relazione due immagini collegate con un set di punti chiave. Il problema principale è che non sono stato in grado di trovare da nessuna parte ancora quali sono i valori della matrice maschera che la funzione emette. Solo le informazioni che so sono che i valori 0 sono valori anomali e valori non nulli sono inattivi. Ma cosa significa valore inlier? Qualcuno lo sa?OpenCV C++ findModalità maschera maschera significato

Grazie in anticipo!

pezzo di codice in cui io chiamo findHomography:

cv::Mat H12; 
cv::Mat mask; 

H12 = cv::findHomography(FvPointsIm1, FvPointsIm2, mask, CV_RANSAC, 5); 
ui->Debug_Label->setText(Mat2QString(mask)); 
+0

Stai chiedendo il significato della distinzione inlier/outlier o dei valori numerici nella maschera? – Aurelius

+0

Informazioni sui valori numerici nella maschera. – jsalvador

+0

Ottieni mai valori diversi da '0' o' 1'? – Aurelius

risposta

10

La maschera restituito da findHomography è un 8-bit, monocanale cv::Mat (o std::vector<uchar>, se preferite) che contiene sia 0 o 1 che indica il valore anomalo stato.

MODIFICA: È possibile accedere a ciascun elemento della maschera chiamando .at<double>, che conduce all'output di confusione. Si dovrebbe usare , che interpreterà correttamente il valore della matrice.

+0

Per convertire i valori della maschera in QString, utilizzo quanto segue per ciascun campo della matrice: 'QString :: number (mask.at(i, j))' – jsalvador

+0

Nice, quello è stato l'errore. Grazie mille! – jsalvador

+1

Non riesco a stampare correttamente il valore usando: 'mask.at (0, 0)'. Stampa una piccola icona a matrice con valori "0 0, 0 1" ... Sai perché? – JonesV