このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
コントロール ポイントを使用した投影歪みのあるイメージのレジストレーション
この例では、2 つのイメージに共通のコントロール ポイントを選択し、そのコントロール ポイントの位置を揃える幾何学的変換を推定して、両イメージのレジストレーションを行う方法を説明します。
イメージの読み取り
イメージ westconcordorthophoto.png
をワークスペースに読み取ります。このイメージは、地上にレジストレーションされた正射写真です。
ortho = imread("westconcordorthophoto.png"); imshow(ortho) text(size(ortho,2),size(ortho,1)+15, ... "Image courtesy of Massachusetts Executive Office of Environmental Affairs", ... FontSize=7,HorizontalAlignment="right");
イメージ westconcordaerial.png
をワークスペースに読み取ります。このイメージは飛行機から撮影されたもので、正射写真と比較して変形されています。レジストレーションされていないイメージは遠距離から撮影されており、地形が比較的平坦なため、歪みの大部分は射影になる可能性が大きくなります。
unregistered = imread("westconcordaerial.png"); imshow(unregistered) text(size(unregistered,2),size(unregistered,1)+15, ... "Image courtesy of mPower3/Emerge", ... FontSize=7,HorizontalAlignment="right");
コントロール ポイントのペアの選択
コントロール ポイントを対話的に選択するには、関数 cpselect
を使用してコントロール ポイント選択ツールを開きます。コントロール ポイントは、道路の立体交差や地勢など 2 つのイメージで識別できるランドマークです。cpselect
が射影変換をコントロール ポイントに近似できるように、コントロール ポイントのペアを 4 つ以上選択します。対応する移動点と固定点を選択したら、ツールを閉じてワークスペースに戻ります。
[mp,fp] = cpselect(unregistered,ortho,Wait=true);
幾何学的変換の推測
関数fitgeotform2d
を使用して、移動点と固定点の位置が最も良く揃う射影変換のパラメーターを求めます。
t = fitgeotform2d(mp,fp,"projective")
t = projtform2d with properties: Dimensionality: 2 A: [3×3 double]
レジストレーションされていないイメージの変換
レジストレーションされていない航空イメージの変換を適用するには、関数 imwarp
を使用します。名前と値の引数 OutputView
を使用して、変換後のイメージのサイズと位置が正射イメージのサイズと位置に一致するように指定します。
Rfixed = imref2d(size(ortho)); registered = imwarp(unregistered,t,OutputView=Rfixed);
元の正射写真に変換後のイメージを重ねて表示し、レジストレーションの結果を確認します。
imshowpair(ortho,registered,"blend")
参考
cpselect
| cpcorr
| cpstruct2pairs
| fitgeotform2d
| imref2d
| imwarp