ドキュメンテーション

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

image

配列のイメージ表示

構文

  • image(C)
  • image(x,y,C)
  • image('CData',C)
  • image('XData',x,'YData',y,'CData',C)
  • image(___,Name,Value)
  • image(ax,___)
  • im = image(___)

説明

image(C) は、配列 C 内のデータをイメージとして表示します。C の各要素は、イメージの 1 ピクセルの色を指定します。結果のイメージは m x n のピクセルからなるグリッドです。ここで、mC の列数、n は行数です。要素の行と列のインデックスにより、対応するピクセルの中心が決まります。

image(x,y,C) は、イメージの位置を指定します。xy を使用して、C(1,1)C(m,n) に対応する角の位置を指定します。両方の角を指定するには、xy を 2 要素ベクトルとして設定します。一方の角を指定し、他方の角を image で決定するには、xy をスカラー値として設定します。イメージが伸張し、適切に方向付けされます。

image('CData',C) は、既存のプロットを置き換えずに、現在の座標軸にイメージを追加します。この構文は、image(C) の低水準版です。詳細は、イメージの高水準版と低水準版の違いを参照してください。

image('XData',x,'YData',y,'CData',C) は、イメージの位置を指定します。この構文は、image(x,y,C) の低水準版です。

image(___,Name,Value) は、名前と値のペア引数を 1 つ以上使用して、イメージのプロパティを指定します。イメージのプロパティは、前述の構文に示した任意の入力引数の組み合わせを使用して指定できます。

image(ax,___) は、現在の座標軸 (gca) ではなく ax で指定された座標軸にイメージを作成します。オプションの ax は、前述の構文のすべての入力引数の組み合わせより前に指定できます。

im = image(___) は、作成された image オブジェクトを返します。イメージの作成後にプロパティを設定するには、im を使用します。この出力は、前述の構文に示した任意の入力引数の組み合わせを使用して指定できます。イメージのプロパティと説明の一覧は、Image のプロパティ を参照してください。

すべて折りたたむ

行列 C を作成します。C 内のデータのイメージを表示します。現在のカラーマップを示すカラー バーをグラフに追加します。

C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
image(C)
colorbar

既定では、イメージの CDataMapping プロパティは 'direct' に設定され、imageC 内の値をカラーマップのインデックスとして解釈します。たとえば、右下のピクセルは C の最後の要素 22 に対応し、カラーマップの 22 番目の色を使用します。

イメージの作成時に CDataMapping プロパティを 'scaled' に設定して、現在のカラーマップの全範囲に値をスケーリングします。

image(C,'CDataMapping','scaled')
colorbar

または、image(C,'CDataMapping','scaled') の代わりに関数 imagesc を使用して値をスケーリングすることもできます。たとえば、imagesc(C) を使用します。

x 軸の 5 ~ 8、y 軸の 3 ~ 6 の範囲を占めるようにイメージを配置します。

x = [5 8];
y = [3 6];
C = [0 2 4 6; 8 10 12 14; 16 18 20 22];
image(x,y,C)

C(1,1) に対応するピクセルの中心は点 (5,3) になります。C(3,4) に対応するピクセルの中心は点 (8,6) になります。image は、この 2 点間の残りのイメージを配置し、方向を設定します。

C をトゥルーカラーの 3 次元配列として作成します。配列の最後の 2 ページをゼロに設定して、赤の色のみを使用します。

C = zeros(3,3,3);
C(:,:,1) = [.1 .2 .3; .4 .5 .6; .7 .8 .9]
C(:,:,1) =

    0.1000    0.2000    0.3000
    0.4000    0.5000    0.6000
    0.7000    0.8000    0.9000


C(:,:,2) =

     0     0     0
     0     0     0
     0     0     0


C(:,:,3) =

     0     0     0
     0     0     0
     0     0     0

C 内のデータのイメージを表示します。

image(C)

ラインをプロットし、そのラインの上にイメージを作成します。image オブジェクトを返します。

plot(1:3)
hold on
C = [1 2 3; 4 5 6; 7 8 9];
im = image(C);

イメージの奥にあるラインが見えるよう、イメージを半透明にします。

im.AlphaData = 0.5;

JPEG イメージ ファイルを読み取ります。

C = imread('ngc6543a.jpg');

imread は、650 x 600 x 3 の配列 C を返します。

イメージを表示します。

image(C)

表面プロットを作成します。次に、表面の下方にイメージを追加します。image はイメージを xy 平面に表示します。

Z = 10 + peaks;
surf(Z)
hold on
image(Z,'CDataMapping','scaled')

入力引数

すべて折りたたむ

イメージのカラー データ。次のいずれかの形式で指定します。

  • ベクトルまたは行列 — この形式はインデックス付きイメージ データを定義します。C の各要素がイメージの 1 ピクセルの色を定義します。たとえば、C = [1 2 3; 4 5 6; 7 8 9]; のようになります。C の要素は、関連付けられている座標軸のカラーマップの色にマッピングされます。CDataMapping プロパティはマッピング方法を制御します。

  • RGB 3 成分の 3 次元配列 — この形式は、RGB 3 成分の値を使用してトゥルーカラー イメージ データを定義します。各RGB 3 成分が、イメージの 1 ピクセルの色を定義します。RGB 3 成分は、色の赤、緑、青成分の強度を指定する 3 要素のベクトルです。3 次元配列の最初のページは赤成分を、2 番目のページは緑成分を、3 番目のページは青成分を含みます。このイメージはカラーマップの色ではなくトゥルーカラーを使用するため、CDataMapping プロパティは効果がありません。

    • Cdouble 型の場合、RGB 3 成分の値 [0 0 0] は黒に対応し、[1 1 1] は白に対応します。

    • C が整数型の場合、イメージはデータのすべての範囲を使用して色を決定します。たとえば Cuint8 型の場合、[0 0 0] は黒に対応し、[255 255 255] は白に対応します。CDataint8 型の場合、[-128 -128 -128] は黒に対応し、[127 127 127] は白に対応します。

    • Clogical 型の場合、[0 0 0] は黒に対応し、[1 1 1] は白に対応します。

次の図に、2 つのカラー モデルについて C の関連する次元を示します。

NaN 要素の動作は定義されていません。

代わりに関数 image の低水準版を使用するには、CData プロパティを名前と値のペアとして設定します。たとえば、image('CData',C) のようになります。

データ型間の変換

インデックス付きイメージ データを整数型から double 型に変換するには、1 を加算します。たとえば、X8uint8 型のインデックス付きイメージ データである場合、double 型に変換するには次のようにします。

X64 = double(X8) + 1;

インデックス付きイメージ データを double 型から整数型に変換するには、1 を減算して round を使用し、すべての値が整数になるようにします。たとえば、X64double 型のインデックス付きイメージ データである場合、uint8 型に変換するには次のようにします。

X8 = uint8(round(X64 - 1));

トゥルーカラー イメージ データを整数型から double 型に変換するには、データを再スケーリングします。たとえば、RGB8uint8 型のトゥルーカラー イメージ データである場合、double 型に変換するには次のようにします。

RGB64 = double(RGB8)/255;

トゥルーカラー イメージ データを double 型から整数型に変換するには、データを再スケーリングして round を使用し、すべての値が整数になるようにします。たとえば、RGB64double 型のイメージ データである場合、uint8 型に変換するには次のようにします。

RGB8 = uint8(round(RGB64*255));

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

x 軸に沿った配置。次のいずれかの形式で指定します。

  • 2 要素ベクトル — 最初の要素を C(1,1) の中心の位置として使用し、2 番目の要素を C(m,n) の中心の位置として使用します。ここで、[m,n] = size(C) です。C が 3 次元配列である場合、mn は最初の 2 つの次元です。C の残りの要素の中心は、これら 2 点間に等間隔に分布されます。

    各ピクセルの幅は次の式で決定されます。

    (x(2)-x(1))/(size(C,2)-1)

    x(1) > x(2) の場合、イメージが左右反転されます。

  • スカラー — この位置に C(1,1) の中心を配置し、それに続く要素はそれぞれ 1 単位ずつ離します。

代わりに関数 image の低水準版を使用するには、XData プロパティを名前と値のペアとして設定します。たとえば、image('XData',x,'YData',y,'CData',C) のようになります。

範囲がもともとイメージ境界の外側に設定されていない限り、x 軸や y 軸の範囲外へのイメージの移動やズームを対話的に実行することはできません。範囲がもともと境界の外側にある場合、そのような制限はありません。他のオブジェクト (ラインなど) が座標軸を占有し、イメージの境界を越えている場合、他のオブジェクトの境界まで移動またはズームを実行できます。ただし、そのオブジェクトの境界を越えることはできません。

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

y 軸に沿った配置。次のいずれかの形式で指定します。

  • 2 要素ベクトル — 最初の要素を C(1,1) の中心の位置として使用し、2 番目の要素を C(m,n) の中心の位置として使用します。ここで、[m,n] = size(C) です。C が 3 次元配列である場合、mn は最初の 2 つの次元です。C の残りの要素の中心は、これら 2 点間に等間隔に分布されます。

    各ピクセルの高さは次の式で決定されます。

    (y(2)-y(1))/(size(C,1)-1)

    y(1) > y(2) の場合、イメージが上下反転されます。

  • スカラー — この位置に C(1,1) の中心を配置し、それに続く要素はそれぞれ 1 単位ずつ離します。

代わりに関数 image の低水準版を使用するには、YData プロパティを名前と値のペアとして設定します。たとえば、image('XData',x,'YData',y,'CData',C) のようになります。

範囲がもともとイメージ境界の外側に設定されていない限り、x 軸や y 軸の範囲外へのイメージの移動やズームを対話的に実行することはできません。範囲がもともと境界の外側にある場合、そのような制限はありません。他のオブジェクト (ラインなど) が座標軸を占有し、イメージの境界を越えている場合、他のオブジェクトの境界まで移動またはズームを実行できます。ただし、そのオブジェクトの境界を越えることはできません。

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

axes オブジェクト。axes オブジェクトを指定しない場合、image は現在の座標軸を使用します。

名前/値のペアの引数

オプションの Name,Value の引数ペアをコンマ区切りで指定します。Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順序で指定できます。

例: image([1 2 3],'AlphaData',0.5) は、半透明のイメージを表示します。

以下にリストするプロパティは、イメージ プロパティの一部です。詳細なリストは、Image のプロパティ を参照してください。

すべて折りたたむ

カラー データのマッピング方法。'direct' または 'scaled' で指定します。このプロパティを使用して CData 内のカラー データ値のカラーマップへのマッピングを制御します。CData はインデックス カラーを定義するベクトルまたは行列でなければなりません。CData がトゥルーカラーを定義する 3 次元配列の場合、このプロパティは効果がありません。

それぞれの方法には次の効果があります。

  • 'direct' — 現在のカラーマップのインデックスとして値を解釈します。小数部分の値は、最近傍値の小さい方の整数に丸められます。

    • 値が double 型または single 型の場合、1 以下の値はカラーマップの最初の色にマッピングされます。カラーマップの長さ以上の値は、カラーマップの最後の色にマッピングされます。

    • 値が uint8uint16uint32uint64int8int16int32 または int64 型の場合、0 以下の値はカラーマップの最初の色にマッピングされます。カラーマップの長さ以上の値は、カラーマップの最後の色にマッピングされます (またはその型の範囲の上限値)。

    • 値が logical 型の場合、0 の値はカラーマップの最初の色にマッピングされ、1 の値はカラーマップの 2 番目の色にマッピングされます。

  • 'scaled' — 色の最小値と最大値の間の範囲に値がスケーリングされます。座標軸の CLim プロパティには色の範囲が含まれています。

透明度のデータ。次のいずれかの形式で指定します。

  • スカラー — イメージ全体で同じ透明度を使用します。

  • CData と同じサイズの配列 — イメージの要素ごとに異なる透明度の値を使用します。

AlphaDataMapping プロパティは、アルファ データの透明度値を MATLAB® が解釈する方法を制御します。

例: 0.5

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

AlphaData の値の解釈。次の値のいずれかとして指定します。

  • 'none' — 値を透明度値として解釈します。1 以上の値は完全に不透明に、0 以下の値は完全に透明に、0 と 1 の間の値は半透明になります。

  • 'scaled' — 値を Figure の alphamap にマッピングします。座標軸のアルファ値の範囲の最小値と最大値によって、alphamap の最初と最後の要素にマッピングされるアルファ データ値が決まります。たとえば、アルファ値の範囲が [3 5] の場合、3 以下のアルファ データ値は alphamap の最初の要素にマッピングされます。また、5 以上のアルファ データ値は、alphamap の最後の要素にマッピングされます。座標軸の ALim プロパティにはアルファ値の範囲が含まれています。Figure の Alphamap プロパティには alphamap が含まれています。

  • 'direct' — Figure の alphamap のインデックスとして値を解釈します。小数部のある値は最も近い小さい方の整数に固定されます。

    • 値が double 型または single 型の場合、1 以下の値は alphamap の最初の要素にマッピングされます。alphamap の長さ以上の値は、alphamap の最後の要素にマッピングされます。

    • 値が整数型の場合、0 以下の値は alphamap の最初の要素にマッピングされます。alphamap の長さ以上の値は、alphamap の最後の要素 (またはその型の範囲の上限) にマッピングされます。整数型は uint8uint16uint32uint64int8int16int32int64 です。

    • 値が logical 型の場合、0 の値は alphamap の最初の要素に、1 の値は alphamap の 2 番目の要素にマッピングされます。

出力引数

すべて折りたたむ

image オブジェクト。スカラーとして返されます。イメージの作成後にプロパティを設定するには、im を使用します。一覧は、Image のプロパティ を参照してください。

詳細

すべて折りたたむ

イメージの高水準版と低水準版の違い

関数 image には、高水準版と低水準版の 2 つがあります。image の入力引数として 'CData' を使用した場合、低水準版が使用されます。それ以外の場合、高水準版が使用されます。

高水準版の image は、プロットの前に newplot を呼び出し、この座標軸のプロパティを次のように設定します。

  • Layer'top' に。イメージは、目盛りやグリッド ラインの手前に表示されます。

  • YDir'reverse' に。y 軸の値は、上から下に増加します。上から下に値を減少するには、YDir'normal' に設定します。この設定は、y 軸とイメージの両方を反転します。

  • View[0 90] に。

低水準版の関数 imagenewplot を呼び出さず、座標軸のプロパティを設定しません。

ヒント

  • TIFF などのさまざまな標準形式のグラフィックス ファイルから、イメージ データを MATLAB に読み込むには、imread を使用します。MATLAB のイメージ データをグラフィックス ファイルに書き込むには、imwrite を使用します。関数 imread および imwrite は、さまざまなグラフィックス ファイル形式と圧縮方式をサポートしています。

参考

関数

プロパティ

R2006a より前に導入

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