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