2
我正在嘗試保存相機矩陣和失真合作效率供以後使用,但是我寫的代碼似乎不起作用。它不會在yml文件中存儲任何類型的數據。即使我讀回來,它也不會輸入任何內容到指定的矩陣。 請幫我理解我是否做錯了什麼。 我使用VS2010與OpenCV的2.4.5FileStorage OpenCV
cv::Mat CameraMatrix, DistCoeffs;
CameraMatrix = (cv::Mat_<double>(3,3) << 1,2,3,4,5,6,7,8,9);
DistCoeffs = (cv::Mat_<double>(1,5) << 10, 11, 12, 13, 15);
cv::FileStorage fs("IntCali.yml", cv::FileStorage::WRITE);
fs << "CameraMatrix" << CameraMatrix;
fs << "DistCoeffs" << DistCoeffs;
fs.release();
cv::FileStorage fs2("IntCali.yml", cv::FileStorage::READ);
cv::Mat cm; fs2["CameraMatrix"] >> cm;
cv::Mat dc;
fs2["DistCoeffs"] >> dc;
fs2.release();
請提供您的錯誤。 – Khashayar
輸出OpenCV Mat的快速方法是執行此操作:cout << CameraMatrix << endl;在將它們寫入文件之前,對您的CameraMatrix和DistCoeffs執行此操作,以檢查它們是否已正確初始化。同樣檢查它們是否被正確讀回。你的代碼一目瞭然...... – lightalchemist
Btw你可以打開IntCali.yml文件來檢查它的內容。這只是一個文本文件。 – lightalchemist