2

私はOpenCV2.0を使用して、画像内の3つのポイント(基本的に三角形を構成する)を取得しようとしています。これらの3つのポイントで私がやろうとしているのは、スキューの参照としてそれらを使用することです。私が達成しようとしていることは、次の画像で最もよく説明されています。

ここに画像の説明を入力してください

  Before                                             After

私は上記のフォーマットの画像を持っていることが保証されているので、私が積極的に注意を払う必要がある唯一のポイントは、90度の角度が形成されるポイントであることを知っています。

つまり、90度の角度が形成されるポイントの位置に対してイメージを歪めようとしているだけです。

OpenCVでこれを行う方法はありますか?(できればC ++で)

4

1 に答える 1

1

ええと、私はそのようなタイプの変換を扱ったことがありませんが、どういうわけかあなたを助けることができます。

いくつかのグーグルの後、StackOverflowであなたと同様の質問を見つけました:

遠近変換を使用して画像をスキューする

ジェイコブはその質問に対する素晴らしい答えを持っています。すべてのタイプの変換(回転、せん断、平行移動、スケーリング)から、せん断のみが役立つようです(下の画像を参照)。

せん断画像

そして、変換行列は次のとおりです。

ここに画像の説明を入力してください

OpenCVでこのようなタイプの変換を行うには、関数cv::warpPerspectiveがあります。試してみてください。

それが役に立てば幸い。

于 2012-06-28T15:45:48.267 に答える