シーンに較正ターゲット(既知のジオメトリ)がある画像があります(単純な2 "x 2"の正方形をテーブルに置いてみましょう)。私は(カメラの軸がテーブルの法線と平行であるかのように)結果の画像がテーブルの直交ビューであるように(warpPerspective()
を使用して)透視変換を実行したいと思います。ホモグラフィを計算するための標準的な手順は、一般的な平面から異なる一般平面へのものであり、同じシーンの2つの画像において少なくとも4つの対応が知られている(getPerspectiveTransform()
を使用)。私が1つの画像しか持っていないこの場合、単純に平面を構成し、その平面上の任意の位置に対応させるのは正しいことですか?たとえば、この状況では、画像の4つの検出されたコーナー(A、B、C、D)と私の選択した4つのポイント(単にピクセル - >実世界スケールを定義する)の間の対応をとるだけです。結果として得られる画像中に10個の画素があることを示すために、A '=(0,0)、B' =(20,20)、C '=(0,20)、D' =(20,0) A '=(100,100)、B' =(120,120)、C '=(100,120)、(C' = 100,100)とすることができます。3D平面から画像平面に平行な平面のホモグラフィ
これは「正しい」方法ですか?既知の画像内のポイントのセットによって定義される平面を直接見る射影変換を計算するより良い方法がありますか?飛行機にいる?
こんにちはDavid!うん、それは正しいと思う。少なくとも、私はこれを正確に行い、それはかなりうまくいった。 – Miki
@Mikiありがとう!ちょうど私が何かを見逃していなかったことを確認するだけで、私は誰もインターネット上のどこでもこれを説明することを見ていないので、常に奇妙に見える。 –
ああ、誰もが説明してくれた:) :) "ホモグラフィを使ったパースペクティブコレクション" http://www.learnopencv.com/homography-examples-using-opencv-python-c/ –