image
配列のイメージ表示
構文
説明
image( は、配列 C)C 内のデータをイメージとして表示します。C の各要素は、イメージの 1 ピクセルの色を指定します。結果のイメージは m 行 n 列のピクセルからなるグリッドです。ここで、m は C の行数、n は列数です。要素の行と列のインデックスにより、対応するピクセルの中心が決まります。
image('CData', は、既存のプロットを置き換えずに、現在の座標軸にイメージを追加します。この構文は、C)image(C) の低水準版です。詳細については、イメージの高水準版と低水準版の違いを参照してください。
image(___, は、名前と値のペアの引数を 1 つ以上使用して、イメージのプロパティを指定します。イメージのプロパティは、前述の構文に示した任意の入力引数の組み合わせを使用して指定できます。Name,Value)
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' に設定され、image は C 内の値をカラーマップのインデックスとして解釈します。たとえば、右下のピクセルは 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 =
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×600×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プロパティは効果がありません。Cがdouble型の場合、RGB 3 成分の値[0 0 0]は黒に対応し、[1 1 1]は白に対応します。Cが整数型の場合、イメージはデータのすべての範囲を使用して色を決定します。たとえばCがuint8型の場合、[0 0 0]は黒に対応し、[255 255 255]は白に対応します。CDataがint8型の場合、[-128 -128 -128]は黒に対応し、[127 127 127]は白に対応します。Cがlogical型の場合、[0 0 0]は黒に対応し、[1 1 1]は白に対応します。
次の図に、2 つのカラー モデルについて C の関連する次元を示します。

NaN 要素の動作は定義されていません。
代わりに関数 image の低水準版を使用するには、CData プロパティを名前と値のペアとして設定します。たとえば、image('CData',C) のようになります。
double データ型と整数データ型の変換
ベクトルまたは 2 次元行列を指定して関数 image を呼び出し、既定の CDataMapping 値を使用する場合、double 値と整数型の間で変換するときに、データ値を 1 ずつオフセットしなければなりません。CDataMapping が 'scaled' に設定されている場合、このオフセットは必要ありません。
たとえば、U8 に uint8 型のインデックス付きイメージ データが含まれている場合、次を使用して double 型に変換できます。
D = double(U8) + 1;
インデックス付きイメージ データを double 型から整数型に変換するには、1 を減算して round を使用し、すべての値が整数になるようにします。たとえば、D に double 型のインデックス付きイメージ データが含まれている場合、uint8 型に変換するには次のようにします。
U8 = uint8(round(D - 1));
正規化された double とトゥルーカラー値の変換
トゥルーカラー イメージ データを整数型から double 型に変換するには、データを再スケーリングします。たとえば、RGB8 が uint8 型のトゥルーカラー イメージ データである場合、double 型に変換するには次のようにします。
RGB = double(RGB8)/255;
トゥルーカラー イメージ データを double 型から整数型に変換するには、データを再スケーリングして round を使用し、すべての値が整数になるようにします。たとえば、RGB が double 型のイメージ データである場合、uint8 型に変換するには次のようにします。
RGB8 = uint8(round(RGB*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 次元配列である場合、mとnは最初の 2 つの次元です。Cの残りの要素の中心は、これら 2 点間に等間隔に分布されます。各ピクセルの幅は次の式で決定されます。
(x(2)-x(1))/(size(C,2)-1)
x(1)>x(2)の場合、イメージが左右反転されます。スカラー — この位置に
C(1,1)の中心を配置し、それに続く要素はそれぞれ 1 単位ずつ離します。
メモ
xに 2 つを超える要素がある場合、imageは最初と最後の要素を使用し、他の要素は無視します。代わりに関数
imageの低水準版を使用するには、名前と値の引数を使用してXDataプロパティを設定します。たとえば、image('XData',x,'YData',y,'CData',C)のようになります。範囲がもともとイメージ境界の外側に設定されていない限り、x 軸や y 軸の範囲外へのイメージの移動やズームを対話的に実行することはできません。範囲がもともと境界の外側にある場合、そのような制限はありません。他のオブジェクト (ラインなど) が座標軸を占有し、イメージの境界を越えている場合、他のオブジェクトの境界まで移動またはズームを実行できます。ただし、そのオブジェクトの境界を越えることはできません。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | datetime (R2023b 以降) | duration (R2023b 以降) | categorical (R2023b 以降)
y 軸に沿った配置。次のいずれかの形式で指定します。
2 要素ベクトル — 最初の要素を
C(1,1)の中心の位置として使用し、2 番目の要素をC(m,n)の中心の位置として使用します。ここで、[m,n] = size(C)です。Cが 3 次元配列である場合、mとnは最初の 2 つの次元です。Cの残りの要素の中心は、これら 2 点間に等間隔に分布されます。各ピクセルの高さは次の式で決定されます。
(y(2)-y(1))/(size(C,1)-1)
y(1)>y(2)の場合、イメージが上下反転されます。スカラー — この位置に
C(1,1)の中心を配置し、それに続く要素はそれぞれ 1 単位ずつ離します。
メモ
yに 2 つを超える要素がある場合、imageは最初と最後の要素を使用し、他の要素は無視します。代わりに関数
imageの低水準版を使用するには、名前と値の引数を使用してYDataプロパティを設定します。たとえば、image('XData',x,'YData',y,'CData',C)のようになります。範囲がもともとイメージ境界の外側に設定されていない限り、x 軸や y 軸の範囲外へのイメージの移動やズームを対話的に実行することはできません。範囲がもともと境界の外側にある場合、そのような制限はありません。他のオブジェクト (ラインなど) が座標軸を占有し、イメージの境界を越えている場合、他のオブジェクトの境界まで移動またはズームを実行できます。ただし、そのオブジェクトの境界を越えることはできません。
データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | datetime (R2023b 以降) | duration (R2023b 以降) | categorical (R2023b 以降)
Axes オブジェクト。Axes オブジェクトを指定しない場合、image は現在の座標軸を使用します。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。
R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。
例: image([1 2 3],'AlphaData',0.5) は、半透明のイメージを表示します。
以下にリストするプロパティは、イメージ プロパティの一部です。完全な一覧については、Image のプロパティ を参照してください。
カラー データのマッピング方法。'direct' または 'scaled' で指定します。このプロパティを使用して CData 内のカラー データ値のカラーマップへのマッピングを制御します。CData はインデックス カラーを定義するベクトルまたは行列でなければなりません。CData がトゥルーカラーを定義する 3 次元配列の場合、このプロパティは効果がありません。
それぞれの方法には次の効果があります。
'direct'— 現在のカラーマップのインデックスとして値を解釈します。小数部分の値は、最近傍値の小さい方の整数に丸められます。値が
double型またはsingle型の場合、1以下の値はカラーマップの最初の色にマッピングされます。カラーマップの長さ以上の値は、カラーマップの最後の色にマッピングされます。値が
uint8、uint16、uint32、uint64、int8、int16、int32または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 の最後の要素 (またはその型の範囲の上限) にマッピングされます。整数型は
uint8、uint16、uint32、uint64、int8、int16、int32、int64です。値が
logical型の場合、0 の値は alphamap の最初の要素に、1 の値は alphamap の 2 番目の要素にマッピングされます。
出力引数
Image オブジェクト。スカラーとして返されます。イメージの作成後にプロパティを設定するには、im を使用します。一覧については、Image のプロパティ を参照してください。
詳細
関数 image には、高水準版と低水準版の 2 つがあります。image の入力引数として 'CData' を使用した場合、低水準版が使用されます。それ以外の場合、高水準版が使用されます。
高水準版の image は、プロットの前に newplot を呼び出し、この座標軸のプロパティを次のように設定します。
低水準版の関数 image は newplot を呼び出さず、座標軸のプロパティを設定しません。
ヒント
拡張機能
image 関数は GPU 配列入力をサポートしますが、次の使用上の注意および制限があります。
この関数は GPU 配列を受け入れますが、GPU 上では実行されません。
詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
使用上の注意および制限:
この関数は分散配列に対して演算を行いますが、クライアントの MATLAB で実行されます。
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
バージョン履歴
R2006a より前に導入x および y 引数を datetime、duration、または categorical 座標値として指定できるようになりました。以前は、数値と logical 座標値のみがサポートされていました。
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)