2013-10-29 52 views
0

我有一個運行攝像機校準的校準程序。我要校準的結果保存爲YML文件,該文件沒有任何問題的作品除了當我嘗試保存投影誤差這是這裏的雙重價值我所做的:用cv :: fileStorage保存一個雙變量

cv::FileStorage fs= cv::FileStorage("calibration_result.yml",cv::FileStorage::WRITE); /*creating the storage file for the calibration results */ 

....................................................... 


this->fs << "the camera matrix is "<<this->cameraMatrix; 
..................................................................... 
     this->fs<< "the number of used frames is "<<this->actualnumberOfFrames; 
     ///this->fs<< " the reprojection error " << this->reprojectionError; when I activate this line the storage stops at the **actualnumberOfFrames** 
     this->fs<<"the used resolution is " << this->theFrameSIZE; 
     this->fs << "used flags in the calirbation function" << this->flagsName; 
     this->fs<<"the distortion Coefficients are "<< this->distortionCoeff; 
     this->fs<<"the rotation vector is "<< this->rvec; 
     this->fs <<"the tangiantiale vector" << this->tvecs; 
...................................................... 

我仔細檢查了該變量的值是好的,我真的在結果文件中的值!

任何想法如何我可以解決這個問題?在此先感謝您的幫助!

回答

0

您是否嘗試刪除名稱開頭的空格?

來源:

this->fs<< " the reprojection error " << this->reprojectionError; 

要:

this->fs<< "the reprojection error " << this->reprojectionError; 
+0

我做到了!但它沒有幫助? – Engine

+0

只是一個猜測...代碼的其餘部分對我來說似乎很好。 'FileStorage'應該接受'double'而沒有問題......你真的確定所有的值都符合預期嗎?我沒有看到您提供的代碼段中的錯誤。 – Mailerdaimon