メインコンテンツ

warp

Warper オブジェクトの幾何学的変換の適用

説明

B = warp(w,A) は、イメージ ワーパー w によって定義された幾何学的変換を入力イメージ A に適用し、ワーピングされたイメージを B で返します。

入力イメージが RGB イメージまたは 3 次元グレースケール イメージの場合、warp は変換を各カラー チャネルまたは各色平面に個別に適用します。

すべて折りたたむ

同じサイズの一連のイメージを選択します。この例では、細胞が見える一連のイメージを使用しています。

imds = imageDatastore(fullfile(matlabroot,"toolbox","images","imdata","AT*"));

各イメージを 45 度回転させ、各イメージを縮小する相似幾何学的変換を作成します。この変換はイメージを平行移動しません。

scaleFactor = 0.5;
theta = 45;
translation = [0 0];
tform = simtform2d(scaleFactor,theta,translation);

幾何変換オブジェクト、tform、および入力イメージのサイズを指定して Warper オブジェクトを作成します。

im = readimage(imds,1);
warper = images.geotrans.Warper(tform,size(im));

処理するイメージの数を決定し、出力配列を事前に割り当てます。

numFiles = numel(imds.Files);
imr = zeros([warper.OutputSize 1 numFiles],"like",im);

Warper オブジェクトの関数 warp を呼び出して、各入力イメージに幾何学的変換を適用します。

for ind = 1:numFiles
    im = read(imds);
    imr(:,:,1,ind) = warp(warper,im);
end

出力イメージをモンタージュに可視化します。

montage(imr)

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

入力引数

すべて折りたたむ

イメージ ワーパー。Warper オブジェクトとして指定します。

入力イメージ。mn 列または m×n×p のサイズの数値行列として指定します。A のサイズは w.InputSize と一致しなければなりません。

データ型: single | int16 | uint8

出力引数

すべて折りたたむ

変換されたイメージ。数値行列または数値配列として返されます。BA とデータ型が同じで、その最初の 2 つの次元は w.OutputSize です。Ap 個の平面をもつ場合、Bp 個の平面をもちます。

バージョン履歴

R2017b で導入

参考

|