ドキュメンテーション

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

imcrop

イメージ トリミング

構文

I2 = imcrop
I2 = imcrop(I)
X2 = imcrop(X,map)
___ = imcrop(obj)
I2 = imcrop(I,rect)
X2 = imcrop(X,map,rect)
___ = imcrop(XData,YData,___)
[___,rect2] = imcrop(___)
[XData2,YData2,___] = imcrop(___)

説明

I2 = imcrop は、ターゲット イメージと呼ばれる、現在の Figure に表示されたイメージに関連付けられた対話型イメージ トリミング ツールを作成します。イメージ トリミング ツールは、移動可能で、サイズ変更可能な四角形で、マウスを使ってイメージ上に配置し、対話形式でトリミング操作を実行できます。イメージ トリミング ツールの使用方法の詳細については、対話型動作を参照してください。imcrop はトリミングされたイメージ I2 を返します。この構文やその他の対話型構文を使用すると、イメージ トリミング ツールは操作が完了するまで MATLAB® コマンド ラインをブロックします。

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

X2 = imcrop(X,map) は、カラーマップ map を使用して Figure にインデックス付きイメージ X を表示し、そのイメージに関連付けられたトリミング ツールを作成します。イメージをトリミングした後、imcrop はトリミングされたインデックス付きイメージ X2 を返します。

___ = imcrop(obj) は、オブジェクト obj に関連付けられたトリミング ツールを作成します。obj は、image、axes、uipanel または figure のいずれかになります。obj が axes、uipanel または figure のいずれかの場合、トリミング ツールは、コンテナー オブジェクト内で見つかる最初のイメージに作用します。

I2 = imcrop(I,rect) はイメージ I をトリミングします。rect は、トリミングする四角形のサイズと位置を指定する [xmin ymin width height] の形式の 4 要素の位置ベクトルです。imcrop はトリミングされたイメージ I2 を返します。

X2 = imcrop(X,map,rect) はインデックス付きイメージ X をトリミングします。map は、X によって使用されるカラーマップを指定します。rect はトリミングする四角形のサイズと位置を指定する 4 要素の位置ベクトル [xmin ymin width height] です。imcrop はトリミングされたインデックス付きイメージ X2 を返します。

___ = imcrop(XData,YData,___) はターゲット イメージの既定ではない空間座標系を指定します。

[___,rect2] = imcrop(___) はトリミングされたイメージと共に、トリミングする四角形を rect2 (4 要素の位置ベクトル) に返します。

[XData2,YData2,___] = imcrop(___) は、ターゲット イメージの XDataYData を指定する 2 要素のベクトルを返します。

コード生成 サポート: あり。

MATLAB Function ブロック サポート: あり。

すべて折りたたむ

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

I = imread('cameraman.tif');

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

[I2, rect] = imcrop(I);

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

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

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

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

whos
Name        Size             Bytes  Class    Attributes

  I         256x256            65536  uint8              
  I2        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')

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

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

入力引数

すべて折りたたむ

トリミングするイメージ。実数、非スパースの数値配列として指定します。入力引数として rect を指定する構文を使用すると、入力イメージは、論理値か数値のいずれかで、実数で非スパースでなければなりません。その他の構文を使用すると、imcropimshow を呼び出し、imshow が受け入れるすべてのイメージ クラスを受け入れます。Ilogicaluint8uint16int16singledouble のいずれかになります。トゥルーカラー イメージは、uint8int16uint16singledouble のいずれかになります。

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

トリミングするインデックス付きイメージ。実数、非スパースの数値配列として指定します。入力引数として rect を指定する構文を使用すると、入力イメージは、論理値か数値のいずれかで、実数で非スパースでなければなりません。その他の構文を使用すると、imcropimshow を呼び出し、imshow が受け入れるイメージ クラスを受け入れます。インデックス付きイメージの場合、Xlogicaluint8uint16singledouble のいずれかになります。

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

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

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

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

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

トリミングするイメージを含むオブジェクト。image、axes、uipanel または figure のいずれかのオブジェクトとして指定します。

データ型: double

既定以外の座標系の X の範囲。2 要素ベクトルとして指定します。

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

既定以外の座標系の Y の範囲。2 要素ベクトルとして指定します。

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

出力引数

すべて折りたたむ

トリミングされたイメージ。実数、非スパースの数値配列として返されます。

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

入力イメージを指定しない場合、つまり、0 の入力引数、またはハンドルで imcrop を呼び出した場合、出力イメージは、int16 または single の場合を除き、入力イメージと同じクラスになります。入力イメージが int16 または single の場合、出力イメージは double になります。

トリミングされたイメージ。実数、非スパースの数値配列として返されます。

入力イメージを指定した場合、出力イメージは、入力イメージと同じクラスになります。入力引数としてイメージを指定しない場合、すなわち、0 の入力引数、またはハンドルで imcrop を呼び出した場合、出力イメージは、int16 または single の場合を除き、入力イメージと同じクラスになります。入力イメージが int16 または single の場合、出力イメージは double になります。

既定以外の座標系の X の範囲。2 要素ベクトルとして返されます。

既定以外の座標系の Y の範囲。2 要素ベクトルとして返されます。

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

詳細

すべて折りたたむ

対話型動作

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

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

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

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

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

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

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

コード生成

この関数では MATLAB Coder™ を使用した C コードの生成がサポートされています。詳細は、「画像処理のコード生成」を参照してください。

コード生成時には、以下の点に注意してください。

  • 次のように対話型構文はサポートされません。

    • I2 = imcrop

    • I2 = imcrop(I)

    • X2 = imcrop(X,map)

    • I2 = imcrop(h)

  • 非対話型構文 X2 = imcrop(X,map,rect); を含め、インデックス付きイメージはサポートされません。

MATLAB Function ブロック

この関数は Simulink の MATLAB Function ブロックで使用できます。

ヒント

  • rect は、空間座標を使って設定されているので、rectwidthheight 要素は、出力イメージの大きさと必ずしも正確には対応しません。たとえば、rect[20 20 40 30] とし、既定の空間座標系を使用するとします。設定した四角形の左上の点はピクセル (20,20) の点で、右下の点はピクセル (50,60) の点になります。結果出力されるイメージは、30 行 40 列の大きさでなく 31 行 41 列の大きさになります。これは、出力イメージは、四角形で完全に囲まれた、または "部分的" に囲まれた入力イメージの中のすべてのピクセルを含むためです。

参考

|

R2006a より前に導入

この情報は役に立ちましたか?