Main Content

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

imtranslate

イメージの平行移動

説明

B = imtranslate(A,translation) は、translation に指定された 2 次元または 3 次元平行移動ベクトルを使用してイメージ A を平行移動します。

A が 2 次元を超える次元をもち、translation が 2 要素ベクトルである場合、imtranslate は、2 次元平行移動を A の平面ごとに適用します。

[B,RB] = imtranslate(A,RA,translation) は、空間参照イメージ A を、関連付けられている空間参照オブジェクト RA と共に平行移動します。平行移動ベクトル translation は、ワールド座標系にあります。この関数は、平行移動された空間参照イメージ B を、関連付けられている空間参照オブジェクト RB と共に返します。

___ = imtranslate(___,method) は、method で指定された内挿法を使用して、イメージ A を平行移動します。

___ = imtranslate(___,Name,Value) は、平行移動のさまざまな特性を制御する名前と値のペアを使用して、入力イメージを平行移動します。

すべて折りたたむ

イメージをワークスペースに読み取ります。

I = imread('pout.tif');

イメージを平行移動します。

J = imtranslate(I,[25.3, -10.1],'FillValues',255);

元のイメージと平行移動したイメージを表示します。

figure
imshow(I);
title('Original Image');
set(gca,'Visible','on');

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

figure
imshow(J);
title('Translated Image');
set(gca,'Visible','on');

Figure contains an axes object. The axes object with title Translated Image contains an object of type image.

イメージをワークスペースに読み取ります。

I = imread('pout.tif');

イメージを平行移動します。OutputView パラメーターを使用して、平行移動したイメージ全体が表示されるように指定します。

J = imtranslate(I,[25.3, -10.1],'FillValues',255,'OutputView','full');

元のイメージと平行移動したイメージを表示します。

figure
imshow(I);
title('Original Image');
set(gca,'Visible','on');

Figure contains an axes object. The axes object with title Original Image contains an object of type image.

figure
imshow(J);
title('Full Translated Image');
set(gca,'Visible','on');

Figure contains an axes object. The axes object with title Full Translated Image contains an object of type image.

MRI データをワークスペースに読み込んで表示します。

s = load('mri');
mriVolume = squeeze(s.D);
sizeIn = size(mriVolume);
hFigOriginal = figure;
hAxOriginal  = axes;
slice(double(mriVolume),sizeIn(2)/2,sizeIn(1)/2,sizeIn(3)/2);
grid on, shading interp, colormap gray

Figure contains an axes object. The axes object contains 3 objects of type surface.

X、Y 方向の平行移動を適用します。

mriVolumeTranslated = imtranslate(mriVolume,[40,30,0],'OutputView','full');

ボリュームの中心を通る軸スライス平面を表示することによって平行移動を可視化します。X 方向と Y 方向に移動しています。

sliceIndex = round(sizeIn(3)/2);
axialSliceOriginal   = mriVolume(:,:,sliceIndex);
axialSliceTranslated = mriVolumeTranslated(:,:,sliceIndex);

imshow(axialSliceOriginal);

Figure contains an axes object. The axes object contains an object of type image.

imshow(axialSliceTranslated);

Figure contains an axes object. The axes object contains an object of type image.

入力引数

すべて折りたたむ

平行移動するイメージ。数値配列、logical 配列、または categorical 配列として指定します。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical | categorical

入力イメージ A に関連付けられている空間参照情報。空間参照オブジェクト imref2d または imref3d 空間参照オブジェクトとして指定します。

平行移動ベクトル。2 要素の数値ベクトル [Tx Ty] または 3 要素の数値ベクトル [Tx Ty Tz] として指定します。小数値も指定できます。

データ型: single | double | int8 | int16 | int32 | uint8 | uint16 | uint32

内挿法。次のいずれかの値に指定します。

説明

"nearest"

最近傍内挿。出力ピクセルには、対象の点が含まれるピクセルの値が代入されます。周りの他のピクセルは、考慮に入れません。

最近傍内挿は、categorical イメージでサポートされている唯一のメソッドであり、このタイプのイメージに対する既定のメソッドです。

"bilinear"

線形内挿。

線形内挿は、数値イメージと論理イメージに対する既定のメソッドです。

"bicubic"

3 次内挿。

メモ

3 次内挿は、元の範囲外のピクセル値を生成します。

データ型: char | string

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: mriVolumeTranslated = imtranslate(mriVolume,[40,30,0],"OutputView","full");

出力ワールド座標範囲。次のいずれかの値を指定します。

説明
"same"出力ワールド座標範囲は入力イメージと同じです。
"full"出力ワールド座標範囲は、入力イメージと平行移動された出力イメージの両方を含む四角形の境界です。

データ型: char | string

入力イメージの外側にある出力ピクセルに使用する塗りつぶしの値。次の表のいずれかの値として指定します。imtranslate は、入力イメージにおける対応する逆変換後の位置が完全に入力イメージの境界外である場合に、塗りつぶしの値を出力ピクセルに使用します。

数値イメージと論理イメージの既定の塗りつぶしの値は 0 です。categorical イメージの既定の塗りつぶしの値は missing です。<undefined> カテゴリに対応します。

イメージ タイプ

平行移動の次元

塗りつぶしの値の形式

2 次元グレースケール イメージまたは論理イメージ2 次元
  • 数値スカラー

2 次元カラー イメージまたは 2 次元マルチスペクトル イメージ2 次元
  • 数値スカラー

  • c 要素の数値ベクトル。c チャネルのそれぞれに塗りつぶしの値を指定します。カラー イメージの場合、チャネル数 c は 3 です。

一連の p 2 次元イメージ2 次元

  • 数値スカラー

  • c 行 p 列の数値行列。チャネル数 c は、グレースケール イメージの場合は 1 になり、カラー イメージの場合は 3 になります。

N 次元イメージ2 次元
  • 数値スカラー

  • 入力イメージ A の 3 ~ N 次元に一致するサイズの数値配列。たとえば、A が 200 x 200 x 10 x 3 である場合、FillValues は 10 行 3 列の配列となります。

3 次元グレースケール イメージまたは論理イメージ3 次元
  • 数値スカラー

categorical イメージ2 次元または 3 次元
  • イメージ内の有効なカテゴリ。string スカラーまたは文字ベクトルとして指定します。

  • missing<undefined> カテゴリに対応します。詳細については、missing を参照してください。

例: 255 にすると、uint8 イメージを白のピクセルで塗りつぶします

例: 1 にすると、double イメージを白のピクセルで塗りつぶします

例: [0 1 0] にすると、double カラー イメージを緑のピクセルで塗りつぶします

例: [0 1 0; 0 1 1]' にすると、2 つの double カラー イメージから成るセットの場合、1 番目のイメージを緑のピクセルで、2 番目のイメージをシアンのピクセルで塗りつぶします

例: "vehicle" にすると、categorical イメージを "vehicle" カテゴリで塗りつぶします

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | string | char

出力引数

すべて折りたたむ

平行移動したイメージ。入力イメージ A と同じデータ型の数値配列、logical 配列、または categorical 配列として返されます。

出力イメージに関連付けられている空間参照情報。imref2d または imref3d 空間参照オブジェクトとして返されます。

ヒント

  • imtranslate は、整数値の translation ベクトル用に最適化されています。

  • OutputView"full" で、translation が非整数ピクセルである場合、imtranslate は出力空間参照オブジェクトのワールド座標範囲を最も近い整数ピクセルまで拡大します。これによって imtranslate は入力イメージと同じ解像度で元のイメージと平行移動したイメージの両方が含まれるようにします。それぞれのイメージ拡大部分は、イメージの片側に、平行移動ベクトルの指す方向で追加されます。たとえば、translation が X と Y の両方で正の非整数である場合、imtranslate は、入力イメージの解像度で "full" の四角形境界が含まれるように、XWorldLimitsYWorldLimits の最大値を拡大します。

拡張機能

バージョン履歴

R2014a で導入

すべて展開する