Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

コントロール ポイントを使用した投影歪みのあるイメージのレジストレーション

この例では、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);

Nine pairs of control points selected in the Control Point Selection tool.

幾何学的変換の推測

関数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")

参考

| | |

関連するトピック