MATLAB Function Reference | ![]() ![]() |
imread
表示
A = imread(filename,fmt
) [X,map] = imread(filename,fmt
) [...] = imread(filename) [...] = imread(...,idx) (CUR, ICO, and TIFF only) [...] = imread(...,ref) (HDF only) [...] = imread(...,'BackgroundColor',BG) (PNG only) [A,map,alpha] = imread(...) (PNG only)
詳細
A = imread(filename,fmt)
は、名前 filename
のグレースケール、または、トゥルーカラーイメージを A
に読み込みます。ファイルは、グレースケール強度イメージを含む場合、A
は、2次元配列になります。ファイルがトゥルーカラー(RGB)イメージを含む場合、A
は、3次元(m
* n
* 3) 配列になります。
[X,map] = imread(filename,fmt)
は、filename
の中のインデックス付きイメージを X
に、関連したカラーマップを map
に読み込みます。カラーマップ値は、[0,1]
の範囲に再スケーリングされます。A
と map
は、2次元配列です。
[...] = imread(filename)
は、その内容からファイルのフォーマットを参照します。
filename
は、グラフィックファイル名を指定する文字列です。fmt
は、ファイルのフォーマットを指定する文字列です。ファイルが、カレントディレクトリに存在しない、または、MATLAB
パスの中のディレクトリの中に存在しない場合、ユーザのシステム上の配置に関する絶対パス名を指定してください。imread
が、ファイル名 filename
を検出できない場合、filename.fmt
と名付けたファイルを検索します。fmt
に対して、文字列を指定できない場合、ツールボックスは、ファイルヘッダをチェックすることにより、ファイルのフォーマットを識別します。
TIFF-仕様のシンタックス
[...] = imread(...,idx)
は、マルチイメージの TIFF
ファイルから一つのイメージを読みます。idx
は、ファイル内に表れるイメージの順番を指定する整数です。たとえば、idx
が3の場合、imread
は、ファイルの中の3番目のイメージを読みます。この引数を省略すると、imread
は、ファイルの中の最小のイメージを読みます。
PNG-仕様のシンタックス
この節の中の議論は、透明度ピクセルを含む PNG ファイルを参照することのみです。PNG ファイルは、必ずしも、透明度データを含んでいません。透明度ピクセルは、存在する場合、2つの成分、transparency chunk とalpha channel の内のいずれかで識別できます(PNG ファイルは、これらのどちらか一つをもつのみで、両方をもっていることはありません)。
Transparency chunk は、どのピクセル値を透明度として取り扱うかを識別するものです。たとえば、8ビットイメージのTransparency chunk の中の値は、0.5020 で、カラー 0.5020 をもつイメージの中のすべてのピクセルが、透明度として表示されます。Alpha channel は、イメージ内に存在するものと同じ個数のピクセルをもっています。これは、イメージ内の各対応するピクセルの透明度に関するステータス(透明、または、不透明)を示すものです。
透明度に関連した他のポテンシャルPNG 成分は、background color chunk です。これは、存在する場合、すべての透明度ピクセルの後ろに使われるカラー値を定義します。この節は、transparency chunk 、または、alpha channel のいずれかを含むPNG イメージ用のツールボックスのデフォルト挙動を識別します。そして、それの書き換え方を示します。
ケース 1。alpha channelを出力しないで、使用するバックグランドカラーを指定しません。たとえば、
[A,map] = imread(filename); A = imread(filename);
PNG ファイルが、バッググランド color chunkを含んでいる場合、透明度ピクセルは、指定したバックグランドカラーに対して構成されます。
PNG ファイルが、background color chunk
を含んでいない場合、透明度ピクセルは、グレースケール(黒)に対して
0
、インデックス付きイメージに対して 1
、RGB(黒)に対して
[0 0 0]
から構成されます。
ケース 2。alpha channelを出力せず、セル内のバックグランドカラーパラメータを指定します。たとえば、つぎのようにします。
[...] = imread(...,'BackgroundColor',bg);
透明度ピクセルは、指定したカラーに対して構成されます。bg
の型は、ファイルがインデックス付き、強度イメージ(グレースケール)、RGB
イメージのいずれであるかに依存します。入力イメージがインデックス付きの場合、bg
は、レンジ [1,P]
の中の整数である必要があります。ここで、P
は、カラーマップの長さです。入力イメージが強度イメージの場合、bg
は、レンジ [0,1] の整数になります。入力イメージが RGB の場合、 bg
は、レンジ [0,1] の中の値からなる3要素ベクトルです。
ユーザのバックグランドカラーを使用する場合に、ツールボックスの挙動で1つの例外があります。バックグラウンドを
'none'
に設定する場合、作成されるものはありません。たとえば、
[...] = imread(...,'Back','none');
ケース 3。Alpha チャンネルを出力変数として取得することを考えます。たとえば、
[A,map,alpha] = imread(filename); [A,map,alpha] = imread(filename,fmt);
作成はされません。Alpha
チャンネルは、イメージとは別々にストアされます(ケース1と2と同じくイメージの中にマージされません)。imread
のこの型は、それが存在する場合、alpha
チャンネルを出力し、イメージとそれに関連したカラーマップも出力します。alpha
チャンネルが存在しない場合、alpha
は、[]
を出力します。カラーマップが存在しない、または、イメージがグレースケール、または、トゥルーカラーの場合、空になります。
HDF-仕様のシンタックス
[...] = imread(...,ref)
は、マルチイメージ
HDF ファイルから一つのイメージを読み込ませます。ref
は、イメージを識別するために使用する参照番号を指定する整数値です。たとえば、ref
が12の場合、imread
は、参照番号が12のイメージを読み取ります(HDF
ファイルの中で、参照番号は、必ずしもファイルの中のイメージの順番には対応していません。imfinfo
を使って、参照番号順にイメージを並べることもできます)。この引数を省略すると、imread
は、ファイルの中の最初のイメージを読みます。
CUR- と ICO-仕様のシンタックス
[...] = imread(...,idx)
は、マルチイメージアイコン、または、カーソルファイルから一つのイメージを読み込みます。idx
は、ファイルの中に表れるイメージの順番を指定する整数値です。たとえば、idx
が 3 の場合、imread
は、ファイルの中の3番目のイメージを読みます。この引数を省略すると、imread
は、ファイルの中の最初のイメージを読みます。
[A,map,alpha] = imread(...)
は、リソースに対して、AND
マスクを出力し、透明度情報を決定する場合に使用できます。カーソルファイルに対して、このマスクは、有益なデータだけを含んでいます。
注意: デフォルトにより、Microsoft
Windows カーソルは、32行32列のピクセルです。MATLAB ポインタは、16行16列です。そのために、多分、ユーザのイメージをスケーリングする必要があります。Image
Processing Toolbox をもっている場合、関数 imresize
を使用することができます。 |
フォーマットサポート
このテーブルは、imread
を使って、読むことができるイメージタイプをまとめています。
クラスサポート
imread
でサポートしているイメージファイルフォーマットの多くのものの中で、ピクセルは、カラーパネルに対して8ビット、またはそれ以下で保存されます。このようなファイルを読む場合、出力(A
、または、X
)のクラスは、uint8
になります。imread
は、TIFF と PNG ファイルからの読み込む16-ビット/ピクセル
データもサポートしています。このようなファイルを読む場合、出力(A
、または、X
)のクラスは、uint16
になります。インデックス付きイメージの場合、imread
は、常に、イメージ配列自身が、クラス uint8
、または、uint16
の場合でも、カラーマップをクラス double
配列に読み込みます。
注意
例題
つぎの例題は、TIFF ファイルに6番目のイメージを読みます。
[X,map] = imread('flowers.tif',6);
つぎの例題は、4番目のイメージを HDF ファイルに読み込みます。
info = imfinfo('skull.hdf'); [X,map] = imread('skull.hdf',info(4).Reference);
つぎの例題は、24ビットの PNG イメージをよみ、透明度(alpha チャンネル)ピクセルを赤に設定します。
bg = [255 0 0]; A = imread('image.png','BackgroundColor',bg);
つぎの例題は、PNG イメージの aplha チャンネルを出力します。
[A,map,alpha] = imread('image.png');
つぎの例題は、ICO イメージを読み、透明度マスクを適用し、イメージを表示します。
[a,b,c] = imread('myicon.ico'); % バックグランドカラー(白)用に、カラー、アップを拡張 b2 = [b; 1 1 1]; % 表示用に新しいイメージを作成 d = ones(size(a)) * (length(b2) - 1); % AND マスクを使って、新しいイメージ上で、バックグランド % データとフォアグランドデータをミックス d(c == 0) = a(c == 0); % 新しいイメージを表示 imshow(uint8(d), b2)
参考
double
, fread
, imfinfo
, imwrite
, uint8
, uint16
![]() |
import | imwrite | ![]() |