| 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 | ![]() |