『デジタル画像処理と機械視覚——Visual C++とMatlab実現』——1.4画像ファイルの読み取りと書き込み...

3242 ワード

この節の本は非同期コミュニティ出版社の「デジタル画像処理と機械視覚--Visual C++とMatlab実現」の第1章、第1.4節から抜粋し、著者:張铮、王艶平、薛桂香、より多くの章の内容は雲生コミュニティの「非同期コミュニティ」の公衆番号を訪問して見ることができる.
1.4画像ファイルの読み取りと書き込み
デジタル画像処理と機械視覚——Visual C++とMatlab実現Matlabは、BMP、HDF、JPEG、PCX、TIFF、XWD、ICO、GIF、CURの画像ファイルタイプを処理できる.imread関数とimwrite関数を使用して画像ファイルを読み書きし、imfinfo関数を使用してデジタル画像に関する情報を得ることができます.
1.imread関数imread関数は、指定された位置の画像ファイルをワークスペースに読み込むことができます.インデックス画像以外の場合、そのプロトタイプは、
A = imread(FILENAME, FMT);

パラメータの説明:
FILENAMEは、画像ファイルのフルパスとファイル名を指定します.読み込むファイルが現在の作業ディレクトリまたは自動検索リストに表示されるパスの下にある場合は、ファイル名を指定します.FMTパラメータは、画像ファイルのフォーマットに対応する標準拡張子、例えばGIFなどを指定する.imreadがFILENAMEで指定されたファイルが見つからない場合は、FILENAMEを試します.FMT.戻り値:
Aは、画像データを含むマトリクスである.階調図では、m行n列のマトリクスである.RGBの真彩図については、m×n×3の行列.ほとんどの画像ファイルでは、Aのタイプはuint 8です.一方、一部のTIFFおよびPNG画像では、Aのタイプはuint 16である.インデックス画像については、状況が異なります.この場合、IMREADの呼び出し形式は、
[X, MAP] = imread(FILENAME, FMT);

このときの戻り値は、Xが画像データマトリクス、MAPが色インデックステーブルである.画像のカラーインデックスデータは0~1の範囲に正規化されます.なぜなら、インデックス画像の場合、imread関数は、画像ファイル自体がどのデータ型を使用するかにかかわらず、画像データを二重精度タイプで格納するからである.
imread関数はRGBAなどのフォーマットで保存された画像を処理することもでき、コマンドウィンドウにhelp imreadを入力することでMatlabのimreadに関するオンラインヘルプ情報を表示することができます.
2.IMWRITE関数imwrite関数は、指定された画像データをファイルに書き込むために用いられ、異なる保存ファイル拡張子を指定することにより、画像フォーマット変換の役割を果たす(例2.4参照).呼び出し形式は次のとおりです.
imwrite(A, FILENAME, FMT);

パラメータの説明:
FILENAMEパラメータは、ファイル名を指定します(拡張子を含める必要はありません).FMTパラメータは、ファイルの保存に使用するフォーマットを指定します.インデックス画像を格納する場合、カラーインデックステーブルを一括して格納する必要がある場合、IMWRITE関数の使用方法は次のとおりです.
imwrite(A, MAP, FILENAME, FMT);

MAPは正当なMatlab色インデックステーブルです.
imwrite関数は、TIFFファイルフォーマットで選択されたカラー空間、GIFフォーマットでの透明色、画像ファイルの作成者、著作権情報、解析度、作成ソフトウェアなど、画像ファイルの多くのプロパティを制御することもできます.
【例1.4】tif画像ファイルを1枚読み込み、ディスクへの書き込み時にtif画像をbmp画像に変換する.
>>I=imread('pout.tif'); %    
>>whos I %        
 Name   Size          Bytes Class
 I    291x240          69840 uint8 array
Grand total is 69840 elements using 69840 bytes
%  whos           291、  240     I    291*240     


>>imwrite(I, 'pout.bmp'); %       pout.bmp,              

3.imfinfo関数imfinfo関数は、日付、サイズ、フォーマット、高さ、幅、色の深さ、色空間、記憶方法など、画像ファイルの一部の属性情報を読み取ることができる(例12.5参照).呼び出し形式は次のとおりです.
imfinfo(FILENAME, FMT);

パラメータの説明:
FILENAMEパラメータはファイル名を指定します.FMTパラメータは、ファイルフォーマットを指定するためのオプションパラメータです.【例1.5】画像ファイル情報を表示する.
>>imfinfo('wolf.jpg') %        
ans = 
      Filename: 'wolf.jpg'
     FileModDate: '16-   -2007 23:41:31'
      FileSize: 64213
       Format: 'jpg'
    FormatVersion: ''
        Width: 1024
       Height: 768
      BitDepth: 24
      ColorType: 'truecolor'
   FormatSignature: ''
   NumberOfSamples: 3
    CodingMethod: 'Huffman'
    CodingProcess: 'Progressive'
       Comment: {}
     Orientation: 1
     XResolution: 72
     YResolution: 72
   ResolutionUnit: 'Inch'
      Software: 'Adobe Photoshop 7.0 '
      DateTime: '2005:08:01 11:42:18 '
  YCbCrPositioning: 'Centered'
    DigitalCamera: [1x1 struct]

本論文は学習と交流の目的にのみ用いられ,非同期コミュニティの観点を代表するものではない.非商業転載は翻訳者、出典を明記し、本文の元のリンクを保持してください.