2013-04-04 232 views
5

我正在使用OpenCV的函數findHomography與RANSAC方法,以便找到將兩個圖像與一組關鍵點關聯的單應性。主要問題是我還沒有找到任何地方,但功能輸出的掩碼矩陣的值是什麼。只有我知道的信息是0值是異常值,非零值是非正常值。但是這意味着內部價值是什麼?有誰知道?OpenCV C++ findHomography掩碼值含義

在此先感謝!的代碼

件,其中我請findHomography

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

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

您是否在詢問關於inlier /異常值區分的含義,或者有關面罩中的數值的含義? – Aurelius 2013-04-04 15:25:49

+0

關於蒙版中的數值。 – jsalvador 2013-04-04 15:37:10

+0

你有沒有得到'0'或'1'以外的值? – Aurelius 2013-04-04 15:43:38

回答

10

通過findHomography返回的掩模是一個8位,單通道含有任一01指示異常值cv::Mat(或std::vector<uchar>,如果您願意)狀態。

編輯:您通過調用.at<double>來訪問掩碼的每個元素,這導致混淆輸出。您應該使用,這將正確解釋矩陣值。

+0

要將掩碼的值轉換爲QString,我對每個矩陣字段使用以下內容:'QString :: number(mask.at (i,j))' – jsalvador 2013-04-04 16:33:12

+0

很好,那是錯誤。非常感謝你! – jsalvador 2013-04-04 17:00:23

+1

我無法通過使用'mask.at (0,0)'正確打印值。它打印一個帶有值「0 0,0 1」的小矩陣圖標...你知道爲什麼嗎? – JonesV 2013-04-15 14:59:07