メインコンテンツ

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 が含まれており、描画する四角形のサイズと位置が格納されます。

[J,rect] = imcrop(I);

イメージの上にカーソルを移動するとカーソルが十字に変わります。イメージのトリミング ツールは、操作が完了するまでコマンド ラインをブロックします。マウスを使用して、トリミングするイメージ部分の上に四角形を描画します。

Crop rectangle drawn over image.

トリミングする四角形をダブルクリックするか、コンテキスト メニューで [イメージのトリミング] を選択し、トリミング操作を実行します。

Context menu of Crop Image tool, displaying options for adjusting the crop rectangle or performing the cropping operation.

トリミングしたイメージを表示します。

imshow(J)

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

rect
rect = 1×4

  182.5100   83.5100  561.9800  420.9800

イメージをワークスペースに読み取って表示します。

I = imread("circuit.tif");
imshow(I)

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

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

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

トリミングしたイメージを表示します。

imshow(I2)

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

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

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

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

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

targetSize = [300 600];

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

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

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

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

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

インデックス付きイメージ X を、関連付けられたカラーマップ map とともにワークスペースに読み込みます。イメージをカラーマップと共に表示します。

load trees
imshow(X,map)

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

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

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

トリミングしたイメージをカラーマップと共に表示します。

imshow(X2,map)

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

入力引数

すべて折りたたむ

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

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

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

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

  • ラベル イメージを表す mn 列の 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 要素数値ベクトルとして指定します。ここで、xmaxxmin より大きいとします。xref の値はイメージ XData を設定します。

ワールド座標の y 次元に沿ったイメージ範囲。[ymin ymax] 形式の 2 要素数値ベクトルとして指定します。ここで、ymaxymin より大きいとします。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 と等しくなります。

詳細

すべて折りたたむ

拡張機能

すべて展開する

バージョン履歴

R2006a より前に導入

すべて展開する