MATLAB Function Reference    
image

Imageオブジェクトの表示

表示

詳細

image は、指定されたデータによって、行列の各要素をフィギュアのカラーマップ、または、直接にRGB値として解釈することにより、イメージグラフィックスオブジェクトを作成します。

関数imageには、2つの型があります。

プロパティ名とプロパティ値の組合わせ、構造体配列、セル配列として、プロパティを指定することができます(これらのデータタイプの設定方法の例は、リファレンスページのset、および、getを参照してください)。

image(C) は、行列Cをイメージとして表示します。Cの各要素は、イメージの長方形セグメントのカラーを指定します。

image(x,y,C) では、xyは、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つのmn列の行列を、3次元的に結合したものです。

関数imreadは、TIFFのような様々な標準形式のグラフィックスファイルから、MATLAB配列にイメージデータを読み込みます。関数imwriteにより、MATLABのイメージデータをグラフィックスファイルに書き込むことができます。imreadimwriteは、様々なグラフィックスファイルの形式と圧縮の方法をサポートしています。

imreadを使って、MATLABにイメージデータを読み込む場合、データは8ビットの整数の配列として格納されます。しかし、関数 imread は、TIFF や PNG ファイルから16ビット/ピクセデータの参照もサポートしています。これは、MATLABが通常使っている倍精度(64ビット)浮動小数点数値よりも、効率的な方法です。しかし、MATLABで64ビットデータと8ビットと16ビットのイメージデータとの違いを解釈することが必要です。つぎの表は、これらの違いについてまとめたものです

イメージタイプ
倍精度データ
(double 配列)

8-ビットデータ(uint8 配列)
16-ビットデータ(uint16 配列)

インデックス付き(カラーマップ)
イメージは、[1, length(colormap)]範囲の整数からなる2次元(mn列)配列としてストアされます。カラーマップは、[0,1]範囲の浮動小数点数値からなるm3列の配列です。
イメージは、unit8 の場合、[0, 255] の範囲の整数の2次元(mn 列) 配列としてストアされます。また、uint16 の場合、[0, 65535] でストアされます。カラーマップは、[0, 1] の範囲の浮動小数点値を要素とするm 行 3 列 の配列になります。
トゥルーカラー(RGB)
イメージは、[0,1]範囲の浮動小数点数値からなる3次元(m*n*3)配列としてストアされます。
イメージは、unit8 の場合 [0, 255] の範囲、uint16 の場合 [0, 65535] の範囲の整数を要素とする3次元(m*n*3)配列で表されます。

インデックス付きイメージ

クラスが、doubleのインデックス付きイメージで、値1はカラーマップの1行目を、値2は2行目、等々を指します。uint8のインデックス付きイメージでは、オフセットがあります。すなわち、値0はカラーマップの1行目で、値1は2行目、等々です。

uint8、または、uint16のインデックス付きイメージをdoubleに変換する場合、結果に1を加える必要があります。たとえば、つぎのようにです。

または、

doubleからuint8、または、unit16に変換する場合は、最初に1を引き、それからすべての値が整数になるようにroundを使います。

または、

uint8、または、uint16の配列では、数学的な演算を行うことができないので、演算の順番は、これらの例に示した通りでなければなりません。

imwriteによりインデックス付きイメージを書き出す場合、必要ならばMATLABは自動的に値を変換します。

カラーマップ

MATLABのカラーマップは、常に[0, 1]範囲の倍精度浮動小数点数値のm行3列の配列です。ほとんどのグラフィックスファイル形式で、カラーマップは整数として格納されますが、MATLABは整数値のカラーマップをサポートしていません。imreadimwriteは、ファイルの読み書き時に自動的にカラーマップの値を変換します。

トゥルーカラーイメージ

クラスがdoubleのトゥルーカラーイメージでは、データ値は[0,1]範囲の浮動小数点数値です。クラスがuint8のトゥルーカラーイメージでは、データは[0, 255]範囲の整数です。そして、クラスがuint16のトゥルーカラーイメージでは、データ値は、[0, 65535] の範囲の整数です。

あるデータタイプから他のデータタイプへトゥルーカラーイメージを変換する場合は、データの再スケールを行わなくてはなりません。たとえば、つぎのステートメントでは、uint8のトゥルーカラーイメージをdoubleに変換します。

または、uint16 イメージについては、つぎのようにします。

つぎのステートメントは、doubleのトゥルーカラーイメージをuint8に変換します。

または、uint16 イメージについては、つぎのようにします。

uint8、または、uint16の配列では、数学的な演算を行うことができないので、演算の順番は、これらの例に示した通りでなくてはなりません。

imwriteによりトゥルーカラーイメージを書き出す場合、MATLABは必要な場合、自動的にその値を変換します。

オブジェクトの階層

デフォルトプロパティの設定

ユーザは、axes, figure, roots レベルで、デフォルトの Image プロパティを設定できます。

ここで、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'
UserData
ユーザ指定のデータ
値:任意の行列
デフォルト: [] (空行列)
コールバックルーチンの実行に関連したプロパティ
BusyAction
コールバックルーチンの割り込みの取り扱いを指定
値: cancel, queue
デフォルト: queue
ButtonDownFcn
マウスボタンがイメージ上で押された場合に実行するコールバックルーチンを定義
値:文字列
デフォルト: 空文字列
CreateFcn
イメージが作成された場合に実行するコールバックルーチンの定義
値:文字列
デフォルト: 空文字列
DeleteFcn
イメージが削除された場合に実行するコールバックルーチンの定義(close、または、delete経由)
値: 文字列
デフォルト: 空文字列
Interruptible
コールバックルーチンが中断されるか否かを決定
値: on, off
デフォルト: on (中断可)
UIContextMenu
コンテキストメニューとイメージの関連付け
値:uicontextmenu のハンドル


 imag Image Properties