ドキュメンテーション センター

  • 評価版
  • 製品アップデート

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

Tiff クラス

LibTIFF ライブラリ ルーチンの MATLAB ゲートウェイ

説明

Tiff クラスは、Tagged Image File Format (TIFF) ファイルへの接続を表し、これにより LibTIFF ライブラリの多くの機能にアクセスできます。LibTIFF ライブラリのルーチンを呼び出すには、Tiff オブジェクトのメソッドを使用します。関数 imread および imwrite を使用して TIFF ファイルの読み込みと書き込みが可能ですが、Tiff クラスには、サブイメージの読み込み、イメージ データのタイルとストリップの書き込み、個々の TIFF タグの変更など、これらの関数にない機能があります。

多くの場合、Tiff メソッドの構文は、LibTIFF ライブラリ関数の構文と同じです。Tiff オブジェクトを最大限に利用するには、LibTIFF API と TIFF 仕様および技術情報に精通していなければなりません。「LibTIFF - TIFF Library and Utilities」でこのドキュメンテーションを参照してください。

MATLAB では LibTIFF Version 4.0.0 がサポートされます。

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

構築

obj = Tiff(filename,mode) は、TIFF ファイル filename と関連付けられた Tiff オブジェクトを作成します。mode はファイルへのアクセス タイプを指定します。

TIFF ファイルは、1 つまたは複数のイメージ ファイル ディレクトリ (IFD) から構成されます。IFD には、イメージ データと関連メタデータが含まれます。IFD には、それ自身にイメージ データとメタデータを含むサブ IFD を含めることができます。読み取る TIFF ファイルを開くと、Tiff オブジェクトによって、ファイルの最初の IFD が現在の IFD に設定されます。Tiff メソッドは現在の IFD に作用します。Tiff オブジェクト メソッドを使用して、TIFF ファイル内の IFD とサブ IFD を移動することができます。

書き込みや追加のために TIFF ファイルを開くと、Tiff オブジェクトにより続くデータを書き込むための IFD がファイル内に自動的に作成されます。この IFD には、TIFF リビジョン 6.0 に指定されたすべての既定値があります。

新しい TIFF ファイルを作成する場合、ファイルにイメージを書き込む前に、ファイル内に特定のフィールド (タグ) を作成する必要があります。これらのタグには、ImageWidthImageHeightBitsPerSampleSamplesPerPixelCompressionPlanarConfiguration、および Photometric が含まれます。イメージ データがストリップ レイアウトの場合、IFD には RowsPerStrip タグが含まれます。イメージ データがタイル レイアウトの場合、IFD には TileWidth および TileHeight タグが含まれます。これらのタグの値を定義するには、setTag メソッドを使用します。

入力引数

filename

ファイルの名前を表すテキスト文字列。

mode

TIFF ファイルへのアクセスのタイプを表す次のテキスト文字列のいずれか。

 サポートされている値

プロパティ

Compression

イメージ データの圧縮に使用するスキームを指定

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

 サポートされている値

例: Compression タグを値 JPEG に設定します。値を指定するためにプロパティを使用する方法に注意してください。

tiffobj.setTag('Compression', Tiff.Compression.JPEG);

ExtraSamples

追加成分の記述

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

通常のカラーメトリック チャネルに加え、予備のチャネルが存在する場合、このフィールドは必須です。

 サポートされている値

例: ExtraSamples タグを値 AssociatedAlpha に設定します。値を指定するためにプロパティを使用する方法に注意してください。

tiffobj.setTag('ExtraSamples', Tiff.ExtraSamples.AssociatedAlpha);

Tiff オブジェクトのプロパティの指定と alpha チャネルの記述」も参照してください。

Group3Options

グループ 3 FAX 圧縮用オプション

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

このプロパティは Fax3 および T4Options とも呼ばれます。この値は、最初の 3 ビットによって制御されるビット マスクです。

 サポートされている値

例:

mask = bitor(Tiff.Group3Options.Encoding2D,Tiff.Group3Options.Uncompressed)
tiffobj.setTag('Group3Options',mask);

InkSet

離れたイメージに使用されるインク セットを指定します。

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

この場合の離れたとは、測光上の解釈を意味し、平面の構成ではありません。

 サポートされている値

例:

tiffobj.setTag('InkSet', Tiff.InkSet.CMYK);

JPEGColorMode

YCbCr/RGB 変換の制御の指定

これらの値は、光度測定解釈値が YCbCr の場合のみ使用してください。

このプロパティは、YCbCr イメージを RGB として読み取る目的で使用しないでください。この場合は、readRGBAImagereadRGBAStrip および readRGBATile メソッドで提供される RGBA インターフェイスを使用してください。

 サポートされている値

例:

tiffobj.setTag('JPEGColorMode',Tiff/JPEGColorMode.RGB);

RGB データからの YCbCr/JPEG イメージの作成」も参照してください。

Orientation

イメージ データの視覚的配置を指定します。

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

最初の行はイメージの一番上を表し、最初の列は左側を表します。このタグは、参照のみのためにサポートされており、MATLAB® でのイメージ データの読み込みまたは書き込み方法に影響を与えません。

 サポートされている値

例:

tiffobj.setTag('Orientation', Tiff.Orientation.TopRight);

Photometric

イメージ データの色空間を指定します。

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

 サポートされている値

例:

tiffobj.setTag('Photometric', Tiff.Photometric.RGB);

PlanarConfiguration

イメージ データ成分をディスク上に保存する方法を指定します。

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

 サポートされている値

例:

tiffobj.setTag('PlanarConfiguration', Tiff.PlanarConfiguration.Chunky);

ResolutionUnit

XResolution および YResolution タグの解釈に使用される測定単位を指定します。

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

 サポートされている値

例: ResolutionUnit タグを値 Inch に設定します。XResolution タグを 300 に設定すると、1 インチあたりのピクセル数を表します。

tiffObj.setTag('ResolutionUnit', Tiff.ResolutionUnit.Inch);
tiffObj.setTag('XResolution', 300);
tiffObj.setTag('YResolution', 300);

SampleFormat

各ピクセル サンプルの解釈方法を指定します。

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

 サポートされている値

例:

tiffobj.setTag('SampleFormat', Tiff.SampleFormat.IEEEFP);

SGILogDataFmt

SGILog コーデックのクライアント データの制御を指定します

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

これらの列挙値は、光度測定解釈値が LogL または LogLUV の場合にのみ使用してください。イメージ タイプが LogL または LogLuv の場合、BitsPerSampleSamplesPerPixel、および SampleFormat タグを設定しないでください。SGILogDataFmt を選択すると、これらのタグが自動的に設定されます。FloatBits8 の設定は、LogLUV イメージの場合は SamplesPerPixel の値 が 3 ですが、LogL イメージの場合はわずか 1 であることを示します。

 サポートされている値

このタグは、LogL/LogLuv Tiff イメージ オブジェクト インスタンスのインスタンス 1 つにつき 1 回だけ設定できます。

例:

tiffobj = Tiff('example.tif','r');
tiffobj.setDirectory(3); % image three is a LogLuv image
tiffobj.setTag('SGILogDataFmt', Tiff.SGILogDataFmt.Float);
imdata = tiffobj.read();

SubFileType

イメージ タイプを指定します。

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

SubFileType は、イメージ タイプを示すビットマスクです。

 サポートされている値

例:

tiffobj.setTag('SubFileType', Tiff.SubFileType.Mask);

TagID

認識されている TIFF タグ名とその ID 番号のリスト。

このプロパティは、サポートされているすべての TIFF タグとその ID 番号を特定します。setTag メソッドを使用するときに、このプロパティを使用してタグを指定します。たとえば、Tiff.TagID.ImageWidth を指定すると、ImageWidth タグの ID が返されます。サポートされているタグの名前の一覧を取得するには、getTagNames メソッドを使用します。

例:

tiffobj.setTag(Tiff.TagID.ImageWidth, 300);

Thresholding

グレーのピクセルを白と黒のピクセルに変換するために使用する方法を指定します。

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

 サポートされている値

例:

tiffobj.setTag('Thresholding', Tiff.Thresholding.HalfTone);

YCbCrPositioning

色差サンプルの相対位置を指定します。

このプロパティにより、このタグでサポートされるすべての値が定義されます。setTag メソッドを使用するときに、このプロパティを使用してこのタグに割り当てる値を指定します。明確な説明は、例を参照してください。

このプロパティにより、YCbCrPositioning タグでサポートされるすべての値が特定されます。

 サポートされている値

例:

tiffobj.setTag('YCbCrPositioning', Tiff.YCbCrPositioning.Centered);

メソッド

closeTiff オブジェクトを閉じる
computeStrip指定された座標を含むストリップのインデックス番号
computeTile指定された座標を含むタイルのインデックス番号
currentDirectory現在の IFD のインデックス
getTag指定されたタグの値
getTagNames認識されている TIFF タグのリスト
getVersionLibTIFF ライブラリ バージョン
isTiledタイルのイメージかどうかを確認
lastDirectory現在の IFD がファイルの最後かどうかを確認
nextDirectory次の IFD を現在の IFD に設定
numberOfStripsイメージ内のストリップの総数
numberOfTilesイメージ内のタイルの総数
readイメージ全体の読み込み
readEncodedStrip指定したストリップからのデータの読み込み
readEncodedTile 指定したタイルからのデータの読み込み
readRGBAImageRGBA インターフェイスを使ったイメージの読み取り
readRGBAStripRGBA インターフェイスを使ったストリップ データの読み取り
readRGBATileRGBA インターフェイスを使ったタイル データの読み取り
rewriteDirectory既存のIFD への修正メタデータの書き込み
setDirectory指定した IFD を現在の IFD に設定
setSubDirectoryバイトのオフセットで指定されたサブ IFD を現在の IFD に設定
setTagタグの値の設定
write イメージ全体の書き込み
writeDirectory新しい IFD を作成し、現在の IFD に設定
writeEncodedStrip指定されたストリップへのデータの書き込み
writeEncodedTile指定されたタイルへのデータの書き込み

すべて展開する

Tiff オブジェクトを使用した新しい TIFF ファイルの作成

myfile.tif という新しいファイルを作成します。この例を実行するには、ディレクトリが書き込み可能でなければなりません。

t = Tiff('myfile.tif', 'w');

Tiff オブジェクトを閉じます。

t.close();

Tiff オブジェクトのプロパティの指定と alpha チャネルの記述

この例では、カラーメトリック チャネルと alpha チャネルを含むデータの配列 data を作成します。

rgb = imread('example.tif');
numrows = size(rgb,1);
numcols = size(rgb,2);
alpha = 255*ones([numrows numcols], 'uint8');
data = cat(3,rgb,alpha);

Tiff オブジェクト t を作成し、オブジェクト プロパティを設定します。ExtraSamples タグの値を設定します。これは、データに alpha チャネルとカラーメトリック チャネルが含まれているためです。

t = Tiff('myfile.tif','w');
t.setTag('Photometric',Tiff.Photometric.RGB);
t.setTag('Compression',Tiff.Compression.None);
t.setTag('BitsPerSample',8);
t.setTag('SamplesPerPixel',4);
t.setTag('SampleFormat',Tiff.SampleFormat.UInt);
t.setTag('ExtraSamples',Tiff/ExtraSamples.Unspecified);
t.setTag('ImageLength',numrows);
t.setTag('ImageWidth',numcols);
t.setTag('TileLength',32);
t.setTag('TileWidth',32);
t.setTag('PlanarConfiguration',Tiff.PlanarConfiguration.Chunky);

データを Tiff オブジェクトに書き込みます。

t.write(data);
t.close();

RGB データからの YCbCr/JPEG イメージの作成

RGB データを取得します。

rgb = imread('example.tif');

Tiff オブジェクト t を作成し、オブジェクト プロパティを設定します。JPEGColorMode プロパティを使って、RGB 入力データを指定します。

t = Tiff('myfile.tif','w');
t.setTag('Photometric',Tiff.Photometric.YCbCr);
t.setTag('Compression',Tiff.Compression.JPEG);
t.setTag('YCbCrSubSampling',[2 2]);
t.setTag('BitsPerSample',8);
t.setTag('SamplesPerPixel',3);
t.setTag('SampleFormat',Tiff.SampleFormat.UInt);
t.setTag('ImageLength',size(rgb,1));
t.setTag('ImageWidth',size(rgb,2));
t.setTag('TileLength',32);
t.setTag('TileWidth',32);
t.setTag('PlanarConfiguration',Tiff.PlanarConfiguration.Chunky);
t.setTag('JPEGColorMode',Tiff/JPEGColorMode.RGB);
t.setTag('JPEGQuality',75);

データを Tiff オブジェクトに書き込みます。

t.write(rgb);
t.close();

参考

| |

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