1

OpenCV 2.4.9 を使用してステレオ カメラを調整しようとしていますが、 を呼び出すとエラーが発生しますstereoCalibrate

以下は私が使用している画像です。(MS ペイントのおかげで、いくつかの奇妙な色の不具合があります)。上の 3 つの画像は左のカメラからのもので、下の 3 つの画像は右のカメラからのものです。さらにいくつかの画像ペアを使用したことに注意してください。画像は実際にはそれほど小さくなく、640x480 です。ただし、この投稿が 935837 マイルの長さにならないように、それらを縮小して一部を省略しました。

入力画像の例: キャリブレーションの例 Images.png

OpenCV は、チェス盤の角を問題なく検出します。を使用して表示すると、正しく表示されますdrawChessboardCorners。それは問題ではありません。

次に、 を使用して各カメラを個別に調整しcalibrateCameraます。undistortを使用して行列を使用して渡された画像を表示するcalibrateCameraと、レンズの歪みが少しだけ過剰に補正されているように見えます。

の出力に基づく歪みなしcalibrateCamera: キャリブレーションカメラの出力に基づく歪みなし

calibrateCameraステップを省略し、それに応じて のフラグを調整すると、同じエラーが発生します(フラグをstereoCalibrateに置き換えます) 。CV_CALIB_FIX_INTRINSICCV_CALIB_SAME_FOCAL_LENGTH | CV_CALIB_ZERO_TANGENT_DIST

次に を呼び出すと、次stereoCalibrateのエラーが表示されます。

OpenCV Error: Assertion failed (dims == 2 && (sizes[0] == 1 || sizes[1] == 1 || sizes[0]*sizes[1] == 0))
in create, file c:/Users/s-foxk/Documents/libs/opencv/sources/modules/core/src/matrix.cpp, line 1564

...Generic Widnows Garbage...

terminate called after throwing an instance of 'cv::Exception'
what():  c:/Users/s-foxk/Documents/libs/opencv/sources/modules/core/src/matrix.cpp:1564:
error: (-215) dims == 2 && (sizes[0] == 1 || sizes[1] == 1 || sizes[0]*sizes[1] == 0) in function create

過去数時間、この問題の解決策とこのエラーに関する情報を探し、コードを少し変更しました。残念ながら、すべて無駄でした。このエラーまたはこの状況に関する情報はほとんどないようです。

このエラーはどういう意味ですか? どうすればそれを取り除くことができますか? カメラの解像度が 640x480 であることを考えると、チェス盤が遠すぎるのではないかと思いました。これが問題でしょうか?

誰かが私のコードの一部または全部を見たいと思ったら、喜んでペーストビンを作成します。

4

0 に答える 0