2016-07-24 11 views
1

OpenCVを使用して特徴検出するコンテンツがあります。コンテンツ自体に検出を適用する前に、私は透視歪みの角度を検出し、それを修正する必要があります。おそらく、私はQRコードがどのようにそれを行うのかというアイデアを使用することができます - イメージにいくつかのアンカーを追加します。そこ任意の正方形のコンテンツではありませんので、元画像は、次のようになります。OpenCVを使用して透視角を検出して透視変換を行う

Source Image

3個の正方形が私たちのアンカーになります。 OpenCVのを使用する場合は、私の知る限り理解し、私はこれらの操作を行う必要があります

  1. cvtColor機能を使って画像にグレースケールスキームを適用します。
  2. blurまたはGaussianBlurを使用してぼかしを適用します。
  3. thresholdCannyを適用します。
  4. findContoursを使用して、結果を分析し、頂点数などをチェックして3つの正方形を見つけます。
  5. perspectiveTransformwarpPerspective関数を適用して、四角の位置を分析し、対応する変換をソースイメージに適用します。

問題は、実際にはどのパラメータを使用するのか、手順5で呼び出されるメソッドの順番はわかりません。 私はコーディングと数学には新しいので、何か助けていただければ幸いです。ありがとうございます!

答えて

1

あなたの主な質問は、の3つの2D対応からの変形を見つけ、それに応じて画像を歪める方法です。

3点は、アフィン変換を定義するに過ぎず、パースペクティブなものではありません。 (アフィン変換は、例えば、オブジェクトがカメラから遠く離れている場合など、視野角が小さい場合には完全に良好です)。

2次元アフィン行列は、最後の行が[0 0 1]である3x3行列です。

アフィン変換は、答えがhttps://stackoverflow.com/a/2756165/2079934であるように、1つの線形システムを解くことで計算できます。 (解決方法は一意です)アフィン行列を使用している場合は、warpAffinewarpPerspectiveではなく)を適用して画像を補正できます。 http://docs.opencv.org/2.4/modules/imgproc/doc/geometric_transformations.html#warpaffine

関連する問題