ドキュメンテーション

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

imread

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

構文

A = imread(filename, fmt)
[X, map] = imread(...)
[...] = imread(filename)
[...] = imread(URL,...)
[...] = imread(...,Param1,Val1,Param2,Val2...)

説明

A = imread(filename, fmt) は文字列 filename で指定されたファイルからグレースケールまたはカラー イメージを読み取ります。ファイルが現在のフォルダーまたは MATLAB® パス上のフォルダーにない場合は、絶対パス名を指定します。

テキスト文字列 fmt は、その標準ファイル拡張子により、ファイルの形式を指定します。たとえば、Graphics Interchange Format ファイルは 'gif' です。サポートされている形式、およびそれらのファイル拡張子のリストを参照するには、関数 imformats を使用します。関数 imread は、filename という名前のファイルを検出できない場合、filename.fmt という名前のファイルを検索します。

戻り値 A は、イメージ データを含む配列です。ファイルにグレースケール イメージが含まれる場合、A は M 行 N 列の配列になります。ファイルにトゥルーカラー イメージが含まれる場合、A は M x N x3 の配列になります。CMYK 色空間を使用するカラー イメージを含む TIFF ファイルの場合、A は M x N x 4 配列になります。詳細は、「形式固有の情報」の節の「TIFF」を参照してください。

A のクラスは、イメージ データのサンプルあたりのビット数により、次のバイト境界に丸められます。たとえば、関数 imread は、24 ビット カラー データを uint8 データの配列として返します。これは、各色要素のサンプル サイズが 8 ビットのためです。ビット深度については、「ヒント」を参照してください。また、特定の形式でサポートされているビット深度およびサンプル サイズの詳細は、「形式固有の情報」を参照してください。

[X, map] = imread(...)filename のインデックス付きイメージを X、その関連カラーマップを map に読み取ります。イメージ ファイルのカラーマップ値は、自動的に、範囲 [0,1] に再スケーリングされます。

[...] = imread(filename) はその内容からファイルの形式を推定しようとします。

[...] = imread(URL,...) はインターネット URL からイメージを読み取ります。URL は、プロトコル タイプ (たとえば、http://) を含めなければなりません。

[...] = imread(...,Param1,Val1,Param2,Val2...) は特定形式のオペレーションのさまざまな特性を制御するパラメーターを指定します。詳細は、「形式固有の情報」を参照してください。

形式固有の情報

以下の節では、形式名のアルファベット順に示した、特定の形式のサポートに関する情報を提供します。これらの節では、存在する場合、形式固有の構文についても説明します。

BMP — Windows ビットマップJPEG — Joint Photographic Experts GroupPNG — ポータブル ネットワーク グラフ
CUR — Cursor ファイルJPEG 2000 — Joint Photographic Experts Group 2000PPM — Portable Pixmap
GIF — Graphics Interchange FormatPBM — Portable BitmapRAS — Sun ラスター
HDF4 — Hierarchical Data FormatPCX — Windows PaintbrushTIFF — Tagged Image File Format
ICO — Icon ファイルPGM — Portable GraymapXWD — X Window Dump

BMP — Windows ビットマップ

サポートされているビット深度圧縮なしRLE 圧縮出力クラスメモ:
1 ビットylogical 
4 ビットyyuint8 
8 ビットyyuint8 
16 ビットyuint81 サンプル/ピクセル
24 ビットyuint83 サンプル/ピクセル
32 ビットyuint83 サンプル/ピクセル
(1 バイト付加)

CUR — Cursor ファイル

サポートされているビット深度圧縮なし圧縮出力クラス
1 ビットylogical
4 ビットyuint8
8 ビットyuint8

形式固有の構文

[...] = imread(..., idx) は、複数イメージのアイコンまたはカーソル ファイルから 1 つのイメージを読み込みます。idx は、イメージがファイルに表示される順序を指定する整数値です。たとえば、idx3 の場合、関数 imread は、ファイルの 3 番目のイメージを読み込みます。この引数を省略すると、関数 imread は、ファイルの最初のイメージを読み込みます。

[A, map, alpha] = imread(...) は、リソースに AND マスクを返します。これは透明度情報の決定に使用できます。カーソル ファイルでは、このマスクは使用可能なデータのみを含んでいます。

    メモ:   既定の設定では、Microsoft® Windows® のカーソルは 32 x 32 ピクセルです。MATLAB のポインターは通常、16 x 16 でなければならないので、イメージを拡大縮小する必要が生じる場合があります。Image Processing Toolbox™ がある場合は関数 imresize を使用できます。

GIF — Graphics Interchange Format

サポートされているビット深度出力クラス
1 ビットlogical
2 ビット~ 8 ビットuint8

形式固有の構文

[...] = imread(..., idx) は、マルチフレーム (たとえば、アニメーション化された) GIF ファイルから、1 つまたは複数のフレームを読み取ります。idx は、整数スカラーまたは整数値のベクトルでなければなりません。たとえば、idx3 の場合、関数 imread は、ファイルの 3 番目のイメージを読み込みます。idx1:5 の場合、関数 imread は、最初の 5 つのフレームのみを返します。

[...] = imread(..., 'frames', idx) は、idx'all' を使用できる点を除き、上記の構文と同じです。この場合、すべてのフレームは、ファイル上の順番で読み込まれ、返されます。

    メモ:   GIF ファイルの構造のために、特定のフレームがリクエストされたときには、すべてのフレームが読み込まれます。そのため、同じ GIF ファイルから複数のフレームを読み込むときに、ループ内で関数 imread を呼び出すよりも、idx にフレーム ベクトルまたは 'all' を設定する方が、処理が非常に高速になります。

HDF4 — Hierarchical Data Format

サポートされているビット深度カラーマップを含むラスター イメージカラーマップなしのラスター イメージ出力クラスメモ:
8 ビットyyuint8 
24 ビットyuint83 サンプル/ピクセル

形式固有の構文

[...] = imread(..., ref) は、マルチイメージ HDF4 ファイルから 1 つのイメージを読み込みます。ref は、イメージの識別に使用される参照番号を指定する整数値です。たとえば、ref12 の場合、関数 imread は、参照番号が 12 のイメージを読み取ります (HDF4 ファイルでは、参照番号が、ファイル上のイメージの順番と対応しないことがあるので注意してください。関数 imfinfo を使用して、参照番号順にイメージを並べることもできます)。この引数を省略すると、関数 imread は、ファイルの最初のイメージを読み込みます。

ICO — Icon ファイル

CUR — Cursor ファイル」を参照。

JPEG — Joint Photographic Experts Group

関数 imread は、任意のベースライン JPEG イメージ、およびいくつかの共通に使われる拡張子をもつ JPEG イメージを読み込みことができます。JPEG 2000 ファイルのサポートについては、「JPEG 2000」を参照してください。

サポートされているサンプルごとのビット数非可逆圧縮可逆圧縮出力クラスメモ:
8 ビットyyuint8グレースケールまたは RGB
12 ビットyyuint16グレースケールまたは RGB
16 ビットyuint16グレースケール

JPEG 2000 — Joint Photographic Experts Group 2000

JPEG ファイルのサポートについては、「JPEG」を参照してください。

    メモ:    インデックス付き JPEG 2000 イメージはサポートされません。JP2/JPX ファイルでは JP2 互換の色空間のみがサポートされます。既定では、すべてのイメージ チャンネルはファイル内で並べられている順序で返されます。

サポートされているサンプルごとのビット数

非可逆圧縮可逆圧縮出力クラスメモ:
1 ビットyylogicalグレースケールのみ
2 ~ 8 ビットyyuint8 または int8グレースケール
または RGB
9 ~ 16 ビットyyuint16 または int16グレースケール
または RGB

形式固有の構文

[...] = imread(..., 'Param1', value1, 'Param2', value2, ...) は、パラメーターと値のペアを使用して、次の表で説明する読み込み操作を制御します。

パラメーター
'ReductionLevel'イメージの解像度の低減を指定する非負の整数。低減レベル L の場合、イメージの解像度は 2^L の因数で低減されます。既定値は 0 で、低減しないことを示します。低減レベルは、関数 imfinfo から返された構造体の 'WaveletDecompositionLevels' フィールドで指定された分解レベルの総数によって制限されます。
'PixelRegion'{ROWS, COLS} — 関数 imreadROWSCOLS の境界で指定されたサブイメージを返します。ROWSCOLS はどちらも 1 ベースのインデックス [START STOP] を表す 2 要素ベクトルでなければなりません。'ReductionLevel' が 0 より大きい場合、ROWSCOLS は、低減したサイズのイメージの座標になります。
'V79Compatible'論理値。true の場合、返されるイメージは、以前のバージョンの imread (MATLAB 7.9 [R2009b] 以前) と一貫するように、グレースケールまたは RGB に変換されます。YCC イメージを RGB に変換するには、このオプションを使用します。既定の設定は false です。

PBM — Portable Bitmap

サポートされているビット深度raw バイナリASCII (プレーン) エンコード出力クラス
1 ビットyylogical

PCX — Windows Paintbrush

サポートされているビット深度出力クラスメモ:
1 ビットlogicalグレースケールのみ
8 ビットuint8グレースケールまたはインデックス付き
24 ビットuint8RGB
3 つの 8 ビット サンプル/ピクセル

PGM — Portable Graymap

サポートされているビット深度raw バイナリASCII (プレーン) エンコード出力クラスメモ:
8 ビットyuint8 
16 ビットyuint16 
任意y1 ビット~ 8 ビットuint8
9 ビット~ 16 ビット uint16
スケーリングされる値

PNG — ポータブル ネットワーク グラフ

サポートされているビット深度出力クラスメモ:
1 ビットlogicalグレースケール
2 ビットuint8グレースケール
4 ビットuint8グレースケール
8 ビットuint8グレースケールまたはインデックス付き
16 ビットuint16グレースケールまたはインデックス付き
24 ビットuint8RGB
3 つの 8 ビット サンプル/ピクセル
48 ビットuint16RGB
3 つの 16 ビット サンプル/ピクセル

形式固有の構文

[...] = imread(...,'BackgroundColor',BG) は、BG で指定した色を背景とする入力イメージの透明ピクセルを合成します。BG'none' の場合、合成は実行されません。入力イメージがインデックス付きの場合、BG は、範囲 [1,P] の整数でなければなりません。ここで、P は、カラーマップの長さです。入力イメージがグレースケールの場合、BG は、範囲 [0,1] の整数です。入力イメージが RGB の場合、BG は、範囲 [0,1] の値からなる 3 要素ベクトルです。文字列 'BackgroundColor' は省略形でもかまいません。

[A, map, alpha] = imread(...) はアルファ チャンネルが存在する場合は、それを返します。アルファ チャンネルが存在しない場合や 'BackgroundColor' を指定した場合、alpha[] になります。ファイルにグレースケールまたはトゥルーカラー イメージが含まれる場合、map 出力は空になることがあります。

alpha 出力引数を指定した場合、値を指定しないと、BG は既定で 'none' になります。指定される場合、PNG ファイルに背景色チャンクが含まれていると、その色が BG の既定値として使用されます。alpha が使用されず、ファイルに背景色チャンクが含まれない場合、BG は、インデックス付きイメージでは 1、グレースケール イメージでは 0、トゥルーカラー イメージでは [0 0 0] になります。

PPM — Portable Pixmap

サポートされているビット深度raw バイナリASCII (プレーン) エンコード出力クラス
最高 16 ビットyuint8
任意y 

RAS — Sun ラスター

次の表に、RAS ファイルでサポートされているビット深度、圧縮、および出力クラスを示します。

サポートされているビット深度出力クラスメモ:
1 ビットlogicalビットマップ
8 ビットuint8インデックス付き
24 ビットuint8RGB
3 つの 8 ビット サンプル/ピクセル
32 ビットuint8アルファを含む RGB
4 つの 8 ビット サンプル/ピクセル

TIFF — Tagged Image File Format

TIFF 仕様または LibTIFF によってサポートされるイメージのほとんどは、imread で読み取ることができます。

imread は以下の TIFF 機能をサポートしています。

  • ピクセルあたりの任意のサンプル数。

  • CCITT グループ 3 および 4 FAX、Packbits、JPEG, LZW、Deflate、ThunderScan 圧縮、および圧縮されていないイメージ

  • 論理、グレースケール、インデックス付きカラー、トゥルーカラー、およびハイパースペクトルのイメージ

  • RGB、CMYK、CIELAB、ICCLAB の色空間。カラー イメージが CMYK 色空間を使う場合、A は M x N x 4 配列です。使用される色空間を決定するには、imfinfo を使用してグラフィックス ファイルの情報を取得し、PhotometricInterpretation フィールドの値を参照してください。8 ビットまたは 16 ビットの TIFF CIELAB エンコード値は、1 つの MATLAB 配列として表現できない符号付きデータ型と符号なしデータ型を組み合わせて使用するため、ファイルに CIELAB カラー データが含まれている場合、関数 imread はそれを MATLAB のワークスペースに移動する前に ICCLAB に変換します。

  • タイルまたはスキャンラインに分類されたデータ

    メモ:   

    • YCbCr イメージは RGB 色空間に変換されます。

    • すべてのグレースケール イメージは、黒が 0、白を最大値として読み取られます。

    • 1 ビット イメージは logical クラスとして返されます。

    • CIELab イメージは ICCLab 色空間に変換されます。

TIFF ファイルの形式固有の構文を以下に示します。

A = imread(...) は、RGB、CIELAB、ICCLAB、または CMYK 色空間を使用するカラー データを返します。カラー イメージが CMYK 色空間を使う場合、A は M x N x 4 配列です。

[...] = imread(..., 'Param1', value1, 'Param2', value2, ...) は、パラメーターと値のペアを使用して読み取り操作を制御します。次の表は、使用できるパラメーターをまとめています。

パラメーター
'Index'読み取るイメージを指定する正の整数。たとえば、3 という値を指定した場合、imread は、ファイルの 3 番目のイメージを読み取ります。この引数を省略すると、関数 imread は、ファイルの最初のイメージを読み込みます。
'Info'

imfinfo によって返される構造体配列。

メモ: マルチイメージの TIFF ファイルからイメージを読み取るときは、imfinfo の出力を 'Info' 引数の値として渡すと、imread はファイル内のイメージをよりすばやく見つけることができます。

'PixelRegion'領域の境界を指定するセル配列 {Rows, Cols}RowsCols は 2 つまたは 3 つの要素からなるベクトルでなければなりません。2 つの要素を指定する場合、その値は 1 ベースのインデックス [start stop] を示します。3 つの要素を指定する場合、その値は 1 ベースのインデックス [start increment stop] を示し、イメージのダウンサンプリングが可能です。

著作権に関する情報は、libtiffcopyright.txt ファイルを参照してください。

XWD — X Window Dump

次の表に、XWD ファイルでサポートされているビット深度、圧縮、および出力クラスを示します。

サポートされているビット深度ZPixmapsXYBitmapsXYPixmaps出力クラス
1 ビットyylogical
8 ビットyuint8

クラス サポート

ほとんどのイメージ ファイル形式では、関数 imread は、色平面あたり 8 ビット以下を使用して、イメージ ピクセルを格納します。次の表に、ファイル形式で使用されるデータ型に返される配列のクラスを示します。

ファイルで使用されるデータ型

関数 imread で返される配列のクラス

1 ビット/ピクセル

logical

色平面あたり 2 ビット~ 8 ビット

uint8

ピクセルあたり 9 ビット~ 16 ビット

uint16 (BMPJPEGPNG、および TIFF)

16 ビット BMP パック形式 (5-6-5) の場合、MATLAB は uint8 を返します。

    メモ:   インデックス付きイメージの場合、関数 imread は、イメージ配列自身がクラス uint8 または uint16 の場合でも、カラーマップをクラス double の配列に読み込みます。

すべて展開する

イメージの読み取りと表示

サンプル イメージを読み取ります。

A = imread('ngc6543a.jpg');

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

イメージを表示します。

image(A)

インデックス付きイメージを RGB に変換

イメージを読み取って RGB イメージに変換します。

サンプルのインデックス付きイメージ ファイル corn.tif の最初のイメージを読み取ります。

[X,map] = imread('corn.tif');

X は、uint8 型の 415 行 312 列の配列です。

カラーマップ map が空でないことを確認し、X のデータを RGB に変換します。

if ~isempty(map)
	Im = ind2rgb(X,map);
end

X のサイズとクラスを表示します。

whos Im
  Name        Size                 Bytes  Class     Attributes

  Im        415x312x3            3107520  double         

現在の X は、double 型の 415 x 312 x 3 配列です。

マルチページ TIFF ファイルで特定のイメージを読み取る

サンプル ファイル corn.tif の 3 番目のイメージを読み取ります。

[X,map] = imread('corn.tif',3);

PNG イメージのアルファ チャンネルを返す

サンプル イメージ peppers.png のアルファ チャンネルを返します。

[X,map,alpha] = imread('peppers.png');
alpha
alpha =

     []

アルファ チャンネルが存在しないため、alpha は空です。

TIFF イメージの指定された領域を読み取る

サンプル イメージ corn.tif の特定のピクセル領域を読み取ります。

読み取る領域の境界を示すベクトルのセル配列で 'PixelRegion' パラメーターを指定します。最初のベクトルでは読み取る行の範囲を指定し、2 番目のベクトルでは読み取る列の範囲を指定します。

A = imread('corn.tif','PixelRegion',{[1,2],[2,5]});

imread は、corn.tif から行 1 ~ 2、列 2 ~ 5 のイメージ データを読み取り、2 行 4 列の配列 A を返します。

詳細

すべて展開する

ヒント

  • ビット深度は、各イメージのピクセルを表すために使われるビット数です。ビット深度は、サンプル単位のビットとピクセル単位のサンプルを乗算することで計算されます。そのため、各色要素 (またはサンプル) に 8 ビットおよびピクセルあたり 3 サンプルを使用する形式のビット深度は 24 になります。ビット深度に関連するサンプル サイズは不確定な場合があります。48 ビットのビット深度は、6 つの 8 ビット サンプル、4 つの 12 ビット サンプルまたは 3 つの 16 ビット サンプルを表現します。このあいまいさを避けるためのサンプル サイズの情報は、「形式固有の情報」を参照してください。

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