Main Content

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

imcrop

イメージのトリミング

説明

対話形式によるイメージのトリミング

メモ

対話型構文は categorical イメージをサポートしていません。categorical イメージの場合、トリミング領域 rect を指定しなければなりません。

Icropped = imcrop は、現在の Figure 内に表示されたグレースケール、トゥルーカラー、またはバイナリ イメージをトリミングする、対話型のイメージのトリミング ツールを作成します。imcrop はトリミングされたイメージ Icropped を返します。

この構文やその他の対話型構文を使用すると、イメージのトリミング ツールは操作が完了するまで MATLAB® コマンド ラインをブロックします。イメージのトリミング ツールの使用方法の詳細については、対話型動作を参照してください。

Icropped = imcrop(I) は、Figure ウィンドウにグレースケール、トゥルーカラー、またはバイナリ イメージ I を表示し、イメージをトリミングする対話型のイメージのトリミング ツールを作成します。

Xcropped = imcrop(X,cmap) は、カラーマップ cmap を使用してインデックス付きイメージ X を Figure に表示し、そのイメージをトリミングする対話型のイメージのトリミング ツールを作成します。imcrop はトリミングされたインデックス付きイメージ Xcropped と、さらにカラーマップ cmap も返します。

___ = imcrop(h) は、グラフィックス オブジェクト h のイメージをトリミングする対話型のイメージのトリミング ツールを作成します。

トリミング領域の指定によるイメージのトリミング

Icropped = imcrop(I,rect) は、トリミングする四角形 rect で指定された位置と次元に従ってイメージ I をトリミングします。トリミングされたイメージは、四角形で完全に囲まれた、または "部分的" に囲まれた入力イメージの中のすべてのピクセルを含みます。

出力イメージの実際のサイズは rect で指定された幅と高さと必ずしも正確には対応しません。たとえば、rect[20 20 40 30] とし、既定の空間座標系を使用するとします。指定した四角形の左上隅は、空間座標 (x,y) が (20,20) のピクセルの中心です。四角形の右下隅は、空間座標 (x,y) が (60,50) のピクセルの中心です。結果の出力イメージのサイズは 31 x 41 ピクセルで、30 x 40 ピクセルではありません。

Xcropped = imcrop(X,cmap,rect) は、トリミングする四角形 rect で指定された位置と次元に従ってカラーマップ cmap を使用してインデックス付きイメージ X をトリミングします。imcrop はトリミングされたインデックス付きイメージ Xcropped と、さらにカラーマップ cmap も返します。

___ = imcrop(xref,yref,___) は、xrefyref で定義されるワールド座標系を使用して入力イメージをトリミングします。入力引数 xref および yref の後に、入力イメージ I または X を含む任意の構文の引数を指定できます。

追加出力オプションの指定

[___,rectout] = imcrop(___)rectout にトリミングされる四角形の位置も返します。他の任意の構文の入力引数を使用できます。

[xrefout,yrefout,___] = imcrop(___)xrefoutyrefout の入力イメージのイメージ範囲も返します。

出力引数を指定せずに imcrop(___) を呼び出すと、新しい Figure ウィンドウにトリミングされたイメージが表示されます。この構文は categorical イメージをサポートしていません。

すべて折りたたむ

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

I = imread('llama.jpg');

このイメージに関連付けられたイメージのトリミング ツールを開きます。トリミングしたイメージを格納する変数を指定します。例には、オプションの戻り値 rect が含まれており、imcrop からここに描画した四角形の 4 要素の位置ベクトルが返されます。

[J,rect] = imcrop(I);

CropImageUsingCropImage InteractiveToolExample_01.png

イメージの上にカーソルを移動するとカーソルが十字に変わります。イメージのトリミング ツールは、操作が完了するまでコマンド ラインをブロックします。

マウスを使用して、トリミングするイメージ部分の上に四角形を描画します。トリミングする四角形をダブルクリックするか、コンテキスト メニューで [イメージのトリミング] を選択し、トリミング操作を実行します。

CropImageUsingCropImage InteractiveToolExample_02.png

トリミングしたイメージが Figure ウィンドウに表示されます。

CropImageUsingCropImage InteractiveToolExample_03.png

イメージのトリミング ツールは、トリミングした領域を戻り値の変数 J に返します。変数 rect は指定したトリミングする四角形を表す 4 要素の位置ベクトルです。返された変数に関する情報を取得します。

whos
  Name        Size                  Bytes  Class     Attributes

  I         876x1314x3            3453192  uint8               
  J         413x483x3              598437  uint8               
  rect        1x4                      32  double              

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

I = imread('circuit.tif');

トリミングする四角形を指定してイメージをトリミングします。

I2 = imcrop(I,[75 68 130 112]);

元のイメージとトリミングされたイメージを表示します。

subplot(1,2,1)
imshow(I)
title('Original Image')
subplot(1,2,2)
imshow(I2)
title('Cropped Image')

Figure contains 2 axes objects. Axes object 1 with title Original Image contains an object of type image. Axes object 2 with title Cropped Image contains an object of type image.

イメージを読み取って表示します。

I = imread('parkavenue.jpg');
imshow(I)

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

ターゲット ウィンドウ サイズを [width, height] 形式の 2 要素ベクトルとして指定します。

targetSize = [300 600];

トリミング ウィンドウの空間範囲を指定する Rectangle オブジェクトを作成します。

r = centerCropWindow2d(size(I),targetSize);

空間範囲に合わせてイメージをトリミングします。トリミングした領域を表示します。

J = imcrop(I,r);
imshow(J)

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

インデックス付きイメージを関連付けられたマップとともにワークスペースに読み込みます。

load trees

トリミングする四角形を指定してインデックス付きイメージをトリミングします。

X2 = imcrop(X,map,[30 30 50 75]);

元のイメージとトリミングされたイメージを表示します。

subplot(1,2,1)
imshow(X,map)
title('Original Image')
subplot(1,2,2)
imshow(X2,map)
title('Cropped Image')

Figure contains 2 axes objects. Axes object 1 with title Original Image contains an object of type image. Axes object 2 with title Cropped Image contains an object of type image.

入力引数

すべて折りたたむ

トリミングするイメージ。次のいずれかとして指定します。

  • グレースケール イメージを表す m 行 n 列の数値行列

  • トゥルーカラー イメージを表す m x n x 3 の数値配列

  • バイナリ マスクを表す m 行 n 列の logical 行列

  • ラベル イメージを表す m 行 n 列の categorical 行列

    メモ

    カテゴリカル入力の場合はトリミングする四角形 rect を指定しなければなりません。対話型構文はカテゴリカル入力をサポートしていません。

対話型構文を使用する場合、imcrop は関数 imshow を呼び出し、imshow が受け入れるあらゆるイメージ クラスを受け入れます。

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

トリミングするインデックス付きイメージ。整数の行列として指定します。

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

インデックス付きイメージ X に関連付けられたカラーマップ。c 行 3 列の数値行列として指定します。各行は、カラーマップの単一色を構成する赤、緑、青の成分を指定する 3 要素の RGB 3 成分です。値が single データ型または double データ型の場合、範囲は [0, 1] でなければなりません。

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

空間座標でトリミングする四角形のサイズと位置。[xmin ymin width height] の形式の 4 要素の数値ベクトルまたは images.spatialref.Rectangle オブジェクトとして指定します。

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

トリミングするイメージを含むグラフィックス オブジェクト。Figure オブジェクト、Panel オブジェクト、Axes オブジェクト、または Image オブジェクトとして指定します。h が Axes または Figure の場合、impixelregion は、findobj(h,Type="image") が返した最初のイメージを使用します。

ワールド座標の x 次元に沿ったイメージ範囲。[xmin xmax] 形式の 2 要素数値ベクトルとして指定します。ここで、xmax は xmin より大きいとします。xref の値はイメージ XData を設定します。

ワールド座標の y 次元に沿ったイメージ範囲。[ymin ymax] 形式の 2 要素数値ベクトルとして指定します。ここで、ymax は ymin より大きいとします。yref の値はイメージ YData を設定します。

出力引数

すべて折りたたむ

トリミングされたイメージ。数値配列、数値行列、logical 行列、または categorical 行列として返されます。

  • 入力イメージ I を指定すると、出力イメージは、入力イメージと同じデータ型になります。

  • 入力イメージを指定しない場合、一般に出力イメージは入力イメージと同じデータ型になります。ただし、入力イメージのデータ型が int16 または single の場合、出力イメージはデータ型 double になります。

トリミングされたインデックス付きイメージ。数値行列として返されます。

トリミングする四角形のサイズと位置。[xmin ymin width height] の形式の 4 要素の数値ベクトルとして返されます。

ワールド座標の x 次元に沿ったイメージ範囲。[xmin xmax] 形式の 2 要素数値ベクトルとして返されます。xref を使用してワールド座標系のイメージ範囲を指定した場合、xrefoutxref と等しくなります。その他の場合、xrefout は元のイメージ XData と等しくなります。

ワールド座標の y 次元に沿ったイメージ範囲。[ymin ymax] 形式の 2 要素数値ベクトルとして返されます。yin を使用してワールド座標系のイメージ範囲を指定した場合、yrefoutyin と等しくなります。その他の場合、yrefout は元のイメージ YData と等しくなります。

詳細

すべて折りたたむ

対話型動作

イメージのトリミング ツールは、移動可能で、サイズ変更可能な四角形で、マウスを使ってイメージ上に配置し、対話形式でトリミング操作を実行できます。

イメージのトリミング ツールが Figure でアクティブな場合、ポインターをターゲット イメージ上へ移動すると、ポインターの形状が十字形 に変わります。四角形をトリミングするには、マウスのクリック アンド ドラッグを使用します。トリミングする四角形は、マウスを使用して移動またはサイズ変更できます。トリミングする四角形のサイズ調整および配置が終了したら、左マウス ボタンをダブルクリックして、トリミングしたイメージを作成します。また、コンテキスト メニューから [イメージのトリミング] を選択することもできます。図は、イメージのトリミング ツールとコンテキスト メニューを示しています。

Crop Image tool displaying a blue rectangle over the region to be cropped and a context menu with options such as "set color" and "fix aspect ratio".

対話型動作説明
イメージのトリミング ツールを削除する。

Backspace キー、Escape キーまたは Delete キーを押すか、トリミングする四角形内で右クリックして、コンテキスト メニューから [キャンセル] を選択します。

メモ: ROI を削除すると、関数は空の値を返します。

イメージのトリミング ツールをサイズ変更する。トリミングする四角形でサイズ変更ハンドルを選択します。ポインターが両方向の矢印 に変わります。マウスをクリック アンド ドラッグして、トリミングする四角形をサイズ変更します。
イメージのトリミング ツールを移動する。ポインターをトリミングする四角形の境界内に移動します。ポインターが花形 に変わります。マウスをクリック アンド ドラッグして、イメージ上で四角形を移動します。
トリミングする四角形を表示するために使用する色を変更する。トリミングする四角形の境界内で右クリックして、コンテキスト メニューから [色の設定] を選択します。
イメージをトリミングする。

マウスの左ボタンでダブルクリックするか、トリミングする四角形の境界内で右クリックして、コンテキスト メニューから [イメージのトリミング] を選択します。

トリミングする四角形の座標を取得する。トリミングする四角形の境界内で右クリックして、コンテキスト メニューから [位置のコピー] を選択します。imcrop によって、4 要素の位置ベクトル ([xmin ymin width height]) がクリップボードにコピーされます。

拡張機能

バージョン履歴

R2006a より前に導入

すべて展開する