iOSプラットフォーム用のopencvアプリを開発しています。デバッグおよびリリーススキーム用に自分でopencvをコンパイルしましたが、cv::meanStdDev
デバッグスキームで関数を実行しようとすると、アプリケーションは例外で失敗します(リリースでは正常に動作します)。テスト機能は非常に単純です。
float list[] = {1.2,1.2,1.3,0.3,6.5,2.2,0.9,0.8,0.9};
cv::Mat test(1,9,CV_32F, list);
cv::Scalar mean1, stddev1;
cv::meanStdDev(test, mean1, stddev1);
printf("[%f, %f]", mean1.val[0], stddev1.val[0]);
この関数はリリーススキームでは正しく機能しますが、デバッグでは次のような例外がスローされます。
OpenCV Error: Assertion failed (dims == 2 && ((sizes[0] == sz.height && sizes[1] == sz.width) || (allowTransposed && sizes[0] == sz.width && sizes[1] == sz.height))) in create, file /Users/jgoenetxea/libraries/OpenCV-2.4.0/trunk/opencv/modules/core/src/matrix.cpp, line 1375
terminate called throwing an exception
この行は、行列クラスの「作成」関数です。この時点で、このkind()
関数は、同じマトリックスのデバッグスキームとリリーススキームで異なる値を提供します。デバッグスキームが選択されている場合、この関数の結果により、実行は関数呼び出しでkind()
一部のデータをチェックし、その後失敗します。CV_Assert
何か案は?誰かが私が何をチェックできるか知っていますか?