3

後で使用するためにカメラ行列と歪み係数を保存しようとしていますが、私が書いたコードは機能していないようです。yml ファイルにいかなる種類のデータも格納していません。読み返しても、指定された行列には何も入力されません。私が何か間違ったことをしている場合は、理解してください。OpenCV 2.4.5でVS2010を使用しています

    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();
4

1 に答える 1

1
<?xml version="1.0"?>
-<opencv_storage>
-<CameraMatrix type_id="opencv-matrix">
<rows>3</rows>
<cols>3</cols>
<dt>d</dt>
<data> 1. 2. 3. 4. 5. 6. 7. 8. 9.</data>

</CameraMatrix>-<DistCoeffs type_id="opencv-matrix">
<rows>1</rows>
<cols>5</cols>
<dt>d</dt>
<data> 10. 11. 12. 13. 15.</data>
</DistCoeffs>
</opencv_storage>

xml ファイルで動作します。yml ファイルのみに特別な要件がない場合は、xml を試してください。

于 2013-09-27T21:03:24.043 に答える