Main Content

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

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

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

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

I = imread("cameraman.tif");

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

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

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

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

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

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

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

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

平行移動したイメージのクリッピングを防ぐために、名前と値の引数 OutputVie を "full" に設定します。新しいイメージのサイズは 281 x 271 ピクセルです。

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

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

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

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