Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

関数 imtranslate を使用したイメージの平行移動

この例では、関数 imtranslate を使用して、イメージの平行移動の操作を行う方法を説明します。平行移動を行うと、x 方向と y 方向のいずれか、または両方に、指定したピクセル数だけイメージがシフトします。

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

I = imread('cameraman.tif');

イメージを表示します。イメージのサイズは 256 x 256 ピクセルです。既定では、imshow はイメージの右上隅が (0,0) の位置になるように表示します。

figure
imshow(I)
title('Original Image')

x 方向に 15 ピクセル、y 方向に 25 ピクセル分シフトして、イメージを平行移動します。既定では、imtranslate は、平行移動したイメージを、元の 256 x 256 のイメージの境界 (範囲) 内に表示します。その結果、平行移動したイメージは、切り取られたようになります。

J = imtranslate(I,[15, 25]);

平行移動したイメージを表示します。イメージのサイズは 256 x 256 ピクセルです。

figure
imshow(J)
title('Translated Image')

平行移動したイメージのクリッピングを防ぐために、'OutputView' パラメーターを 'full' に設定します。新しいイメージのサイズは 281 x 271 ピクセルです。

K = imtranslate(I,[15, 25],'OutputView','full');

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

figure
imshow(K)
title('Translated Image, Unclipped')