Main Content

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

imcrop

イメージのトリミング

説明

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

メモ

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

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

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

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

Xcropped= imcrop(X,cmap)は、Figure ウィンドウにカラーマップcmapを使用してインデックス付きイメージXを表示し、そのイメージに関連付けられた対話型のイメージのトリミング ツールを作成します。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('cameraman.tif');

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

[J,rect] = imcrop(I);

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

マウスを使用して、トリミングするイメージ部分の上に四角形を描画します。

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

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

whos
Name Size Bytes Class Attributes I 256x256 65536 uint8 J 121x126 15246 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. Axes 1 with title Original Image contains an object of type image. Axes 2 with title Cropped Image contains an object of type image.

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

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

Figure contains an axes. The axes 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. The axes contains an object of type image.

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

loadtrees

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

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. Axes 1 with title Original Image contains an object of type image. Axes 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、axes、uipanel、または image グラフィックス オブジェクトのハンドルとして指定します。hが axes または figure ハンドルの場合、imcropは、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 でアクティブな場合、ポインターをターゲット イメージ上へ移動すると、ポインターの形状が十字形に変わります。四角形をトリミングするには、マウスのクリック アンド ドラッグを使用します。トリミングする四角形は、マウスを使用して移動またはサイズ変更できます。トリミングする四角形のサイズ調整および配置が終了したら、左マウス ボタンをダブルクリックして、トリミングしたイメージを作成します。また、コンテキスト メニューから[イメージのトリミング]を選択することもできます。図は、イメージのトリミング ツールとコンテキスト メニューを示しています。

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

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

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

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

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

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

拡張機能

R2006a より前に導入