Tiff
LibTIFF ライブラリ ルーチンの MATLAB ゲートウェイ
説明
Tiff
オブジェクトは、Tagged Image File Format (TIFF) ファイルへの接続を表し、LibTIFF ライブラリの多くの関数へのアクセスを可能にします。Tiff
では、サブイメージの読み取り、イメージ データのタイルとストリップの書き込み、個々の TIFF タグの変更など、関数 imread
や関数 imwrite
よりも多くの機能が提供されます。
多くの場合、Tiff
オブジェクト関数の構文は、対応する LibTIFF ライブラリ関数の構文と類似しています。Tiff
オブジェクトの機能を十分に理解するには、LibTIFF API および TIFF の仕様とテクニカル ノートを参照してください。このドキュメンテーションは LibTIFF - TIFF Library and Utilities で参照してください。
MATLAB® では LibTIFF version 4.6.0 が使用されます。
作成
説明
入力引数
filename
— ファイルの名前
string スカラー | 文字ベクトル
ファイルの名前。string スカラーまたは文字ベクトルとして指定します。
例: "myfile.tif"
mode
— ファイル アクセス タイプ
"r"
(既定値) | "w"
| "w8"
| "a"
| "r+"
ファイル アクセス タイプ。次の値のいずれかとして指定します。
パラメーター | 説明 |
---|---|
"r" | 読み取りのためにファイルを開く (既定)。 |
"w" | 書き込みのためにファイルを開く。既存の内容を破棄。 |
"w8" | BigTIFF ファイルの書き込みのためにファイルを開く。既存の内容を破棄。 |
"a" | 書き込みのためにファイルを開くまたは作成する。ファイルの最後にデータを追加 |
"r+" | 読み込みと書き込みのためにファイルを開く (作成はしない)。 |
書き込みや追加のために TIFF ファイルを開くと、後続のデータを書き込むために、Tiff
オブジェクトによってファイル内にイメージ ファイル ディレクトリ (IFD) が自動的に作成されます。この IFD には、TIFF Revision 6.0 で指定されているすべての既定値があります。
プロパティ
TIFF ファイルは、イメージ データおよびそれに関連付けられたタグを含むイメージ ファイル ディレクトリで構成されています。タグには、イメージの幅、イメージの高さ、サンプルの数など、イメージ関連の情報が含まれています。TIFF プロパティのそれぞれはタグの値を指定する構造体です。関数 setTag
を使用してタグの値を設定します。たとえば、ファイルを作成して、RGB 色空間を指定します。
t = Tiff("myfile.tif","w"); setTag(t,"Photometric",Tiff.Photometric.RGB)
ファイルを作成する場合、データをファイルに書き込む前に以下のタグを設定しなければなりません。
ImageLength
ImageWidth
Photometric
イメージのデータの型に応じて、他のタグを設定する必要がある場合もあります。一般的に、そのようなタグには以下のものがあります。
Compression
BitsPerSample
SamplesPerPixel
イメージのレイアウトに応じて、次のタグを設定する必要もあります。
ストリップ レイアウト —
RowsPerStrip
タグを設定します。タイル レイアウト —
TileWidth
タグとTileHeight
タグを設定します。
Compression
— イメージ データを圧縮するスキーム
構造体
イメージ データを圧縮するスキーム。次のフィールドをもつ構造体として返されます。
フィールド名 |
---|
None |
CCITTRLE (Read-only) |
CCITTFax3 |
CCITTFax4 |
LZW |
OJPEG |
JPEG |
AdobeDeflate |
... |
Compression
タグについて MATLAB でサポートされる値の完全なリストを表示するには、コマンド ウィンドウで「Tiff.Compression
」と入力します。
例: setTag(t,"Compression",Tiff.Compression.JPEG)
ExtraSamples
— 予備のチャネルについての説明
構造体
予備のチャネルについての説明。次のフィールドをもつ構造体として返されます。
フィールド名 | 説明 |
---|---|
Unspecified | 未指定のデータ |
AssociatedAlpha | 関連付けられているアルファ (事前乗算済み) |
UnassociatedAlpha | 関連付けられていないアルファ データ |
通常のカラーメトリック チャネルに加えて予備のチャネルが存在する場合は、ExtraSamples
タグが必要です。使用例は、カラー チャネルおよびアルファ チャネルのデータをもつ Tiff イメージの書き込みを参照してください。
例: setTag(t,"ExtraSamples",Tiff.ExtraSamples.AssociatedAlpha)
Group3Options
— グループ 3 FAX 圧縮オプション
構造体
グループ 3 FAX 圧縮オプション。次のフィールドをもつ構造体として返されます。
フィールド名 | 説明 |
---|---|
Encoding2D | ビット 0 は 1 です。 この値は 2 次元のコーディングを指定します。複数のストリップを指定した場合、各ストリップは 1 次元のコード行で始めなければなりません。つまり、CCITT 仕様で定められているように、 |
Uncompressed | ビット 1 は 1 です。 この値は、エンコード時に非圧縮モードであることを指定します。 |
FillBits | ビット 2 は 1 です。 EOL が必ずバイト境界で終了するように、EOL コードの前に必要に応じて埋め込みビットを追加します。この規則により、0 ニブルが EOL シーケンスに必ず 1 バイト先行するようになります。たとえば、 |
このプロパティは Fax3
または T4Options
とも呼ばれます。このプロパティの値は、最初の 3 ビットで制御されるビット マスクです。
例: setTag(t,"Group3Options",Tiff.Group3Options.Uncompressed)
InkSet
— 分離されたイメージ インクのセット
構造体
分離されたイメージ インクのセット。次のフィールドをもつ構造体として返されます。
フィールド名 | 説明 |
---|---|
CMYK | 成分の順序: シアン、マゼンタ、黄色、黒。通常、0 という値は 0% のインク カバレッジを示し、255 という値は、その成分の 100% のインク カバレッジを示しますが、DotRange の TIFF 仕様を参照してください。CMYK を指定する場合は、InkNames タグを設定しないでください。 |
MultiInk | CMYK 以外のあらゆる順序。使用されるインクの説明については、InkNames フィールドの TIFF 仕様を参照してください。 |
このプロパティのコンテキストで言及しているのは、光度測定解釈での "分離" についてであり、平面構成についてではありません。
例: setTag(t,"InkSet",Tiff.InkSet.CMYK)
JPEGColorMode
— カラー モード
構造体
カラー モード。次のフィールドをもつ構造体として返されます。
フィールド名 | 説明 |
---|---|
Raw (既定) | Y、Cb、Cr 行列を個別の入力として維持します。 |
RGB | RGB 入力を YCbCr に変換します。 |
YCbCr
イメージを RGB
として読み取るためにこのプロパティを使用しないでください。代わりに、関数 readRGBAImage
、readRGBAStrip
、readRGBATile
で提供される RGBA
インターフェイスを使用します。
例については、RGB データからの YCbCr/JPEG イメージの作成を参照してください。
例: setTag(t,"JPEGColorMode",Tiff.JPEGColorMode.RGB)
Orientation
— イメージ データの視覚的配置
構造体
イメージ データの視覚的配置。次のフィールドをもつ構造体として返されます。
フィールド名 |
---|
TopLeft |
TopRight |
BottomRight |
BottomLeft |
LeftTop |
RightTop |
RightBottom |
LeftBottom |
Orientation
プロパティは、行と列によってイメージの配置方向を記述します。たとえば、Orientation
が TopLeft
に設定されている場合、最初の行はイメージの一番上を表し、最初の列は左側を表します。Orientation
タグで指定される値は情報提供のみを目的としており、MATLAB によるイメージ データの読み込みや書き込みの方法には影響しません。
例: setTag(t,"Orientation",Tiff.Orientation.TopLeft)
Photometric
— イメージ データの色空間
構造体
イメージ データの色空間。次のフィールドをもつ構造体として返されます。
フィールド名 |
---|
MinIsWhite |
MinIsBlack |
RGB |
Palette |
Mask |
Separated (CMYK) |
YCbCr |
CIELab |
ICCLab |
ITULab |
LogL |
LogLUV |
CFA |
LinearRaw |
例: setTag(t,"Photometric",Tiff.Photometric.RGB)
PlanarConfiguration
— ストレージ構成
構造体
イメージ成分値のストレージ構成。次のフィールドをもつ構造体として返されます。
フィールド名 | 説明 |
---|---|
Chunky | 各ピクセルの成分値を隣接して保存します。たとえば、RGB データの場合、最初の 3 つのピクセルを RGBRGBRGB としてファイルに保存します。ほとんどすべての TIFF イメージには、隣接する平面構成がありす。 |
Separate | 各ピクセルの成分値を個別に保存します。たとえば、RGB データの場合、赤の成分は緑と青の成分とは別にファイルに保存されます。 |
例: setTag(t,"PlanarConfiguration",Tiff.PlanarConfiguration.Chunky)
ResolutionUnit
— 解像度の単位
構造体
XResolution
タグと YResolution
タグに含まれる値を解釈するための解像度の単位。次のフィールドをもつ構造体として返されます。
フィールド名 | 説明 |
---|---|
None | 既定の値。 |
Inch | XResolution タグと YResolution タグに含まれている値にインチの単位を指定します。 |
Centimeter | XResolution タグと YResolution タグに格納されている値にセンチメートルの単位を指定します。 |
たとえば、次のコードは X
および Y
方向のイメージ解像度の値を、1 インチあたり 300 ピクセルに設定します。
setTag(t,"ResolutionUnit",Tiff.ResolutionUnit.Inch) setTag(t,"XResolution",300) setTag(t,"YResolution",300)
例: setTag(t,"ResolutionUnit",Tiff.ResolutionUnit.Inch)
SampleFormat
— ピクセル サンプル形式
構造体
ピクセル サンプル形式。次のフィールドをもつ構造体として返されます。
フィールド名 | 説明 |
---|---|
UInt (既定) | 符号なし整数データ |
Int | 2 の補数の符号付き整数データ |
IEEEFP | IEEE 浮動小数点データ |
MATLAB は Void
、ComplexInt
、ComplexIEEEFP
の各形式をサポートしません。
例: setTag(t,"SampleFormat",Tiff.SampleFormat.IEEEFP)
SGILogDataFmt
— SGIL
コーデック データ形式
構造体
SGIL
コーデック データ形式。次のフィールドをもつ構造体として返されます。
フィールド名 | 説明 |
---|---|
Float | 単精度サンプル |
Bits8 | uint8 サンプル (読み取り専用) |
SGILogDataFmt
タグを Float
または Bits8
に設定すると、LogLuv
イメージでは SamplesPerPixel
の値が 3
に、LogL
イメージでは 1
になります。
SGILogDataFmt
タグは、LogLuv
または LogL
TIFF image オブジェクトのインスタンスにつき 1 回のみ設定できます。
次のコードを使用して Tiff
オブジェクトを作成し、SGIL データ形式を設定してから、イメージ データを読み取ります。
tiffobj = Tiff("example.tif","r"); setDirectory(tiffobj,3); % image 3 is a LogLuv image setTag(tiffobj,"SGILogDataFmt",Tiff.SGILogDataFmt.Float) imdata = read(tiffobj);
例: setTag(t,"SGILogDataFmt",Tiff.SGILogDataFmt.Float)
SubFileType
— イメージのタイプ
構造体
イメージのタイプ。次のフィールドをもつ構造体として返されます。
フィールド名 | 説明 |
---|---|
Default | 1 つのイメージ ファイルまたは最初のイメージの既定値。 |
ReducedImage | イメージは、マルチイメージ (またはマルチページ) ファイルの 1 つのイメージです。 |
Page | 関連付けられていないアルファ データ。 |
Mask | イメージは、ファイルの別のイメージの透明度マスクです。光度測定解釈値は Photometric.Mask としなければなりません。 |
例: setTag(t,"SubFileType",Tiff.SubFileType.Mask)
TagID
— TIFF タグ ID
構造体
MATLAB がサポートする TIFF タグ ID。次のフィールドをもつ構造体として返されます。
フィールド名 | 値 |
---|---|
SubFileType | 254 |
ImageWidth | 256 |
ImageLength | 257 |
BitsPerSample | 258 |
Compression | 259 |
Photometric | 262 |
Thresholding | 263 |
FillOrder | 266 |
... | ... |
タグ名とそれに対応するタグ ID の完全な一覧を表示するには、コマンド ウィンドウで Tiff.TagID
と入力します。
関数 setTag
を使用するときに、このプロパティを使用してタグを指定します。たとえば、Tiff.TagID.ImageWidth
を指定すると、ImageWidth
タグの ID が返されます。サポートされているすべてのタグの一覧を取得するには、関数 Tiff.getTagNames
を使用します。
例: setTag(t,Tiff.TagID.ImageWidth,300)
Thresholding
— しきい値処理手法
構造体
しきい値処理手法。次のフィールドをもつ構造体として返されます。
フィールド名 |
---|
BiLevel |
HalfTone |
ErrorDiffuse |
このプロパティでは、ピクセルをグレースケールからモノクロに変換する際に使用するアルゴリズムを記述します。
例: setTag(t,"Thresholding",Tiff.Thresholding.HalfTone)
YCbCrPositioning
— 色差サンプルの位置
構造体
輝度サンプルに対する色差サンプルの位置。次のフィールドをもつ構造体として返されます。
フィールド名 | 説明 |
---|---|
Centered | PostScript® Level 2 などの業界標準との互換性を指定します。 |
Cosited | CCIR Recommendation 601-1 などのほとんどのデジタル ビデオ標準との互換性を指定します。 |
例: setTag(t,"YCbCrPositioning",Tiff.YCbCrPositioning.Centered)
オブジェクト関数
TIFF ファイルは、1 つ以上のイメージ ファイル ディレクトリ (IFD) から構成されます。IFD には、イメージ データとそれに関連するメタデータが含まれます。IFD には、それ自身にイメージ データとメタデータを含むサブ IFD を含めることができます。読み取るために TIFF ファイルを開くと、Tiff
オブジェクトによって、ファイルの最初の IFD が "現在の" IFD に設定されます。Tiff
オブジェクト関数は現在の IFD 上で動作します。
イメージの読み取り
read | TIFF イメージ全体の読み取り |
readEncodedStrip | 指定したストリップからのデータの読み込み |
readEncodedTile | 指定したタイルからのデータの読み込み |
readRGBAImage | RGBA インターフェイスを使ったイメージの読み取り |
readRGBAStrip | RGBA インターフェイスを使ったストリップ データの読み取り |
readRGBATile | RGBA インターフェイスを使ったタイル データの読み取り |
close | Tiff オブジェクトを閉じる |
イメージの書き込み
write | イメージ全体の書き込み |
writeEncodedStrip | 指定されたストリップへのデータの書き込み |
writeEncodedTile | 指定されたタイルへのデータの書き込み |
close | Tiff オブジェクトを閉じる |
タグの設定または取得
getTag | 指定されたタグの値 |
setTag | タグの値の設定 |
Tiff.getTagNames | 認識されている TIFF タグのリスト |
イメージ ファイル ディレクトリ (IFD) の変更
currentDirectory | 現在の IFD のインデックスを返す |
lastDirectory | 現在の IFD がファイルの最後かどうかを確認 |
nextDirectory | 次の IFD を現在の IFD にする |
setDirectory | 指定した IFD を現在の IFD に設定 |
setSubDirectory | サブ IFD を現在の IFD に設定 |
rewriteDirectory | 既存のIFD への修正メタデータの書き込み |
writeDirectory | 新しい IFD を作成し、現在の IFD に設定 |
タイル、ストリップ、またはライブラリの情報の取得
isTiled | イメージがタイル配置であるかどうかを判別 |
computeTile | 指定された座標を含むタイルのインデックス番号 |
numberOfTiles | イメージ内のタイルの総数 |
computeStrip | 指定された座標を含むストリップのインデックス番号 |
numberOfStrips | イメージ内のストリップの総数 |
getVersion | LibTIFF ライブラリ バージョン |
例
Tiff
オブジェクトを使用した新しい TIFF ファイルの作成
カラー チャネルおよびアルファ チャネルのデータをもつ Tiff イメージの書き込み
カラー チャネルおよびアルファ チャネルをもつデータセットで、Tiff
タグを設定してからデータをファイルに書き込みます。
カラー チャネルとアルファ チャネルを含む配列 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 = Tiff("myfile.tif","w");
Tiff
タグを設定し、ExtraSamples
タグの値を指定します。これは、データにカラー チャネルに加えてアルファ チャネルが含まれているためです。
setTag(t,"Photometric",Tiff.Photometric.RGB) setTag(t,"Compression",Tiff.Compression.None) setTag(t,"BitsPerSample",8) setTag(t,"SamplesPerPixel",4) setTag(t,"SampleFormat",Tiff.SampleFormat.UInt) setTag(t,"ExtraSamples",Tiff.ExtraSamples.Unspecified) setTag(t,"ImageLength",numrows) setTag(t,"ImageWidth",numcols) setTag(t,"TileLength",32) setTag(t,"TileWidth",32) setTag(t,"PlanarConfiguration",Tiff.PlanarConfiguration.Chunky)
TIFF ファイルにデータを書き込み、Tiff
オブジェクトを閉じます。
write(t,data) close(t)
RGB データからの YCbCr/JPEG イメージの作成
RGB イメージ データを YCbCr/JPEG イメージとして TIFF ファイルに書き込みます。
RGB データを取得します。
rgb = imread("example.tif");
Tiff
オブジェクト t
を作成し、タグを設定します。JPEGColorMode
タグを使用して、入力データが RGB であることを指定します。
t = Tiff("myfile.tif","w"); setTag(t,"Photometric",Tiff.Photometric.YCbCr) setTag(t,"Compression",Tiff.Compression.JPEG) setTag(t,"YCbCrSubSampling",[2 2]) setTag(t,"BitsPerSample",8) setTag(t,"SamplesPerPixel",3) setTag(t,"SampleFormat",Tiff.SampleFormat.UInt) setTag(t,"ImageLength",size(rgb,1)) setTag(t,"ImageWidth",size(rgb,2)) setTag(t,"TileLength",32) setTag(t,"TileWidth",32) setTag(t,"PlanarConfiguration",Tiff.PlanarConfiguration.Chunky) setTag(t,"JPEGColorMode",Tiff.JPEGColorMode.RGB) setTag(t,"JPEGQuality",75)
TIFF ファイルにデータを書き込み、Tiff
オブジェクトを閉じます。
write(t,rgb) close(t)
バージョン履歴
R2009b で導入R2024a: LibTIFF ライブラリが version 4.6.0 にアップグレード
LibTIFF ライブラリが version 4.6.0 にアップグレードされました。
R2023b: LibTIFF ライブラリが version 4.5.0 にアップグレード
LibTIFF ライブラリが version 4.5.0 にアップグレードされました。
R2022b: LibTIFF ライブラリが 4.4.0 にアップグレード
LibTIFF ライブラリが 4.4.0 にアップグレードされました。
R2021b: LibTIFF ライブラリが version 4.2.0 にアップグレード
LibTIFF ライブラリが version 4.2.0 にアップグレードされました。
R2020b: JPEG 2000 圧縮が含まれる Aperio SVS および TIFF ファイルからのイメージの読み取り
JPEG 2000 圧縮が含まれる Aperio SVS 顕微鏡イメージ ファイルと TIFF イメージ ファイルを読み取ることができます。
R2020b: LibTIFF ライブラリが 4.1.0 にアップグレード
LibTIFF ライブラリが 4.1.0 にアップグレードされました。
R2020a: 有理多項式係数タグの値の読み取りと書き込み
Tiff
オブジェクトの RPCCoefficientTag
プロパティを使用して、有理多項式係数 (RPC) タグの値の読み取りと書き込みができます。詳細については、イメージへのエクスポートの表 6 を参照してください。
R2019b: LibTIFF ライブラリが version 4.0.10 にアップグレード
LibTIFF ライブラリが 4.0.10 にアップグレードされました。
R2019b: 特定の TIFF ファイルを書き込む Tiff
オブジェクトは非推奨
特定の光度測定構成とピクセルあたりのサンプル数の組み合わせをもつ TIFF イメージの書き込みは推奨されません。SamplesPerPixel
の値は、Tiff
オブジェクトで指定された Photometric
のカラー チャネルと ExtraSamples
の値の合計に等しくなければなりません。
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)