Graphics    

イメージデータまたはグラフィックタイプの変換

uint8uint16配列をサポートしていない演算を実行したい場合、データを関数doubleを使って倍精度に変換する必要があります。たとえば、つぎのように行います。

データタイプ間の変換は、MATLABやツールボックスがイメージデータを解釈する方法を変更することであることに注意してください。イメージデータを適切に変換した配列とするには、変換するときにスケーリングを行ったり、オフセットを適用する必要があります(オフセットに関する情報は、"イメージタイプ""8-ビットや16-ビットのインデックス付きイメージ"の節を参照してください) 。

ある演算で、イメージを異なるイメージタイプに変換することが有効な場合があります。たとえば、インデックス付きイメージとしてストアしているカラーイメージをフィルタ処理したい場合、まず、それをRGBフォーマットに変換しなければなりません。これを効率的に行うには、関数ind2rgbを使ってください(Image Processing Toolboxに用意されています)。RGBイメージにフィルタを適用する場合、MATLABは、イメージ内の強度値にフィルタ処理を行います。また、インデックス付きイメージにフィルタを適用しようとすると、MATLABは、単にインデックス付きイメージ行列のインデックスにフィルタを適用し、結果は、なんら意味のないものになる可能性があります。

MATLABの書式を使った、ある変換を行うこともできます。たとえば、グレースケールイメージをRGBに変換したい場合、つぎのように、3番目の次元に従ってオリジナル行列を繋いでください。

結果のRGBイメージは、赤、緑、青のパネルに対する単位行列になり、イメージはグレーのシェーディングが適用されたように表示されます。

しばしば、他のソフトウエアで使用するため、イメージのグラフィックスフォーマットを変更した場合があります。これは、非常に簡単なものです。たとえば、BMPからPNGへのイメージの変換は、 imreadを使ってBMPデータを読み込み、データタイプをuint8uint16doubleのいずれかに設定し、'PNG'の指標を付けて、imwriteを使って、イメージをセーブします。種々のグラフィックスフォーマットに対してサポートされているビットデプスの指標やイメージをファイルに書き込むときのフォーマットタイプの設定方法については、imreadimwrite を参照してください。


 イメージの印刷 基本的な印刷法と出力法