2011-09-17 7 views
6

私は2つのプレーン間でホモグラフィをとって射影変換に変換する方法を見つけようとしています。 Matlabはこれを自動的に行いますが、私はmatlabが変換をどのように実装しているか把握しようとしています。ホモグラフィからプロジェクトへの変換

+0

どのMATLAB関数について話していますか? – Jacob

+0

私は、直接線形変換を使用してホモグラフィを計算しました。私はmaketform( '射影'、homographyMat)がどのように働くのだろうかと思っていました。ありがとう! –

答えて

2

ホモグラフィは、ラインをラインにマッピングし、クロスレシオを維持しますが、平行度やその他の類似度(角度、距離など)は保持しません。 ホモグラフィは、均質な3x3マトリックスとして表現でき、問題に応じて多くの(実際には、多くの)異なる方法で計算できます。

最も一般的なのは、2つのプレーン間の4点対応を決定し、Direct Linear Transform(DLT)を使用する方法です。 DLTの多くの実装もあります。あなたがOpenCVに慣れているなら、cv::findHomographyhttp://docs.opencv.org/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html?highlight=findhomography#findhomography)を使ってそのようなホモグラフィ行列を簡単に得ることができます。

一般的に、私は、Hartley & Zissermanの "Multiple View Geometry"の本を参照することをお勧めします。これはコンピュータビジョンの文脈におけるホモグラフィの概念を詳しく説明しています。

3

あなたはツールボックス\画像\画像内のソースコードを見ることができます\ maketform.m

少なくとも、エディタ内の関数名にF4を押すことで、これに取得することができます。

関連する問題