2016-05-19 4 views
0

現在OpenCVのfitLine()関数を使用しています。OpenCV:fitLine()関数の固定サイズエラー

これは私のコードです:

float lineParams[16]; 
Mat lineParamsMat(Size(4,4), CV_32F, lineParams); 
Point2f points[6]; 

//point parameters for line 
Mat point_mat(Size(1, 6), CV_32FC2, points); 

//The line is stored in a row in the lineParamsMat Matrix 
fitLine (point_mat, lineParamsMat.row(i), CV_DIST_L2, 0, 0.01, 0.01); 

エラーが最後の行で発生します。いつものようにクリアされたエラーメッセージは次のとおりです。

OpenCV Error: Assertion failed (!fixedSize() || ((Mat*)obj)->size.operator()() == Size(_cols, _rows)) in create, file /Applications/opencv-3.1.0/modules/core/src/matrix.cpp, line 2232 
libc++abi.dylib: terminating with uncaught exception of type cv::Exception: /Applications/opencv-3.1.0/modules/core/src/matrix.cpp:2232: error: (-215) !fixedSize() || ((Mat*)obj)->size.operator()() == Size(_cols, _rows) in function create 

誰もこのエラーに直面していませんか?

+0

2つの 'Mat'sの代わりに' std :: vector 'と' cv :: Vec4f'を使用できますか?それは私のために働いた。この問題は、「Mat」の構造をどのように構成するかと関係しています。スタックトレースを見ることで、実際に何が起きているのかをより詳しく知ることができます。 –

+0

それは良い考えです - 私はそれを試してみましょう!より詳細なスタックトレースを表示するにはどうすればよいですか? –

+0

デバッガで実行し、例外がスローされたときに停止させます。正確なプロセスは、使用しているツールによって異なります。これを動作させるには、デバッグシンボルが必要です。 –

答えて

0

lineParamsMat.col()へのlineParamsMat.row()の変更が機能することが判明しました。