MATLAB Function Reference | ![]() ![]() |
表示
image(C) image(x,y,C) image(...,'PropertyName',PropertyValue,...) image('PropertyName',PropertyValue,...) Formal synatx - PN/PV only handle = image(...)
詳細
image
は、指定されたデータによって、行列の各要素をフィギュアのカラーマップ、または、直接にRGB値として解釈することにより、イメージグラフィックスオブジェクトを作成します。
newplot
を呼び出し、つぎのAxesプロパティを設定するものです。イメージを囲むための XLim
と YLim
を設定
目盛りとグリッドラインの前にイメージを表示するため Layer
を top
に設定
YDir
を reverse
に設定
View
を [0 90]
に設定
newplot
を呼び出さずにカレントのAxesにイメージを追加する低水準関数。低水準関数の引数リストは、プロパティ名とプロパティ値の組合わせのみからなります。プロパティ名とプロパティ値の組合わせ、構造体配列、セル配列として、プロパティを指定することができます(これらのデータタイプの設定方法の例は、リファレンスページのset
、および、get
を参照してください)。
image(C)
は、行列C
をイメージとして表示します。C
の各要素は、イメージの長方形セグメントのカラーを指定します。
image(x,y,C)
では、x
とy
は、2要素のベクトルで、x軸およびy軸のラベルの範囲を指定しますが、image(C)
と同じイメージを作成します。これは、たとえば、イメージにより表わされる実際の物理的な大きさに対応する軸の目盛りを付けたいときに役立ちます。
image(x,y,C,'PropertyName',PropertyValue,...)
は、高水準関数で、プロパティ名とプロパティ値の組合わせを指定します。このシンタックスでは、イメージを描画する前にnewplot
をコールします。
image('PropertyName',PropertyValue,...)
は、関数image
の低水準のシンタックスです。このシンタックスでは、プロパティ名とプロパティ値の組合わせだけを入力引数として指定します。
handle = image(...)
は、作成するイメージオブジェクトのハンドル番号を出力します。関数image
のすべての形式からもハンドル番号を得ることができます。
注意
イメージデータは、インデックス付きカラーあるいはトゥルーカラーです。インデックス付きイメージは、フィギュアのカラーマップのインデックスからなる配列として色を格納します。トゥルーカラーのイメージは、カラーマップを使いません。その代わりに、各ピクセルのカラー値が、直接RGBの3要素として格納されます。MATLABでは、トゥルーカラーのImageオブジェクトのCDataプロパティは、3次元配列(m
*n
*3)です。この配列は、(赤、緑、青のカラー平面を表す)3つのm
行n
列の行列を、3次元的に結合したものです。
関数imread
は、TIFFのような様々な標準形式のグラフィックスファイルから、MATLAB配列にイメージデータを読み込みます。関数imwrite
により、MATLABのイメージデータをグラフィックスファイルに書き込むことができます。imread
とimwrite
は、様々なグラフィックスファイルの形式と圧縮の方法をサポートしています。
imread
を使って、MATLABにイメージデータを読み込む場合、データは8ビットの整数の配列として格納されます。しかし、関数 imread
は、TIFF や PNG ファイルから16ビット/ピクセデータの参照もサポートしています。これは、MATLABが通常使っている倍精度(64ビット)浮動小数点数値よりも、効率的な方法です。しかし、MATLABで64ビットデータと8ビットと16ビットのイメージデータとの違いを解釈することが必要です。つぎの表は、これらの違いについてまとめたものです
インデックス付きイメージ
クラスが、double
のインデックス付きイメージで、値1はカラーマップの1行目を、値2は2行目、等々を指します。uint8
のインデックス付きイメージでは、オフセットがあります。すなわち、値0はカラーマップの1行目で、値1は2行目、等々です。
uint8
、または、uint16
のインデックス付きイメージをdouble
に変換する場合、結果に1を加える必要があります。たとえば、つぎのようにです。
X64 = double(X8) + 1;
X64 = double(X16) + 1;
double
からuint8
、または、unit16
に変換する場合は、最初に1を引き、それからすべての値が整数になるようにround
を使います。
X8 = uint8(round(X64 - 1));
X16 = uint16(round(X64 - 1));
uint8
、または、uint16
の配列では、数学的な演算を行うことができないので、演算の順番は、これらの例に示した通りでなければなりません。
imwrite
によりインデックス付きイメージを書き出す場合、必要ならばMATLABは自動的に値を変換します。
カラーマップ
MATLABのカラーマップは、常に[0, 1]範囲の倍精度浮動小数点数値のm
行3列の配列です。ほとんどのグラフィックスファイル形式で、カラーマップは整数として格納されますが、MATLABは整数値のカラーマップをサポートしていません。imread
とimwrite
は、ファイルの読み書き時に自動的にカラーマップの値を変換します。
トゥルーカラーイメージ
クラスがdouble
のトゥルーカラーイメージでは、データ値は[0,1]範囲の浮動小数点数値です。クラスがuint8
のトゥルーカラーイメージでは、データは[0, 255]範囲の整数です。そして、クラスがuint16
のトゥルーカラーイメージでは、データ値は、[0, 65535] の範囲の整数です。
あるデータタイプから他のデータタイプへトゥルーカラーイメージを変換する場合は、データの再スケールを行わなくてはなりません。たとえば、つぎのステートメントでは、uint8
のトゥルーカラーイメージをdouble
に変換します。
RGB64 = double(RGB8)/255;
または、uint16
イメージについては、つぎのようにします。
RGB64 = double(RGB16)/65535;
つぎのステートメントは、double
のトゥルーカラーイメージをuint8
に変換します。
RGB8 = uint8(round(RGB64*255));
または、uint16
イメージについては、つぎのようにします。
RGB16 = uint16(round(RGB64*65535));
uint8
、または、uint16
の配列では、数学的な演算を行うことができないので、演算の順番は、これらの例に示した通りでなくてはなりません。
imwrite
によりトゥルーカラーイメージを書き出す場合、MATLABは必要な場合、自動的にその値を変換します。
オブジェクトの階層
デフォルトプロパティの設定
ユーザは、axes, figure, roots レベルで、デフォルトの Image プロパティを設定できます。
set(0,'DefaultImageProperty',PropertyValue...) set(gcf,'DefaultImageProperty',PropertyValue...) set(gca,'DefaultImageProperty',PropertyValue...)
ここで、Property
は、Imageプロパティ名で、PropertyValue
は設定するプロパティ値です。Imageのプロパティにアクセスするには、 set
およびget
を使用してください。
つぎの表は、Imageのプロパティとそれらの簡単な説明をしたものです。プロパティ名は、詳細な説明とリンクされています。
プロパティ名 |
プロパティの詳細 |
プロパティ値 |
オブジェクトを定義するデータ | ||
CData |
イメージデータ |
値:行列、または、m * n * 3 配列 デフォルト: image;axis image ij を入力し、参照してください。 |
CDataMapping |
カラーマップへのデータのマッピングの指定 |
値: scaled , direct デフォルト: direct |
XData |
x-軸でのイメージの位置の制御 |
値:[min max] デフォルト: [1 size(CData,2)] |
YData |
y-軸でのイメージの位置の制御 |
値: [min max] デフォルト: [1 size(CData,1)] |
透明度の指定 | ||
alphadata |
透明度のデータ |
倍精度の m 行 n 列の行列 または、uint8 デフォルト: 1 (opaque) |
alphadatamapping |
透明度マッピング法 |
none, direct, scaled デフォルト: none |
外観の制御 | ||
Clipping |
長方形を形成する axes へのクリップ |
値: on , off デフォルト: on |
EraseMode |
イメージを描画したり、消去する方法(アニメーションに対して有効)
|
値: normal , none , xor , background デフォルト: normal |
SelectionHighlight |
(Selected プロパティを on に設定した場合)選択すると強調されるイメージ |
値: on , off デフォルト: on |
Visible |
イメージの可視化、または、非可視化 |
値: on , off デフォルト: on |
オブジェクトへのアクセスを制御 | ||
HandleVisibility |
ラインのハンドルが、他の関数にて可視化可能になるとき、または、なる場合を指定 |
値: on , callback , off デフォルト: on |
HitTest |
イメージがカレントオブジェクトになるか否かの決定(フィギュアのCurrentObject プロパティを参照) |
値: on , off デフォルト: on |
イメージに関する一般的な情報 | ||
Children |
イメージオブジェクトは、子オブジェクトをもちません。 |
値: [] (空行列) |
Parent |
イメージオブエクトの親は、通常、axes オブジェクトです。 |
値:axes ハンドル |
Selected |
イメージが選択状態にあるか否かを指定 |
値: on , off デフォルト: on |
Tag |
ユーザ指定のラベル |
値:任意の文字列 デフォルト: '' (empty string) |
Type |
グラフィックオブジェクトのタイプ(参照のみ) |
値:文字列 'image' |
|
ユーザ指定のデータ |
値:任意の行列 デフォルト: [] (空行列) |
コールバックルーチンの実行に関連したプロパティ | ||
|
コールバックルーチンの割り込みの取り扱いを指定 |
値: cancel , queue デフォルト: queue |
|
マウスボタンがイメージ上で押された場合に実行するコールバックルーチンを定義 |
値:文字列 デフォルト: 空文字列 |
|
イメージが作成された場合に実行するコールバックルーチンの定義 |
値:文字列 デフォルト: 空文字列 |
|
イメージが削除された場合に実行するコールバックルーチンの定義(close 、または、delete 経由) |
値: 文字列 デフォルト: 空文字列 |
|
コールバックルーチンが中断されるか否かを決定 |
値: on , off デフォルト: on (中断可) |
|
コンテキストメニューとイメージの関連付け |
値:uicontextmenu のハンドル |
![]() | imag | Image Properties | ![]() |