1
我想用opencv做3D重建,而且我非常遵循書中的所有步驟: RobertLaganière的OpenCV 2計算機視覺應用程序編程指南。查找基本矩陣(矩陣乘法錯誤)
我試圖找到基本矩陣時出現問題。我這樣做:
Mat fundemental= ransacTest(symMatches,keypoints1, keypoints2, outmatches);
//ransacTest function by Computer Vision Application Programming Cookbook
cout<<endl<<fundemental<<endl;
Mat K=m_camera_data->get_K();
//get_K() function defined previously
cout<<K<<endl;
cout<<"K.T"<<K.t()<<endl;
Mat_<double> E = K.t() *fundemental* K; // Error
函數ransacTest和get_K()已被定義,他們似乎工作正常。我的基本矩陣如下
-7.65924601845777e-006 0.0052097327886 -0.179203748284864
-0.005202223611495075 -8.913278071309e-006 -0.5024237005766097
0.1843335279902164 0.4908219843516384 1
我K矩陣如下
382.5 0 160
0 0 120
0 0 1
K的轉置正確。 當我嘗試獲取基本矩陣E時出現問題。運行程序時出現此錯誤 「OpenCV錯誤:斷言失敗(類型== B <> & &>未知函數,文件.. .... \ SRC \ OpenCV的\模塊\核心的\ src \ matmul.cpp,行711"
我看着它,我在這個問題Opencv Matrix multiplication 發現了類似的問題,但我試圖做什麼,答案說(改變矩陣類型),我仍然有相同的錯誤
我也試圖用Gemm做矩陣乘法,但同樣的錯誤出現。
我真的可以使用一些幫助!提前致謝。
我剛剛檢查過,它是浮動的!謝謝!我剛剛解決了這個問題。這與我的基本和我的K確實是一個矩陣類型的問題。我現在所做的每一次都是以Mat_的身份宣佈爲基礎,它似乎有效! –
user2606677