Main Content

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

imcrop

イメージ トリミング

説明

J = imcrop は、現在の Figure に表示されたイメージに関連付けられた対話型イメージのトリミング ツールを作成します。この構文やその他の対話型構文を使用すると、イメージのトリミング ツールは操作が完了するまで MATLAB® コマンド ラインをブロックします。imcrop はトリミングされたイメージ J を返します。

イメージのトリミング ツールの使用方法の詳細は、対話型動作を参照してください。

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

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

J = imcrop(h) は、ハンドル h で指定されたイメージに関連付けられた対話型のイメージのトリミング ツールを作成します。

J = imcrop(I,rect) は、トリミングする四角形 rect または images.spatialref.Rectangle オブジェクトで指定された位置と次元に従ってイメージ I をトリミングします。トリミングする四角形 rect は、トリミングされるイメージのサイズと位置を空間座標で指定する [x, y, width, height] 形式のベクトルです。トリミングされたイメージは、四角形で完全に囲まれた、または "部分的" に囲まれた入力イメージの中のすべてのピクセルを含みます。

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

C2 = imcrop(C,rect) は、トリミングする四角形 rect で指定された位置と次元に従って categorical イメージ C をトリミングし、トリミングした categorical イメージ C2 を返します。

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

J = imcrop(x,y,___) は既定ではない座標系を使用して入力イメージをトリミングします。ここで xy はワールド座標系でのイメージ範囲を指定します。

[J,rect2] = imcrop(___)rect2 にトリミングされる四角形の位置を返します。

[x2,y2,___]= imcrop(___)x2y2 のイメージ範囲も返します。

すべて折りたたむ

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

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')

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

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

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

targetSize = [300 600];

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

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

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

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

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

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')

入力引数

すべて折りたたむ

トリミングするイメージ。数値配列、logical 配列、または categorical 配列として指定します。rect を入力引数として指定すると、I は logical に指定することもできます。その他の場合、imcropimshow を呼び出し、imshow が受け入れるあらゆるイメージ クラスを受け入れます。

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

トリミングするインデックス付きイメージ。整数の配列として指定します。rect を入力引数として指定すると、I は logical に指定することもできます。その他の場合、imcropimshow を呼び出し、imshow が受け入れるあらゆるイメージ クラスを受け入れます。

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

インデックス付きイメージと関連付けられたカラーマップ。c 行 3 列の数値行列として指定します。

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

categorical イメージ。categorical データの m 行 n 列の行列として指定します。

データ型: categorical

空間座標でトリミングする四角形のサイズと位置。[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 または y 次元に沿ったイメージ範囲。[min max] 形式の 2 要素数値ベクトルとして指定します。xy の値はイメージの XDataYData を設定します。x および y のデータ型は一致しなければなりません。

x および y の 2 番目の要素は 1 番目の要素より大きくなければなりません。imcrop は、座標軸が逆向きの座標系をサポートしていません。

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

出力引数

すべて折りたたむ

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

  • 入力イメージを指定すると、出力イメージは、入力イメージと同じクラスになります。

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

トリミングされた categorical イメージ。categorical 行列として返されます。

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

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

x または y 方向のイメージ範囲。[min max] 形式の 2 要素の数値ベクトルとして返されます。イメージ範囲の xy を指定すると、x2y2 はこれらの値と等しくなります。その他の場合、x2y2 は元のイメージ XDataYData と等しくなります。

詳細

すべて折りたたむ

対話型動作

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

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

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

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

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

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

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

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

拡張機能

R2006a より前に導入