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);

幾何学的変換の推測

関数 fitgeotrans を使用して、移動点と固定点の位置が最も良く揃う射影変換のパラメーターを求めます。

t = fitgeotrans(mp,fp,'projective');

レジストレーションされていないイメージの変換

レジストレーションされていない航空イメージの変換を適用するには、関数 imwarp を使用します。名前と値のペアの引数 OutputView を使用して、変換後のイメージの大きさと位置が正射イメージの位置と大きさに一致するように指定します。

Rfixed = imref2d(size(ortho));
registered = imwarp(unregistered,t,'OutputView',Rfixed);

元の正射写真に変換後のイメージを重ねて表示し、レジストレーションの結果を確認します。

imshowpair(ortho,registered,'blend')

参考

| | |

関連するトピック