Main Content

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

imregmtb

中央値しきい値ビットマップを使用した 2 次元イメージのレジストレーション

説明

[R1,R2,...,Rn,shift] = imregmtb(M1,M2,...,Mn,F) は任意の数の移動イメージ M1,M2,...,Mn を、固定 (参照) イメージ F に対して、中央値しきい値ビットマップ手法を使用して、レジストレーションします。レジストレーション イメージは R1,R2,...,Rn に、レジストレーション イメージの推定変位は shift に返します。

中央値しきい値ビットマップ手法は多様な露光でキャプチャされたイメージのレジストレーションに有効です。imregmtb が考慮するのは平行移動のみで、回転や他のタイプの幾何変換は考慮されません。

すべて折りたたむ

露光が異なる一連のイメージを読み取ります。

I1 = imread('office_1.jpg');
I2 = imread('office_2.jpg');
I3 = imread('office_3.jpg');
I4 = imread('office_4.jpg');
I5 = imread('office_5.jpg');
I6 = imread('office_6.jpg');

これらのイメージは固定カメラで撮影されたものです。シーンの中に動く物体はありません。この例では、カメラの動き、つまりジッターをシミュレーションします。各イメージの水平および垂直方向に、[-30, 30] ピクセルの範囲でランダムな量を平行移動します。5 個すべての移動イメージの平行移動値を 5 行 2 列の行列 t に格納します。6 番目のイメージ I6 を固定 (参照) イメージとして指定します。ジッターをこのイメージに適用しません。

t = randi([-30 30],5,2);
I1 = imtranslate(I1,t(1,:));
I2 = imtranslate(I2,t(2,:));
I3 = imtranslate(I3,t(3,:));
I4 = imtranslate(I4,t(4,:));
I5 = imtranslate(I5,t(5,:));

イメージの位置を比較するには、各イメージの中央から関心領域 (ROI) を表示します。ベクトル roi は ROI の左上隅の x および y 座標、幅と高さを指定します。

roi = [140 260 200 200];
montage({imcrop(I1,roi),imcrop(I2,roi),imcrop(I3,roi), ...
    imcrop(I4,roi),imcrop(I5,roi),imcrop(I6,roi)})
title('Misaligned Images')

Figure contains an axes object. The axes object with title Misaligned Images contains an object of type image.

中央値しきい値ビットマップを使用し、空間的にシフトしたイメージのレジストレーションを実行します。各イメージの中央から ROI を表示します。

[R1,R2,R3,R4,R5,shift] = imregmtb(I1,I2,I3,I4,I5,I6);
montage({imcrop(R1,roi),imcrop(R2,roi),imcrop(R3,roi), ...
    imcrop(R4,roi),imcrop(R5,roi),imcrop(I6,roi)})
title('Registered Images')

Figure contains an axes object. The axes object with title Registered Images contains an object of type image.

各イメージはよく整列されているように見えます。

固定イメージを基準にした各移動イメージの推定変位 shift を調べます。shift は、固定イメージに対して整列させるため、移動イメージに適用しなければならない推定変換を表します。

shift
shift = 5×2

   -26    25
   -25    14
    23    -3
   -25   -28
    -8   -28

推定変位と実際の変位を比較します。変換 t を固定イメージに適用して、各移動イメージのジッターをシミュレーションします。したがって、変換 -tshift によって返される変換と類似したものです。

-t
ans = 5×2

   -19    25
   -25    14
    23    -3
   -25   -28
    -8   -28

関数 imregmtb は、各フレームの変位を推定するのに適しています。

入力引数

すべて折りたたむ

移動イメージ。同一または可変の露光による、一連のグレースケール イメージまたは RGB イメージとして指定します。イメージは同じサイズとデータ型でなければなりません。

データ型: single | double | uint8 | uint16

固定イメージ。グレースケールまたは RGB イメージとして指定します。F は移動イメージ M1,M2,...,Mn とサイズとデータ型が同じでなければなりません。

データ型: single | double | uint8 | uint16

出力引数

すべて折りたたむ

レジストレーション イメージ。一連のグレースケール イメージまたは RGB イメージとして返されます。レジストレーション イメージは移動イメージ M1,M2,...,Mn と同じサイズ、同じデータ型です。

n 個のレジストレーション イメージの水平および垂直方向の推定変位。n 行 2 列の数値行列として返されます。

参照

[1] Reinhard, E., W. Heidrich, P. Debevec, S. Pattanaik, G. Ward, K. Myszkowski. High Dynamic Range Imaging, Second Edition. San Francisco, CA: Morgan Kaufmann Publishers Inc., 2010, pp. 155–170.

拡張機能

バージョン履歴

R2018a で導入

すべて展開する

参考

| | | | (Medical Imaging Toolbox)