OpenCV の関数 cv::Rodrigues を使用すると、QtCreator で問題が発生します。Rodrigues を使用して回転行列を回転ベクトルに変換しているときに、常に実行時エラーが発生します。腐敗ベクトルから腐敗行列に移行するときはそのような問題はありませんが、その逆は最悪です。この関数を使用した簡単なコードを次に示します。Visual Studioでうまくいくことはよく言及されています。
cv::Mat R(3,3,CV_32F);
R.at<float>(0,0)=0;
R.at<float>(0,1)=0;
R.at<float>(0,2)=1;
R.at<float>(1,0)=0;
R.at<float>(1,1)=1;
R.at<float>(1,2)=0;
R.at<float>(2,0)=-1;
R.at<float>(2,1)=0;
R.at<float>(2,2)=0;
cv::Mat rvec_result;
cv::Rodrigues(R,rvec_result);
R は、Y 軸を中心とした 90 度の回転を表す 3x3 行列です。デバッグモードでトレースすると、rodrigues() の呼び出し時にセグメンテーション違反 (SIGSEGV) が発生します。
私は OpenCV 2.4.1 を使用しており、私のシステムは 64 ビットです。この問題に対処するのを手伝ってくれる人はいますか?
前もって感謝します。