2
我有一個問題,在opencv中使用filestorage將多個Mat變量寫入XML文件。我使用的是VC++ 2012,我可以在單獨的xml文件中編寫每個Mat,沒有任何問題。但是當我嘗試編寫第二個Mat對象時,它會拋出一個異常: test.exe中的0x000007FEFD06B3DD未處理的異常:Microsoft C++異常:內存位置0x00000000002ABE70處的cv :: Exception。使用opencv中的filestorage將多個Mat變量寫入XML文件
我在這裏發現了這個話題,但答案並沒有幫助我。該trows異常的代碼部分是:
fs<< "distCoeffs" << distCoeffs;
請你幫我這個:
FileStorage fs("c:\\test.xml", FileStorage::WRITE);
Mat cameraMatrix = (Mat_<double>(3,3) << 1000, 0, 320, 0, 1000, 240, 0, 0, 1);
Mat distCoeffs = (Mat_<double>(5,1) << 0.1, 0.01, -0.001, 0, 0);
fs<<"cameraMatrix" << cameraMatrix ;
fs<< "distCoeffs" << distCoeffs;
fs.release();
唯一的例外是在第二FS < <拋出。我從opencv文檔的示例中獲取這些代碼。
運行調試並獲取錯誤消息。你確定你正在鏈接使用vc11編譯器構建的OpenCV嗎? – Miki
我已經在調試模式下運行它,並且我使用了許多其他的opencv函數而沒有任何問題,所以我確信這個構建是正確的。另外我在主帖中提到了錯誤信息。 – MoMika
代碼工作正常。雖然,您可能想要更改目標文件夾,因爲您可能沒有對「C:」的寫入權限。只需使用FileStorage fs(「test.xml」,FileStorage :: WRITE);',該文件將位於項目目錄中。某些功能已經運行的事實並不能保證您正確鏈接。可以肯定的是,你可以展示你的「圖書館目錄」嗎? – Miki