立体描画と処理

Wolfram言語は3Dデータ集合の立体描画と処理の組込みサポートを提供する.画素操作,局所フィルタリング,分割形態学的操作を含む多数の組込みの画像処理アルゴリズムを3Dデータ集合に適用することができる.
立体生成と表現
3Dデータは1つのファイルあるいは一連のファイルからインポートすることができる.通常スライスは2D画像のスタックとして保存され,それを組み合せて3D画像を生成することができる.3D画像は三次元または四次元のデータ配列から生成することもできる.ここで最初の3つの次元は,デフォルトでは3D画像のスライス,行,列に対応する.
Image3D
データの配列あるいは画像のスライスのリストから立体を生成する
Import
ファイルからデータをインポートする
RandomImage
画素値の擬似乱数配列から立体を生成する
立体生成関数
データ配列から立体を生成する:
データの四次元配列からマルチチャンネルのImage3Dを生成する:
2D画像のスタックから立体を生成する:
TIFFファイルで保存された画像のスタックをImage3Dとしてインポートする:
立体の内部を表すには,3Dの立体の2Dスライスを表示すると便利である.Image3DSlicesは,指定された次元の立体の2Dスライスを抽出する.
Image3DSlices
指定された次元で3Dデータ集合をスライスする
3Dデータ集合のスライス
立体から3つのスライスを抽出する:
3D画像のプロパティは次の関数を呼び出すことで得ることができる.
ImageDimensions[image]
image に関連付けられたラスタの画素次元を与える
ImageChannels[image]
image に対してデータに存在するチャンネル数を与える
ImageColorSpace[image]
image に関連付けられた色空間を与える
ImageType[image]
image の各画素要素に使われる値の型を与える
ImageData[image]
image の画素値の配列
ImageMeasurements[image]
画像データの測定
Options[symbol]
記号に割り当てられたデフォルトオプションのリストを与える
立体プロパティ
立体のプロパティを抽出する:
立体描画
ColorFunction
データ値を色に変換する方法
ClipRange
ビューから長方形領域を切り取る
Background
Image3Dオブジェクトの背景色
BoxRatios
境界の3Dボックス比
代表的な描画オプション

ColorFunction(伝達関数)

立体描画では,伝達関数がボクセル値を対応する不透明度や色の値に変換する.Wolfram言語では,伝達関数はColorFunctionオプションを使って指定することができる.
3Dデータ集合をインポートする:
シングルチャンネルの立体に対するWolfram言語のデフォルト色関数:
線形不透明度のグレー色関数は広く使われる色関数である:
定義済みのレントゲン色関数指定を使う:
線形不透明度の虹色関数を使う:

ClipRange

立体の内部を見るためには,通常立体の一部を切り取らなければならない.ClipRangeオプションはビューから切り取る長方形を指定するのに使うことができる.
ビューから長方形を切り取る:
次元に沿って切り取る:

Background

3D立体を描画するときは,デフォルトでは背景色は指定されていないため,ノートブックの背景色が使われる.
立体描画では,黒い背景色がよく使われる:

BoxRatios

デフォルトでは,各ボクセルは正立方体と想定される.したがって,描画された立体のボックス比はその次元の比に比例する.
データが立方体のボクセルを示さない場合,立体を埋め込むボックスの比はBoxRatiosオプションを使って指定することができる.
ボックス比を指定する:
立体座標系

データ埋込み

データの配列から立体を構築する場合,デフォルトでは最初の三次元はそれぞれ3D画像のスライス,行,列に対応する.スライスは上から下に,行は後ろから前に,列は左から右に列挙される.
これを覚えるには,3D空間に本を置いた場合を考えるとよい.本のページは画像のスライス(上から下)に対応し,各ページ(画像のスライス)に対応するデータは行が後ろから前に,左から右に並ぶように配列される.
温度地図から色の値のリストを生成する:
生成されたリストを3つの立方体構造に変形し,Image3Dオブジェクトを生成する:
Graphics3DプリミティブのRaster3Dはスライスを下から上に表示し,各スライスの行は前から後ろに表示される:

指標座標

2D画像と同様に, 3D画像の場合も使用される座標系は複数ある.3D空間にデータ配列を埋め込むために使われる座標系は,Wolfram言語の部分指定と同じである.
画像とデータ配列の両方に作用するWolfram言語コマンドは,指標座標系に従う.3Dではこれらのコマンドはまず,上から下に走る垂直のスライス座標を参照するパラメータをリストし,後ろから前の行座標をリストし,左から右の列座標をリストする.
三次元の3D画像の最大フィルタリング:

画像座標

2つ目の座標系はデータに備わってはおらず,埋込み空間に付随している.Graphics3D座標系のような連続画像座標系は画像の下,左,前の角に原点があり, 座標は左から右に, 座標は前から後ろに, 座標は下から上に伸びている.画像領域は3Dの区間××をカバーする.
任意の配列に適用可能な画像処理コマンドは,標準的な画像座標に結果を描画する.これらの標準的な画像座標はGraphics3Dプリミティブで使うことができる.
強度で重みが付けられた図心の座標を計算する:
計算された位置を立体上に重ねる: