0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

画像の用意

チェッカーボード印刷し、キャリブレーションしたいカメラで撮影します。
チェッカーボード↓↓

チェッカーボードを平面を保つように硬い板などに貼って、以下のように角度や位置を変えて25枚くらいの画像を撮影します。

このくらい近くで撮ってもいいのかも↓↓(takminさんのブログより画像引用)

良くない例↓↓ 遠すぎたりブレブレな画像は削除しましょう。

画像保存のコード
以下のコードで画像を3秒おきに取得できます。
save_image.pyなどのファイルを作って実行してください。

13行目の保存フォルダへのパスと40行目のカメラへのパスを変更してください。

カメラの内部パラメータを求める

以下のコードで魚眼カメラの歪みを補正するのに必要な内部パラメータKとDが得られるはず...
calibrate.pyなどのファイル名で保存し実行してください。
103行目のパスを魚眼画像が保存されているフォルダに変更すること!

こんな感じの値が得られるかしら↓↓

K = np.array( [[340.59258135 ,  0.        , 548.37466433],
               [  0.         ,340.79339754, 550.00068578],
               [  0.         ,  0.        ,   1.        ]])
D = np.array([[-0.02413534, -0.00265511,  0.00394103, -0.00273779]])

KとDとは?
K:内部パラメータ行列

K = [[fx,  0,  cx]
    [ 0,  fy,  cy]
    [ 0,   0,   1]]

fx, fy:焦点距離(ピクセル)
cx, cy:画像中心
確かに私の入力画像は1088ピクセルx1088ピクセルなので、画像中心は大体544ピクセルになってる

D:歪み係数

    D = [[k1, k2, k3, k4]]

確認

そしたら得られたKとDを使って以下のコードで歪み補正できてるか確認してみてね。
4行目の画像へのパスと、8・11行目のカメラ内部パラメータを変更してください。

こんなふうにベッドのフチがまっすぐになったのがわかるかな
補正前の画像↓            補正後の画像↓
 


最後まで読んでいただきありがとうございました!
より良い記事にするため、わかりにくいところや間違っているところがありましたら、連絡をいただけると嬉しいです!
Have a nice calibration day!!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?