環境はWindow7、visualstdio2015Enterprise x64、OpenCV3.1,
OpenCVのsamplesディレクトリ内にあるstereo_calib.cppを実行させたところエラーになります。
実行をすると
cameraMatrix[0] = initCameraMatrix2D(objectPoints, imagePoints[0], imageSize, 0.0);で
Unhandled exception at 0x000007FEFD16A06D in ConsoleApplication1.exe: Microsoft C++ exception: cv::Exception at memory location 0x00000000002CAD80.
とvisualstdioの画面にエラーが表示されます。
またコンソールにも
OpenCV Error:Assertion failed(nimages>0 && nimages == (int)imagePoint1.tota
l() && (!imgPtMat2 || nimages == (int)imagePoint2.total()) in cv::collectCalib
rationData, file C: \buildslave64\win64_amdoc|\master_PackSlave-win64-vc14-shared
\opencv\modules\calib3d\src\calibration.cpp, line 3054
と表示されます。
static void
StereoCalib(const vector<string>& imagelist, Size boardSize, bool displayCorners = false, bool useCalibrated = true, bool showRectified = true)
の引数はimagelist, boardSize, true, true, true
imagelistはC:/work/left01.jpg,C:/work/right01.jpg・・・・でxmlファイルから読んでいます。
boardSizeはwidth=9,height=6です。
実行方法はVisualStdioでDebugに設定してLocal Window Debuggerを押して実行しています。
drawChessboardCornersで画像を出力してコーナーを検出しているのを確認しています。
サンプルを修正した点は
実行をするとコマンドライン引数の入力を待たずソフトが走ってしまうため サンプルを
cv::CommandLineParser parser(argc, argv, "{w|9|}{h|6|}{nr||}{help||}{@input|C:/work/stereo_calib.xml|}");
と
StereoCalib(imagelist, boardSize, true, true, true);
を変更しました。
コードをサンプルへ戻しました。
stereo_calib.xmlファイルの中は
<opencv_storage>
<imagelist>
"C:/work/left01.jpg"
"C:/work/right01.jpg"
"C:/work/left02.jpg"
"C:/work/right02.jpg"
"C:/work/left03.jpg"
"C:/work/right03.jpg"
"C:/work/left04.jpg"
"C:/work/right04.jpg"
"C:/work/left05.jpg"
"C:/work/right05.jpg"
"C:/work/left06.jpg"
"C:/work/right06.jpg"
"C:/work/left07.jpg"
"C:/work/right07.jpg"
"C:/work/left08.jpg"
"C:/work/right08.jpg"
"C:/work/left09.jpg"
"C:/work/right09.jpg"
"C:/work/left11.jpg"
"C:/work/right11.jpg"
"C:/work/left12.jpg"
"C:/work/right12.jpg"
"C:/work/left13.jpg"
"C:/work/right13.jpg"
"C:/work/left14.jpg"
"C:/work/right14.jpg"
</imagelist>
</opencv_storage>
です。
work 内のファイルは
"left01.jpg"
"right01.jpg"
"left02.jpg"
"right02.jpg"
"left03.jpg"
"right03.jpg"
"left04.jpg"
"right04.jpg"
"left05.jpg"
"right05.jpg"
"left06.jpg"
"right06.jpg"
"left07.jpg"
"right07.jpg"
"left08.jpg"
"right08.jpg"
"left09.jpg"
"right09.jpg"
"left11.jpg"
"right11.jpg"
"left12.jpg"
"right12.jpg"
"left13.jpg"
"right13.jpg"
"left14.jpg"
"right14.jpg"
と”stereo_calib.xml”
です。
画像ファイルはOpenCVのサンプルで用意されたものを使っています。
エラーは一番最初のforのループ内で発生します。
http://whitecats.dip.jp/up/download/1468892458.zip/attach
へプロジェクトフォルダをアップしました。
パスワードは0000です。
どうかよろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー