OpenEXR (.exr)

予備知識

    • 登録MIMEタイプ:image/x-exr
    • OpenEXRラスタ画像形式.
    • 劇場用映画制作においてデジタル画像操作に使用される.
    • EXRはExtended Dynamic Rangeの頭字語である.
    • バイナリファイル形式.
    • 1画素あたり16ビットのIEEE半精度浮動小数点数の色チャンネルを保管する.
    • オプションとして32ビットIEEE浮動小数点数の「Z」チャンネル深さバッファコンポーネント,面法線方向,または動きベクトルを保管することができる.
    • TiledまたはMulti-Viewのスキャンラインモードを使って複数の画像が保管できる.
    • アルファチャンネルをサポートする.
    • 2003年にインダストリアルライト&マジックによって導入された.
    • OpenEXRはAcademy Software Foundationのプロジェクトである.

Import

  • Import["file.exr"]はOpenEXRファイルを単一のImageとしてインポートする.
  • Import["file.exr",elem]はOpenEXRファイルから指定の要素をインポートする.
  • インポート形式はImport["file","OpenEXR"]またはImport["file",{"OpenEXR",elem,}]で指定できる.
  • Export["file.exr",expr] は式 expr をOpenEXRにエキスポートする.
  • 以下の式をサポートする:
  • imageImage オブジェクト
    graphicsラスタライズされた Graphics または Graphics3D オブジェクト
    {expr1,expr2,}ビューとも呼ばれるさまざまな画像のリスト
    <|"name1"expr1,|>名前のつけられた画像のリスト
  • 画像をエキスポートする際には,表示されている形式と同じラスタサイズの画像となる.
  • 一般的な情報は,以下の関数ページを参照のこと.
  • Import, Exportファイルからインポートする,あるいはファイルへエキスポートする
    CloudImport, CloudExportクラウドオブジェクトからインポートする,あるいはクラウドオブジェクトへエキスポートする
    ImportString, ExportString文字列からインポートする,あるいは文字列へエキスポートする
    ImportByteArray, ExportByteArrayバイト配列からインポートする,あるいはバイト配列へエキスポートする

Import要素

  • 一般的なImport要素:
  • "Elements" ファイル中の有効な要素とオプションのリスト
    "Summary"ファイルの概要
    "Rules"使用可能なすべての要素の規則のリスト
  • データ表現要素:
  • "Image"Imageオブジェクトとして返された最初の画像
    "Graphics"Graphicsオブジェクトとして返された最初の画像
    "EmbeddedThumbnail"ファイルに保存されているサムネイル(存在する場合)
    "Thumbnail"最初の画像のサムネイル
  • Importはデフォルトでは"Image"要素を使用する.
  • OpenEXRはビューと呼ばれる画像を複数含んでいることがある.ビューは同一画像の複数の解像度さまざまな深度レベルを表していることが多い.
  • 複数のビューを含むファイルの特性:
  • "ImageCount"ファイルに含まれる画像の数
    "ImageNames"ファイルに含まれている画像の名前
    "ImageMode"OpenEXR画像のモード
    "ImageSizeRoundingMode"タイリングされた画像のダウンサンプリングに使用される丸めモード
  • 可能な画像のモード:
  • "Scanline"単一画像
    "OneLevel"単一レベル
    "Mipmap"ミップマップタイリング
    "Ripmap"リップマップタイリング
    "Deep"複数の深さレベルを含む
  • 複数のビューを返す要素:
  • "Data"数値の配列
    "GraphicsList"データはGraphicsオブジェクトとして返される
    "ImageList"データはImageオブジェクトとして返される
  • 複数のビューを返す要素は,<|name1view1,|>という形式の連想を返す.viewi の構造はレベルモードとファイルが深い画像を含んでいるかどうかに依存する.
  • 各画像 viewi の結果の構造は画像モードによって決まり,以下のようになる:
  • "Scanline"res
    "OneLevel"<|1res1|>
    "Mipmap"<|1res11,2res22,|>
    "Ripmap"<|1<|1res11,2res21,|>,2<|1res12,2res22,|>,|>
    "Deep"<|1deep1,2deep2,|>
  • それぞれの resij は1次元目は i 分の一,2次元目は j 分の一にダウンサンプリングされる.
  • 個々のチャンネルの表現要素:
  • "ChannelNames"各ビューの色チャンネルの名前
    "Channels"各ビューで使用される色チャンネルの数
    "ChannelData"各ビューのチャンネルデータ
    "ChannelImageList"各ビューのチャンネル画像のリスト
  • チャンネルは自動的に何らかの既知の色空間に組み合される("R""G""B"のチャンネルを組み合せてRGB画像にする等).
  • 各ビューのメタデータ要素:
  • "BitDepth"ファイルの色チャンネルの符号化に使用されたビット数
    "ColorSpace"ファイルで使用されている色符号化
    "ImageSize"ラスタ次元
    "LevelCount"ビューごとのレベル数
  • ファイル全体のメタデータ要素:
  • "Attributes"OpenEXRファイルに保存されたすべての属性のリスト
    "Author"作成者名
    "Comments"ユーザコメント
    "Compression"ファイル内での画像の圧縮方法
    "CopyrightNotice"著作権情報の文字列
    "DataWindow"データウィンドウの角の座標
    "DateTime"ファイルの作成日時
    "DisplayWindow"表示ウィンドウの角の座標
    "Summary"ファイルの概要
    "SummarySlideView"すべてのビューの概要のスライド表示
    "Version"OpenEXRファイルのバージョン
  • "Data","ImageList""ChannelImageList"等,部分的なデータのインポートのためのサブ要素が指定できる.OpenEXRファイルのモードによって部分的アクセスは以下のいずれかの形式で指定できる:
  • "Scanline"{elem,view,channel}
    "OneLevel"{elem,view,level,channel}
    "Mipmap"{elem,view,level,channel}
    "Ripmap"{elem,view,level,level,channel}
    "Deep"{elem,view,level,channel}
  • データ表現要素はデータウィンドウからインポートされる.

オプション

  • Importオプション:
  • ImageSizeAutomatic画像の全体の大きさ
    "ImageTopOrientation"Automaticファイルに保存された画像の向き
  • ImageSizeAutomatic画像の全体の大きさ
    "ImageTopOrientation"Automaticファイルに保存された画像の向き
  • Export オプション:
  • "Attributes"Automaticファイルに関連付けられている属性
    "ImageMode"AutomaticOpenEXR画像のモード
    "ImageSizeRoundingMode""Up"タイリングされた画像のダウンサンプリングに使用される丸めモード
    "EmbeddedThumbnail"Noneファイルに埋め込まれるサムネイル

例題

すべて開くすべて閉じる

  (3)

OpenEXRファイルをインポートする:

マルチ解像度OpenEXRファイルから画像のリストをインポートする:

ファイルの概要:

スコープ  (3)

Import  (3)

すべての画像をインポートする;

最初の画像をインポートする:

画像のサイズ等のメタデータをインポートする:

タイリングされたOpenEXRファイルの概要:

複数のビューのOpenEXRファイルの概要:

Import要素  (31)

利用できる要素  (2)

利用できる要素のリスト:

すべての要素を規則のリストとしてインポートする:

データ表現  (13)

データチャンネルをNumericArrayオブジェクトとしてインポートする:

特定のチャンネルのみをインポートする:

データチャンネルをImageオブジェクトとしてインポートする:

特定のチャンネルのみをインポートする:

画像データをNumericArrayオブジェクトとしてインポートする:

特定のビューをインポートする:

最初の画像をGraphicsオブジェクトとしてインポートする:

データをGraphicsオブジェクトとしてインポートする:

特定のビューをインポートする:

最初の画像をImageオブジェクトとしてインポートする:

これはデフォルトの要素である:

データをImageオブジェクトとしてインポートする:

特定のビューをインポートする:

最初の画像のサムネイルをインポートする:

メタデータ  (16)

ファイル属性をインポートする:

ビューごとのビット深度をインポートする:

ビューごとのチャンネル名をインポートする:

ビューごとのチャンネル数をインポートする:

ビューごとの色空間をインポートする:

使用された圧縮法をインポートする:

データウィンドウをインポートする:

表示ウィンドウをインポートする:

ビューごとのレベル数をインポートする:

ビューの数をインポートする:

ビューの名前をインポートする:

ファイルのモードをインポートする:

タイリングされた画像のダウンサンプル時に使用された丸めモードをインポートする:

最初の画像の大きさをインポートする:

ファイルの概要をインポートする:

ビューごとの概要をインポートする:

Importオプション  (2)

ImageSize  (1)

デフォルトでは,画像は完全解像度でインポートされる:

インポートされたJPEG画像のラスタサイズを指定する:

"ImageTopOrientation"  (1)

デフォルトでは,画像はもとの向きでインポートされる:

上部とする側を指定する:

Exportオプション  (1)

"ImageMode"  (1)

デフォルトでは,画像モードはその式に基づいて自動的に選択される.

単一の画像は"Scanline"としてエキスポートされる:

エキスポートするときに画像モードを指定する:

必要に応じて,低解像度の画像が自動的に生成され,ファイルに保存される:

特性と関係  (1)

画像ピラミッドを作成し,OpenEXRファイルに格納する

生成したファイルの概要を見る: