MATLAB Function Reference    

imread

グラフィックファイルからイメージを読む

表示

詳細

A = imread(filename,fmt) は、名前 filename のグレースケール、または、トゥルーカラーイメージを A に読み込みます。ファイルは、グレースケール強度イメージを含む場合、A は、2次元配列になります。ファイルがトゥルーカラー(RGB)イメージを含む場合、A は、3次元(m * n * 3) 配列になります。

[X,map] = imread(filename,fmt) は、filename の中のインデックス付きイメージを X に、関連したカラーマップを map に読み込みます。カラーマップ値は、[0,1] の範囲に再スケーリングされます。Amap は、2次元配列です。

[...] = imread(filename) は、その内容からファイルのフォーマットを参照します。

filename は、グラフィックファイル名を指定する文字列です。fmt は、ファイルのフォーマットを指定する文字列です。ファイルが、カレントディレクトリに存在しない、または、MATLAB パスの中のディレクトリの中に存在しない場合、ユーザのシステム上の配置に関する絶対パス名を指定してください。imread が、ファイル名 filename を検出できない場合、filename.fmt と名付けたファイルを検索します。fmt に対して、文字列を指定できない場合、ツールボックスは、ファイルヘッダをチェックすることにより、ファイルのフォーマットを識別します。

つぎのテーブルは、fmt に対する可能な値を示しています。

フォーマット
ファイルタイプ
'bmp'
Windows Bitmap (BMP)
'cur'
Windows Cursor resources (CUR)
'hdf'
Hierarchical Data Format (HDF)
'ico'
Windows Icon resources (ICO)
'jpg' or 'jpeg'
Joint Photographic Experts Group (JPEG)
'pcx'
Windows Paintbrush (PCX)
`png'
Portable Network Graphics (PNG)
'tif' or 'tiff'
Tagged Image File Format (TIFF)
'xwd'
X Windows Dump (XWD)

特殊ケースのシンタックス

TIFF-仕様のシンタックス

[...] = imread(...,idx) は、マルチイメージの TIFF ファイルから一つのイメージを読みます。idx は、ファイル内に表れるイメージの順番を指定する整数です。たとえば、idx が3の場合、imread は、ファイルの中の3番目のイメージを読みます。この引数を省略すると、imread は、ファイルの中の最小のイメージを読みます。

PNG-仕様のシンタックス

この節の中の議論は、透明度ピクセルを含む PNG ファイルを参照することのみです。PNG ファイルは、必ずしも、透明度データを含んでいません。透明度ピクセルは、存在する場合、2つの成分、transparency chunkalpha 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を出力しないで、使用するバックグランドカラーを指定しません。たとえば、

PNG ファイルが、バッググランド color chunkを含んでいる場合、透明度ピクセルは、指定したバックグランドカラーに対して構成されます。

PNG ファイルが、background color chunk を含んでいない場合、透明度ピクセルは、グレースケール(黒)に対して 0、インデックス付きイメージに対して 1、RGB(黒)に対して [0 0 0] から構成されます。

ケース 2。alpha channelを出力せず、セル内のバックグランドカラーパラメータを指定します。たとえば、つぎのようにします。

透明度ピクセルは、指定したカラーに対して構成されます。bg の型は、ファイルがインデックス付き、強度イメージ(グレースケール)、RGB イメージのいずれであるかに依存します。入力イメージがインデックス付きの場合、bg は、レンジ [1,P] の中の整数である必要があります。ここで、P は、カラーマップの長さです。入力イメージが強度イメージの場合、bg は、レンジ [0,1] の整数になります。入力イメージが RGB の場合、 bg は、レンジ [0,1] の中の値からなる3要素ベクトルです。

ユーザのバックグランドカラーを使用する場合に、ツールボックスの挙動で1つの例外があります。バックグラウンドを 'none' に設定する場合、作成されるものはありません。たとえば、

ケース 3。Alpha チャンネルを出力変数として取得することを考えます。たとえば、

作成はされません。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 マスクを出力し、透明度情報を決定する場合に使用できます。カーソルファイルに対して、このマスクは、有益なデータだけを含んでいます。

フォーマットサポート

このテーブルは、imread を使って、読むことができるイメージタイプをまとめています。

フォーマット
相違点
BMP
1-ビット, 4-ビット, 8-ビット, 24-ビット 非圧縮イメージ; 4-ビット と 8-ビット 実行長符号化 (RLE) イメージ
CUR
1-ビット, 4-ビット, 8-ビット 非圧縮イメージ
HDF
8-ビット ラスタイメージデータセット;関連したカラーマップ付き、なし; 24-ビット ラスタイメージデータセット
ICO
1-ビット, 4-ビット, 8-ビット 非圧縮イメージ
JPEG
任意のベースライン JPEG イメージ(8、または、24-ビット); いくつかの共通で使用される拡張子をもつ JPEG イメージ
PCX
1-ビット, 8-ビット, 24-ビット イメージ
PNG
PNG イメージ、1-ビット, 2-ビット, 4-ビット, 8-ビット, 16-ビットを含む。 グレースケールイメージ; 8-ビット と 16-ビットインデックス付きイメージ; 24-ビット と 48-ビット RGB イメージ
TIFF
ベースライン TIFF イメージ、1-ビット, 8-ビット, 24-ビット 非圧縮イメージを含む; パックビット圧縮付き 1-ビット, 8-ビット, 16-ビット, 24-ビット イメージ; CCITT 圧縮を使った 1-ビット イメージ; 16-ビット グレースケール, 16-ビット インデックス付きイメージと48-ビット RGB イメージ。
XWD
1-ビット と 8-ビット ZPixmaps; XYBitmaps; 1-ビット XYPixmaps

クラスサポート

imread でサポートしているイメージファイルフォーマットの多くのものの中で、ピクセルは、カラーパネルに対して8ビット、またはそれ以下で保存されます。このようなファイルを読む場合、出力(A 、または、X)のクラスは、uint8になります。imread は、TIFF と PNG ファイルからの読み込む16-ビット/ピクセル データもサポートしています。このようなファイルを読む場合、出力(A 、または、X)のクラスは、uint16になります。インデックス付きイメージの場合、imread は、常に、イメージ配列自身が、クラス uint8、または、uint16 の場合でも、カラーマップをクラス double 配列に読み込みます。

注意

imread は、MATLAB の関数です。

例題

つぎの例題は、TIFF ファイルに6番目のイメージを読みます。

つぎの例題は、4番目のイメージを HDF ファイルに読み込みます。

つぎの例題は、24ビットの PNG イメージをよみ、透明度(alpha チャンネル)ピクセルを赤に設定します。

つぎの例題は、PNG イメージの aplha チャンネルを出力します。

つぎの例題は、ICO イメージを読み、透明度マスクを適用し、イメージを表示します。

参考

double, fread, imfinfo, imwrite, uint8, uint16


  import imwrite