OpenCVでiPhone6sのカメラをキャリブレーションする

世間ではiPhone7が発売されていますが、オイラは引き続きiPhone6sを使います(笑)

1年前にiPhone6Sへ機種変更してからiPhone6sのカメラで結構たくさん写真や動画を撮ったので、画像・動画がだいぶ溜まった。
それらの画像・動画のレンズの歪みを補正したいんだけど、良い方法が他に思いつかないので、OpenCVでやってみることにする。(最新のPhotoshopとかだとできたりするんだろうか)

例のごとく、OpenCV 3.1に同梱のサンプルコードでできてしまう。

opencv/samples/cpp/calibration.cpp

OpenCVに実装されているのはZhangのキャリブレーション手法(A Flexible New Technique for Camera Calibration)
Zhangのキャリブレーション手法では、既知の幾何形状として平面のチェッカーパターンを3枚以上撮影する必要がある。(OpenCV3.1公式のサンプルの方にはチェッカーパターンだけでなく、円形のパターンを使用した例も入っている)

こちらの書籍にもっとシンプルなサンプルが載っている。↓

OpenCV 3 プログラミングブック

どうでも良いですが、書籍97ページの出典論文の記載箇所、何故か論文タイトルの”Fl”が抜けて”exible”という謎の単語になってますね。



で、まあ、iPhoneでチェッカーパターンを撮ってやってみることにした。チェッカーパターンはOpenCVで生成しても良いし、ネットで拾っても良い。オイラはここにある10×7のチェッカーパターンを使わせてもらった。
印刷したチェッカーパターンをとりあえず4K(3840×2160)解像度の動画で色んな角度から撮影した。ところで、気になっているのが、iPhoneだと静止画と動画で撮影画角が変わること。何で動画撮影時は狭くなるんだろうな。

cv::calibrateCamera関数を使ってカメラの内部パラメータと歪み係数を求めた。
その結果を使って動画の歪みを補正してやる。
http://qiita.com/tunepolo/items/76058121238be386bb21

また例の動画で試してみた。



って、これキャリブレーション失敗なのか?しかもファイル書き出しミスって動画の尺が半分になった。。。

関連記事

Point Cloud Consortiumのセミナー「3D...

オーバーロードとオーバーライド

Maya API Reference

OpenCVのfindEssentialMat関数を使ったサ...

Mayaのシェーディングノードの区分

Kinect for Windows v2の日本価格決定

RSSフィードを読込んで表示するWordpressプラグイン...

OpenGVのライブラリ構成

マルコフ連鎖モンテカルロ法

Russian3DScannerのトポロジー転送ツール『Wr...

Mean Stack開発の最初の一歩

Raspberry PiでIoTごっこ

Kinect for Windows V2のプレオーダー開始

オープンソースの物理ベースレンダラ『Mitsuba』をMay...

AmazonEC2のインスタンスをt1.microからt2....

OpenCV 3.1とopencv_contribモジュール...

ZBrushのZScript入門

Windows10でPyTorchをインストールしてVSCo...

スクラッチで既存のキャラクターを立体化したい

オープンソースの顔の動作解析ツールキット『OpenFace』

Regard3D:オープンソースのStructure fro...

MRenderUtil::raytrace

Unity ARKitプラグインサンプルのドキュメントを読む

UnityのTransformクラスについて調べてみた

OpenMesh:オープンソースの3Dメッシュデータライブラ...

ROMOハッカソンに行ってきた

Unity MonoBehaviourクラスのオーバーライド...

hloc:SuperGlueで精度を向上させたSfM・Vis...

OpenCVでPhotoshopのプラグイン開発

Iridescence:プロトタイピング向け軽量3D可視化ラ...

WordPressプラグインによるサイトマップの自動生成

clearcoat Shader

iPhoneで3D写真が撮れるアプリ『seene』

書籍『3次元コンピュータビジョン計算ハンドブック』を購入

CycleGAN:ドメイン関係を学習した画像変換

MVStudio:オープンソースのPhotogrammetr...

UnrealCLR:Unreal Engineで.NET C...

python-twitterで自分のお気に入りを取得する

Alice Vision:オープンソースのPhotogram...

HerokuでMEAN stack

Unity Scriptコーディング→Unreal Engi...

Point Cloud Utils:Pythonで3D点群・...

コメント