2016-12-05 25 views
0

AnacondaのPython 2.7でOpenCV 2.4.11を使用してSJ4000カメラをキャリブレーションしようとしています。Python OpenCV Camera Calibration cv :: imshow error

しかし、私はここに利用できるスクリプトを実行することができません:私もsamples/cpp/で利用可能なサンプル画像、画像left01.jpg to left14.jpgでそれをテストしていhttp://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_calib3d/py_calibration/py_calibration.html#setup

。画像にチェス盤を検出することが可能であるが、それは、この行を打つ一度:

error: ..\..\..\modules\highgui\src\window.cpp:261: error: (-215) size.width>0 && size.height>0 in function cv::imshow 

EDIT 1:

cv2.imshow('img',img) 

それはエラーをスローし、さらにデバッグした後、私がいることを発見したimg = cv2.drawChessboardCorners(img, (7,6), corners2,ret)結果Noneオブジェクトに格納されます。

どうすれば解決できますか?

ありがとうございました!

+0

'' img'は 'None'になる可能性があります – furas

+0

これはOpenCVのすべてのエラーと同じように説明的ですが、基本的に' size.width> 0 && size.height> 0 'というアサーションに失敗します。つまり、画像のサイズが0x0であるか、存在しない可能性があります。 – Iluvatar

+0

@furas - はい、それは 'None'と判明しましたが、なぜですか? –

答えて

2

Hooray!すべてのデバッグ後に解決しました。私はこれがバージョンの問題だと思う。

私は

cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria) 
# Draw and display the corners 
cv2.drawChessboardCorners(img, (7,6), corners,ret) 

corners2 = cv2.cornerSubPix(gray,corners,(11,11),(-1,-1),criteria) 
imgpoints.append(corners2) 
# Draw and display the corners 
img1 = cv2.drawChessboardCorners(img, (7,6), corners2,ret) 

を変更し、すべてが完璧に動作します!

+0

これがうまくいかなかったのは、 'drawChessboardCorners()'はイメージ上で直接動作し、何も返さないということです。また、あなたが望むなら、あなたは 'コーナー2 'をまだ保存できることを意味します。 – Iluvatar

関連する問題