2017-03-12 16 views
0

私は、opencvカメラキャリブレーションアルゴリズムを勉強するために、opencvサンプルの一部であるpython calibrate.pyスクリプトを使用します。Opencv:カメラと画像の歪みを調整する

私は、歪みのない画像は常に入力画像と同じ画像サイズで保存されるという小さな変更をスクリプトで行っただけです。

opencvで提供されている画像の1つを入力画像として使用すると、結果は期待通りです。歪んでいない画像は期待通りに生成されます。

しかし、私は私自身の写真を使用している場合、私は以下の結果を得た:

申し訳ありませんが、

:-(による少数の評判に、​​(画像は同じサイズを持っている)私の入力画像をアップロードすることはできません私はすでに、このような場合には、歪み係数が上書きされなければならない。このフォーラムで読ん

RMS: 0.121159225738 
camera matrix: 
     [[ 163.23957898 0.   322.26349617] 
     [ 0.   216.31952935 234.94645994] 
     [ 0.   0.   1.  ]] 
     distortion coefficients: [-0.08196739 0.03332906 0.01195436 0.00803256 -0.02955244] 

     x: (0, 0, 0, 0) 
     y 0 
     w 0 
     h 0 

が、私はunderstaませんでした:Picture with detected corners Undistorted Picture 出力は以下の通りです。なぜ? そして私はすでにこのような値を操作していくつかのテストをしましたが、入力画像と黒い部分のすべてのピクセルを使用して歪みのない画像を表示する設定を見つけることができませんでした。

すべてのヒントは本当に感謝しています!

THANX !!

+0

複数の画像を使用し、それらの画像全体にほぼ完全な画像を表示してください。私の経験から、キャリブレーションの最適化は、カバーされた領域のみを最適化するため、周囲のすべてが非常に強い歪みを受ける可能性があります(カバーされた領域はまっすぐ歪みがありません)。 – Micka

答えて

0

カメラのマトリックスでは、fx(163.2395)とfy(216.3195)が大きく異なることは奇妙です。通常、デジタルカメラを使用している場合の99%の正方形ピクセルセンサーを使用している限り、それらは非常に近いはずです。

写真では、グリッドは実際には正方形のようには見えません。あなたのチェッカーボードのプリントは、opencvのキャリブレーションの要件であるので、正方形のグリッドがあることを確認してください。

+0

ご協力ありがとうございます!私はちょうどより多くの写真(約150)を取り、再度テストを実行します。結果は以前よりも良いですが、残念ながら歪みは私を満足させません。 – cSharpStarter

+0

ご協力ありがとうございます!私はちょうどより多くの写真(約150)を取り、再度テストを実行します。結果は以前よりも良いですが、残念ながら歪みは私を満足させません。チェス盤のコーナーはまだ邪魔されていません。 FOVは約120°ですが、opencvも魚眼レンズの校正をサポートしていることがわかりましたが、魚眼レンズの校正や「通常の校正」の使用に関する情報は見つかりませんでしたか?私の結果を改善できる他の提案がありますか?もう一度THANX! – cSharpStarter

関連する問題