体渲染与处理

Wolfram 语言对三维数据集的体渲染与处理提供内置的支持. 许多内置的图像处理算法包括像素运算、局部滤波、分割以及形态学操作均可应用于三维数据集.
体创建和表示
三维数据集可以从一个文件或一系列文件中导入. 典型的切面按二维图像的一个栈被存储,然后可被组合,用来创建一个三维图像. 一个三维图像可以用三维或四维数据数组创建,其中第一个三维对应于三维图像的切面、行和列.
Image3D
用一个数据数组或图像切面列表创建一个几何体
Import
从文件中导入数据
RandomImage
用像素值的伪随机数组创建一个几何体
体创建函数.
用数据数组创建一个几何体:
用一个四维数据数组创建一个多通道 Image3D
用二维图像的一个栈创建一个几何体:
Image3D 导入存在 TIFF 文件中的一个图像栈:
揭示几何体的内部的一个方便的方法是显示三维体的二维切面. Image3DSlices 按着指定的方向提取一个几何体的二维切面.
Image3DSlices
沿着给定方向切开三维数据集
切开一个三维数据集.
从一个几何体中提取三个切面:
三维图像的属性可以通过调用以下函数获取.
ImageDimensions[image]
给出与 image 相关的光栅的像素大小
ImageChannels[image]
给出 image 数据中出现的通道数
ImageColorSpace[image]
给出 image 相伴的颜色空间
ImageType[image]
给出 image 中每个像素元素值的类型
ImageData[image]
image 中像素值的数组
ImageMeasurements[image]
对图像数据的度量
Options[symbol]
给出分配给符号的默认的选项列表
体属性.
提取体的属性:
体渲染
ColorFunction
如何把数据值转换为颜色
ClipRange
从视图中去掉长方形区域
Background
Image3D 对象的背景颜色
BoxRatios
三维边界框比例
重要的渲染选项.

ColorFunction (传递函数)

在体渲染中,传递函数把体素值转换成对应的不透明度和颜色值. 在 Wolfram 语言中,传递函数可用 ColorFunction 选项指定.
导入一个三维数据集:
单通道几何体的 Wolfram 语言的默认颜色函数:
具有线性不透明度的灰色函数是常用的颜色函数:
使用预定义的 x 射线颜色函数规范:
使用具有线性不透明度的彩虹色函数:

ClipRange

为了看见几何体的内部,一般,几何体的一部分会被剪掉. ClipRange 选项可用于指定从视图中裁掉的长方形.
从视图中剪掉一个长方形:
沿 z 方向裁剪:

Background

当渲染一个三维几何体时,默认情况下,无假设的背景色,因此笔记本的背景色会被使用.
黑色背景常用于体渲染中:

BoxRatios

默认情况下,每个体素被假设为完美的立方体. 因此被渲染的几何体的边框比率与它的尺寸比率成正比.
如果数据没有展示出立方体的体素,嵌在几何体的边框比率可用 BoxRatios 选项指定.
指定边框比率:
体坐标系统

数据嵌入

当用一个数据数组构建一个几何体时,默认情况下,前三个维度分别对应于三维图像的切面、行和列. 切面从上到下被枚举、行是从后到前,列是从左到右.
记住这个的一种方法是想象把一本书放在一个三维空间. 书的页面对应于图像的切面(从上到下),对应于每个页面(图像的切面)的数据的安置使得行从后至前,从左至右被读取.
从温度地图中创建一个颜色值列表:
重塑创建的列表为一个3个立方体的结构并创建一个 Image3D 对象:
Graphics3D 的图元 Raster3D 从下到上显示切面,从前到后显示每个切面的行:

索引坐标

对于三维图像,类似于二维图像,使用多于一个的坐标系统. 用于在三维空间嵌入数据数组的坐标系统与 Wolfram 语言的部分规范是一样的.
操作于图像和数据数组的 Wolfram 语言命令遵循索引坐标系统. 在三维系统中,这些命令首先列出从上到下的垂直切面坐标参数,然后列出从后至前的行坐标和从左至右的列坐标.
沿着第三个方向,用最大值滤波一个三维图像:

图像坐标

第二个坐标系统不是数据固有的,但是附加在嵌入的空间. 连续的图像坐标系统,像 Graphics3D 坐标系统,它的原点在图像的左前下角,-坐标从左至右,-坐标从前至后,-坐标从下至上. 图像域覆盖三维区间 ××.
图像处理命令不适用于任意数组在标准的图像坐标系统中渲染它们的结果. 这些标准的图像坐标很容易被用于 Graphics3D 的图元.
计算一个几何体的强度形心:
在几何体上叠加已计算的位置: