質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Q&A

解決済

2回答

3775閲覧

opencvひずみ補正でキャリブレーションの効き具合を調整できますか

panasa

総合スコア14

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

0グッド

0クリップ

投稿2017/09/11 23:44

編集2017/09/19 01:33

OpenCV初心者です。
カメラのキャリブレーションを試してみました。
マニュアルにある通り、チェスボードを写して、キャリブレーションする関数に入れてパラメータを求めました。
そのパラメータを、撮影した写真にUndistortionしました。
色々分からないところはあったものの、サンプルコードやマニュアルを見て、一応、ここまではできました。
写真の四隅のひずみも、それなりに補正されています。
ただ、若干補正されすぎのように思うのです。

そこで、ひずみ補正のかかり具合?を調整することができるかどうか教えて頂きたいです。
よく、画像ソフトで、曲がり具合などの加工を手動で調整したりするものがあると思うのですが、そのイメージで、自分で効目を調整したいのです。
マニュアルを見ても、そのような説明は見つからず、できるかどうかも分かりません。
Undistortion関数にはパラメータを渡すだけなので、もしかして、キャリブレーションのパラメータを自分で編集するのでしょうか?
または、キャリブレーションを求める時に、何か、調整可能なものでもあるのでしょうか?

ご存知の方がいらっしゃいましたらよろしくお願いいたします。

追記
回答をいただいて、本を読んでみました。
関数に入れるパラメータは変えて見るのですが、あまり良い方向には向かわず。
具体的にどこをどう、、という方法にたどり着けず、
もしかして、opencvのソースを変更しなくてはならないのか、、、とおののいています。
あと数日、オープンにさせてください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yohhoy

2017/09/19 02:04 編集

チェッカーボード画像(キャリブレーション前/後)やパラメータ値を提示されては?一般情報として、キャリブレーション用チェッカーボードは可能な限り大きく映す必要があります。チェッカーボード範囲外の歪み補正は逆補正が掛かったように見えることがあります。(あくまでもチェッカーボード範囲内を補正するアルゴリズムです)
panasa

2017/09/24 23:26

コメントありがとうございます。ボードは、OpenCV のdocumentationのサイトから入手し、印刷して撮影しました。ボード範囲外が、逆補正に見える可能性というのは知りませんでした。情報ありがとうございます。
guest

回答2

0

マニュアルを見ても、そのような説明は見つからず、できるかどうかも分かりません。

マニュアルにない情報を探るのは相当大変だと思います。インチキなやりかたではありますが、あらかじめチェスボード画像を(補正されすぎるのと反対側に)少し歪ませて、歪ませた画像で通常通りキャリブレーションすれば、いくらかましにはならないでしょうか?

プログラムから外れた回答になってしまいますが、とりあえず解決するのであれば数値をいじるよりは手っ取り早いと思います。

投稿2017/09/24 06:34

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

panasa

2017/09/24 23:22

ボードを予め逆の歪みをというのは、確かに手っ取り早そうです。 面白い結果が出るか、、みてみたいですね。 ご回答ありがとうございます。
guest

0

ベストアンサー

キャリブレーション及び'undistortion関数'についてはO'REILLYなどの専門書を参考にされる事をお勧めします。質問の中にもありますが、あくまで関数ですので引数を変えると結果も変わります。またキャリブレーションのアルゴリズムを理解されるとより正確なパラメーターを取得できます。例えばレンズの特性。通常のレンズや魚眼レンズ。またひずみの少ないシュミットレンズなどを理論値ではなく実測で試し最良のパラメーターを取得。またキャリブレーションに用いるチェスボードの完成度を上げるなど行うとパラメーターも変化します。質問にありますように手入力で値を変える(値の意味と範囲を理解するのには最良な手法と思いますが)。また画像全体ではなく、ひずみの多い部分を棄却するロジックを考え実装する。などで精度は向上します。

投稿2017/09/12 10:23

MasahikoHirata

総合スコア3747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

panasa

2017/09/24 23:20

O'REILLYも読んではみましたが、ネットで参照できるOpenCV documentation と同じ?印象で、レンズも色々変えてみております。 チェスボードもこのサイトから入手しましたので、特に悪いものではナイト思うのです。画像の部分によってロジックを変えるというのは、おっしゃる通りかもしれませんが、私には難しく、勉強してから考えたいと思います。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問