世間では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公式のサンプルの方にはチェッカーパターンだけでなく、円形のパターンを使用した例も入っている)
こちらの書籍にもっとシンプルなサンプルが載っている。↓

どうでも良いですが、書籍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点群・...


コメント