Avizo用户使用手册-3
[TOC]
Chapter 3
3 教程:可视化和处理2D和3D图像
Avizo为导入,可视化和处理2D和3D图像提供了广泛的支持。
对于相关功能概述,请参阅第1.2节。本章中的教程介绍
以下主题:
- 读取图像-如何读取图像
- 可视化3D图像-切片,等值面,体绘制
- 将3D和2D视图与正视图结合使用-如何有效地可视化和检查3D图片
- 强度范围分割-3D图像数据分割
- 图像分割-3D图像数据分割
- 用于光学显微镜的反卷积-强大的算法,可提高显微技术的质量视觉图像
- 图像和堆栈处理-为图像数据创建图像处理工作流
3.1 如何加载图像数据
加载图像数据是Avizo中最基本的操作之一。除了2D图像外
包含3D图像的标准化文件格式并不多。本教程通过以下方式指导您如何将各种3D图像加载到Avizo中的示例。本教程特别涵盖以下主题:
- 使用
File/Open Data...
浏览器并设置文件格式。 - 从多个2D切片读取3D图像数据。
- 设置3D图像的边界框或体素大小。
- 堆叠切片文件格式。
- 处理大磁盘数据。
3.1.1 Avizo文件浏览器
图像数据通过File/Open Data...
对话框加载到Avizo中。Avizo支持的所有文件格式可以通过数据标题或文件名后缀自动识别。
接下来的只是在以下情况下值得关注:
- 自动文件格式检测失败。
- 3D图像数据存储在多个2D文件中。
- 数据大于可用的主存储器。
设置文件格式
在大多数情况下,文件格式是自动确定的,方法是检查文件标题或通过将文件名后缀与已知后缀列表进行比较。在加载对话框中,文件格式为在详细视图的单独列中显示。
例:
- 第一行中包含字符串Avizo的文件被视为Avizo文件。
- 后缀为
.stl
的文件被视为STL文件。
如果自动文件格式检测失败,例如,因为使用了一些非标准后缀,则格式可以使用File/Open Data As...
对话框手动设置。
3.1.2 从多个2D切片读取3D图像数据
存储3D图像数据的常用方法是为每个切片编写单独的2D图像文件。2D图像可以TIFF,BMP,JPEG或任何其他受支持的图像文件格式写入。
为了加载对于Avizo中的此类数据,必须在文件浏览器中同时选择所有2D切片。可以做到通过单击第一个文件并按住Shift并单击最后一个文件。
- 打开
File/Open Data...
对话框。 - 浏览到
$AVIZO ROOT/data/teddybear/
目录。 - 选择第一个文件
teddybear000.jpg
。 - 按住
Shift
并单击最后一个文件teddybear061.jpg
。 - 单击打开。
3.1.3 设置边界框
加载一系列位图图像时,通常不知道图像的物理尺寸到Avizo。因此,将出现Image Read Parameters
对话框,提示您输入Bounding Box
的物理范围。或者,可以设置单个体素的大小。在Avizo,对象的边界框是3D空间中最小的矩形,与轴对齐的体积,包含对象。
请注意,在Avizo中,统一数据集的边界框从第一个体素的中心到最后一个体素的中心。
例如,如果您有256个体素并且您知道如果体素大小为1 mm,则边界框应设置为0-255(或某些偏移范围)。
- 在
Voxel Size
端口的第一,第二和第三文本字段中输1
。 - 单击
OK
。
此方法将始终创建具有统一坐标(即统一切片距离)的数据集。如果切片距离可变,则应使用StackedSlices
格式。
3.1.4 堆叠式切片文件格式
特别是对于组织学连续切片,通常会在准备过程中丢失切片。为了处理这种情况,Avizo提供了一种与文件格式相对应的特殊数据类型,称为Stacked Slices
堆栈式切片。此文件格式允许使用可选的z-
值读取一堆单独的图像文件对于每个切片。切片距离不需要恒定。图像必须是单通道或Avizo支持的图像格式的RGBA图像(例如TIFF)。阅读器使用ASCII进行操作描述文件,可以用任何编辑器编写。
这是描述文件的示例:
1 | # Avizo Stacked Slices |
关于语法的一些说明:
# Avizo Stacked Slices
是可选的标头,允许Avizo自动确定文件格式。pathname
是可选的,如果图片与目录不在同一目录中,则可以包含路径名说明文件。空格将标记pathname
与实际路径名分隔开。- 在Windows系统上,路径名仍应使用
/
而不是\
。 pixelsize
像素大小也是可选的。该语句在x
和y
方向上指定像素大小。将生成的3D图像的边界框设置为0
到pixelize *
(number_of_pixels-1
像素数-1)。picture1.tif 10.0
是切片的名称及其z-value
,以空格字符分隔。end
表示描述文件的结尾。- 注释用井号(
#
)表示。
3.1.5 处理大磁盘数据
有时,图像数据太大,以致它们不适合计算机的主内存。Avizo可视化模块依赖于数据位于物理内存中这一事实,这意味着无法在Avizo中显示此类数据。为了克服这个问题,提供了一个专用模块它将大多数数据保留在磁盘上,并且仅检索用户指定的子卷。该子卷可以然后使用Avizo中的标准可视化模块进行可视化。
- 使用
File/Open Data As...
对话框并转到$AVIZO_ROOT/data /grain /
- 选择
grain.am
,然后按Open
按钮。 - 选择
Avizo as Large Disk Data
作为格式,然后单击OK
确认您的选择。
数据将在项目视图中显示为常规的绿色数据图标。信息行指示它属于数据类HxRawAsExternalData
。
- 右键单击,附加
Extract Subvolume
模块。 - 在项目视图中选择
Extract Subvolume
模块,然后选取Max width
,Max height
和Max depth
按钮。 - 选中子
Subsample
,然后在Subsample
字段中输入2 2 2
,然后按Apply
按钮。
这将检索数据的降采样版本。从Extract Subvolume
断开grain.view
数据图标通过在grain.view
的主端口中选择NO SOURCE
来提取子卷模块,以及将其用作概述(例如,使用Orhto Slice
)。在Extract Subvolume
的DATA
端口中选择NO SOURCE
子体积不会将grain.view
与Extract Subvolume
断开连接。
- 在
Project View
中选择Extract Subvolume
模块,然后取消选择subsample
检查框。 - 使用查看器中的拖动器框调整子体积的大小。
- 按
Apply
。 - 将
Isosurface
模块附加到grain2.view
(将阈值设置为100)。 - 按
Apply
。
否则,将不显示等值面。
提示:要浏览数据,请选中auto-refresh
复选框以获取Extract Subvolume
和Isosurface
模块。现在,每次重新定位蓝色子体积拖动器时,都会自动更新可视化效果。
加载Avizo, StackedSlices
,和Raw "as Large Disk Data"
是一种方便快捷的浏览方式超出系统内存大小的数据。但是,尤其是对于StackedSlices
,并非总是如此最有效的方法。Avizo可以以特殊格式存储图像数据,以方便从磁盘随机检索数据。
- 从
File
菜单中选择Convert to Large Data Format
。 - 从
Input
输入端口单击Browse
。 - 单击
Add
,转到$AVIZO ROOT/data/grain/
,然后选择grain.am
,然后单击OK
。 - 从
Output
输入端口单击Browse
。 - 进入一个临时文件夹,然后输入您选择的文件名。
- 按
Apply
。
尽管您很可能不会注意到本教程中使用的小图像数据有什么区别,这种用于检索大数据的方法可以显着加速Apply
操作。
3.1.6 使用核心外数据文件(LDA)
核外管理工具可让您加载和可视化大于数据量的数据集安装在系统上的RAM,以及将这些数据集转换为LDA(Large Data Access)文件。这些LDA文件可用于可视化非常大的数据(数百GB),例如地震数据或显微镜数据,使用有限的内存。可以转换原始数据以下类型:Avizo,RawData和StackedSlices(SGI,TIFF,GIF,JPEG,BMP,PNG,JPEG2000,PGX,PNM和RAS光栅文件)。LDA数据允许子体积提取以显示零件的数量,或多分辨率访问以获取完整的子采样视图或精确的局部意见。
图3.4:Avizo as Large Disk Data
用例。对于即时更新,提取的auto-refresh
复选框Extract Subvolume
和Isosurface
模块被勾选。
注意:标准情况下,Avizo最多可支持8GB大小的LDA数据。超过8GB,您将需要Avizo XLVolume扩展。
特别是,本教程将讨论以下主题:
1.调整大小阈值以允许转换
2.加载核外数据
3.原始数据参数
4.核心外转换
5.显示正交切片,切片和3D体积
请按照以下说明进行操作。每个步骤都建立在之前的步骤之上。
图3.5:Convert to Large Data Format
模块的Input
对话框。
3.1.6.1 调整大小阈值以启用转换
在Edit
菜单上,选择Preferences
。这将打开AvizoPreferences
对话框。请选择
LDA选项卡(请参见图3.6)。使用滑块或文本字段,将阈值设置为10MB。加载时如果文件大小大于此阈值,将显示out-of-core data
对话框。
注意:要查看本教程中列出的图像,还应该使用Edit/Preferences
菜单,然后在Layout tab
中打开show viewer in top-level window
显示查看器。
图3.6:Avizo首选项,LDA设置
3.1.6.2 加载核外数据
请使用File/Open Data...
菜单打开文件grain.raw
(请参见图3.7)。该文件位于Avizo安装目录中的$ AVIZO_ROOT/data/tutorials/outofcore/
。大小为16MB,高于定义的阈值。
图3.7:打开out-of-core data
文件。
显示Out-Of-Core data
对话框。显示三个加载选项(请参见图3.8):
图3-8:Out-of-Core data
对话框。
Convert to Large Data Access (LDA) format
:将文件转换为LDA文件,然后加载。
•PRO
:这会生成一个多分辨率文件,允许完整的交互式视图或本地完整的分辨率观看。
•CON
:这很费时,先进行一次初始转换,然后进行真正的转换一次。ReadasExternalDiskData
:从磁盘读取数据块,从而几乎可以连续进行磁盘访问。
•PRO
:无需生成额外的文件。
•CON
:连续访问磁盘。数据集大于4GB时速度较慢。Read complete volume into memory
:将全部数据加载到内存中,然后只访问内存。
•PRO
:适用于平均大小的数据。
•CON
:需要与您的数据集大小一样多的RAM。
请选择Convert to Large Data Access (LDA) format
。然后,在下一个对话框(目标文件),指定LDA目标文件。例如,在一个临时文件夹中的grain.lda(见图3.9)。
图3-9:选择LDA目标文件。
注意:然后可以加载.lda
文件,而无需进行任何转换。
另一个选项允许您以批处理模式执行转换,以便您可以在运行其他进程的同时转换是在后台完成的。
3.1.6.3 原始数据参数
由于输入的数据是raw
,因此请在raw data parameters
对话框中填写以下信息:
下图(见图3.10):
图3-10:Raw data parameters
面板。
数据类型为8-bit unsigned
,尺寸为 256 256 256。
3.1.6.4 内核外转换
在转换过程中,进度栏会显示核心外转换进度(请参见图3.11)。
图3-11:Out-of-core conversion
进度对话框。
此过程分为两个步骤。首先是初始步骤,然后是大约4MB / s(在P4上 2.6GHz,没有SATA磁盘)。您可以根据需要取消该过程。
转换后的文件现在位于Project View
中,可以使用并连接到其他模块。
3.1.6.5 显示Ortho Slice
, a Slice
, and a 3D Volume
右键单击项目视图中的数据图标。在Display
子菜单中,选择Ortho Slice
模块。重复Slice
和Volume Rendering
这些步骤。您还可以显示边界完整容量的盒子。
为了以相同的设置查看此场景,请将grain.raw
转换为grain.lda
(lda需要文件,并使用正确的名称),请加载项目grain.hx
(在同一目录中$AVIZO_ROOT/data/tutorials/outofcore
)。
3.2 可视化3D图像
本节逐步介绍了常规标量字段的可视化,例如,3D图像数据。Avizo能够可视化更复杂的数据集,例如在曲线或四面体网格。不过,在本节中,我们考虑最简单的情况,即具有规则结构的标量字段。每个步骤都建立在之前的步骤之上。特别是以下将讨论以下主题:
orthogonal slices
正交片simple threshold segmentation
简单的阈值分割resampling the data
重新采样数据displaying an isosurface
显示等值面cropping the data
裁剪数据volume rendering
体积渲染
我们首先加载第2部分(入门)中您已经知道的数据:3D图像数据集巧克力棒的 235 x 175 x 295 CT扫描的一部分。
- 加载位于子目录
data/tutorials
中的文件Chocolate-bar.am
。
图 3.12:项目显示(查看器和项目视图)。
3.2.1 Orthogonal Slices
正交切片
可视化3D图像数据最快,在许多情况下是最”标准”的方法是通过提取3D数据集中的正交切片。Avizo允许您显示多个不同的切片在单个查看器中同时定位。
- 将
Bounding Box
模块连接到数据(在Chocolate-bar.am
上使用鼠标右键)。 - 将
Ortho Slice
模块连接到数据。 - 将第二个和第三个
Ortho Slice
模块连接到数据。 - 选择
Ortho Slice 2
,然后在Orientation
端口中按xz
。 - 同样,对于
Ortho Slice 3
,选择yz
方向。 - 将查看器中的对象旋转到更一般的位置。
- 在相应端口或直接在三个端口中更改三个
Ortho Slice
模块的切片编号查看器,如Getting Started
部分所述。
图 3.13:使用三个正交切片显示的巧克力棒数据集。
除了Ortho Slice
模块之外,该模块允许您提取与坐标正交的切片Avizo还提供了用于在任意方向上切片的模块。这个更通用的模块是叫做Slice
。您可能想通过从巧克力条的Display
子菜单中选择它来进行尝试数据弹出菜单。
3.2.2 简单数据分析
Ortho Slice
模块的Colormap
端口的值确定要映射的标量值分别为黑色或白色。如果选择范围,例如30 … 100,则任何小于或等于30将变为黑色,并且所有关联值大于100的像素将变为白色。尝试修改范围。此端口提供了一种确定阈值的简单方法,以后可以用于分割,例如将背景像素与其他结构分开。这可能是最通过使最大值和最小值一致可以轻松完成。
- 卸下两个
Ortho Slice
模块。 - 选择剩余的
Ortho Slice
模块。 - 确保将
Mapping Type
设置为Colormap
。 - 更改
Colormap
端口的最小值和最大值,直到这些值相同并获得合适的分割结果。对于此数据,最小值为410,值为411最大值应该是一个好的阈值。
定量检查数据集强度值的一种更强大的方法是使用数据探测模块Point Probe
或者Line Probe
。但是,我们不会在本简介中讨论这些模块教程。
3.2.3 重采样数据
现在,我们将计算和显示Isosurface
(等值面)。在此之前,我们将对数据重采样。重采样过程将产生分辨率更高的数据集。虽然这是等值面工具不需要工作,它减少了计算时间并改善了渲染效果性能。此外,您将熟悉另一种类型的模块。Resample
模块是一个计算模块。计算模块由红色图标表示。通常,您必须按Properties
区域底部的绿色Apply
按钮开始计算。在你之后按下此按钮,它们将产生一个包含结果的新数据对象。
- 将
Resample
模块连接到数据并选择它。 - 输入用于较粗分辨率的值,例如x = 64,y = 64,z = 64。
- 按
Apply
按钮。
代表重新采样计算输出的新绿色数据图标,名为Chocolate-bar.Resampled
已创建。您可以将此新数据集视为原始巧克力块数据。在重新采样的巧克力棒的弹出菜单中,您会发现完全相同的可连接模块和您可以像原始数据一样保存,导出和加载它。
您可能需要使用Ortho Slice
模块将重新采样的数据集与原始数据集进行比较。您可以简单地选择指示数据连接的黑线并将其拖到其他数据源。只要鼠标指针悬停在有效源上,连接线就会以灰色突出显示。
图 3.14:通过调整Ortho Slice
模块的数据窗口,可以找到合适的阈值分割值。小于最小值的强度值将被映射为黑色,大于最大值的强度值将被映射为白色。
3.2.4 显示等值面
对于3D图像数据集,等值面可用于提供对象3D形状的印象。等值面会包围体积中所有比某些用户定义的阈值亮的部分。
- 关闭
Ortho Slic
模块的查看器切换。 - 将
Isosurface
模块连接到重新采样的数据记录并选择它。 - 将阈值端口调整为450或类似值。
- 按
Apply
按钮。
图 3.15:使用等值面在3D模式下可视化的巧克力棒数据集。
3.2.5 裁剪数据
如果您仅对字段的一部分感兴趣,则裁剪数据很有用。提供了作物编辑器以此目的。其用法描述如下:
- 拆下重新采样的数据
chocolate-bar.Resampled
。 - 激活
Ortho Slice
模块的显示。 - 选择
Chocolate-bar.am
数据图标。 - 单击
Properties
区域中的Crop Editor
按钮。
图 3.16:裁剪编辑器在统一标量字段上工作。它允许您裁剪数据集,通过复制边界来扩大数据集体素,或修改其坐标,即缩放或移动其边界框。
弹出一个新窗口。裁剪数据集有两种方法。您可以输入所需的X,Y和Z坐标的范围进入作物编辑器的窗口或将查看器置于交互模式并直接在查看器窗口中使用绿色手柄调整裁剪框。
- 将查看器置于交互模式。
- 用鼠标左键,选择连接到作物体积的绿色手柄之一。拖动并变换音量,直到包含您感兴趣的数据部分。
- 在
crop editor’s
的对话框窗口中按OK
。
数据集的新维度在Properties
区域中给出。如果您想与此一起工作在以后的会话中裁剪数据记录,应通过选择Save Data As ...
或Export Data As ...
将其保存从File
菜单中。
您可能已经注意到,裁剪编辑器还允许您重新缩放图形对象数据集的边界框。仅通过更改边界框,就不会裁剪任何体素。您也可以使用农作物编辑器以扩大数据集,例如,通过为Min index
字段输入负值。在这种情况下,数据集的第一片将根据需要重复多次。此外,边界框将是自动更新。
3.2.6 体积渲染
体积渲染是一种可视化技术,可以为整个数据集提供3D印象,而无需分割。基本模型基于与以下物质有关的光的发射和吸收视图体积的每个体素。该算法模拟通过该体积投射光线来自预设来源。它确定到达射线的每个体素并发出多少光或被体素吸收。然后,它计算从当前视点可以隐含看到的内容通过当前体积相对于观察平面的放置,模拟视线的投射从观察点发出光线穿过体积。
3.2.6.1 使用体积渲染模块
- 删除
Project View
中的Chocolate-bar.am
数据记录以外的所有对象。 - 选择数据图标并读取
Data info
行中打印的数据值范围(最小最大值:0 … 1910)。 - 将
Volume Rendering
模块连接到数据。 - 加载位于
AVIZO_ROOT/data/colormaps/volrenChocolate.am.
的巧克力色图。 - 更改
Volume Rendering
模块的颜色图:在Colormap
端口中,单击Edit
,然后选择volrenChocolate.am
。(如果您尚未加载颜色图,则仍然可以通过以下方式选择它:单击Edit > Options > Load colormap...
)。 - 将
Volume Rendering
的Colormap
端口中的范围设置为410..1910。 - 选择
olume Rendering Settings
,然后将lighting
更改为none
。
默认情况下,显示发射吸收体积渲染。发出的光量和从体素吸收的颜色是从连接到体积的颜色图的颜色和Alpha值中获取的Volume Rendering
模块。在我们的示例中,对于较小的值,颜色图的不透明性较小。您可以尝试设置色彩图的下限为0或900,以便更好地感受转换功能。
- 确保选择了
Volume Rendering Settings
。 - 将
lighting
设置为Specular
。
3.2.6.2 使用Volren模块
Volren
模块是Avizo中体积渲染的最新功能,并充分利用了现代图形卡的功能。
Volren
模块提供了几种可视化技术:
- 阴影和经典的基于纹理的volum渲染(VRT)。
标准VRT及其带阴影的版本可实现具有灵活色彩的直接3D可视化虚拟照明效果的透明和透明色图可更好地渲染复杂的空间结构并增强细节。 - 最大强度投影(MIP)。
MIP渲染允许可视化最高或最低沿当前视线的数据量中的强度。 - 数字重建的射线照片(DRR)。
DRR模拟射线照片显示从使用加载的体积数据的任意视图。此外,Volren
模块使您能够使用不同的颜色图同时渲染分段区域。可以附加LabelField
到Volren
,标签列表中的每种材料都可以单独呈现。
为了优化在性能方面,当图像之间进行渲染时,图像体积将以较低的分辨率表示。对于较大的图像量,您还可以切换到恒定的Low Resolution
模式(见下文)。Volren
专为与流行的图形加速器技术(例如NVIDIA)一起使用而设计Quadro FX图形板。
- 删除项目视图中的
Chocolate-bar.am
数据记录以外的所有对象。 - 将
Volren
模块连接到数据。 - 选择数据图标并读取打印在第一条信息行上的数据值范围(410 … 1910)。
- 选择
Volren
模块,然后在Colormap
端口中输入范围。
图 3.18:将照明计算应用于体积渲染,从而使表示更易于理解。
注意事项和限制
- 在某些系统上,如果数据集大于可用数据集,则可能会显着降低速度纹理内存(通常为4-16MB)。在这种情况下,请仅选择选项
LowRes
(请参见下面)。 - 使用两个或多个
Volren
模块渲染相交的体积时(多体积渲染),则可能会出现一些渲染错误。如果是多体积渲染,则支持模式的组合是一个MIP和一个MIP或一个VRT和一个VRT(请参阅
模式下)。其他模式和组合可能会导致错误的视觉效果。 - 仅在必须重新计算渲染时才启用
Apply
按钮。
图 3.19:Volren模块可用于生成最大强度投影以及基于发射吸收模型。
3.2.6.3 Volren
,Voltex
和Volume Rendering
模块之间的比较
开发了Volume Rendering
模块以利用现代图形硬件。在旧版图形硬件上渲染可能会失败。在某些情况下,可以通过更新来解决图形驱动程序。否则,可以尝试使用Volren
或Voltex
模块。比较三个模块之间的关系如(图 3.20)所示。
图 3.20:Volren
,Volume Rendering
和Voltex
模块之间的比较。
特征 | Voltex(废弃) | Volren | Volume Rendering |
---|---|---|---|
鼠标采摘 | × | × | √ |
等值面渲染 | × | × | √(单独的模块) |
体素化渲染 | × | × | √(单独的模块) |
DDR渲染(模拟数字重建射线照相) | × | √ | × |
MIP渲染(最大强度投影) | √ | √ | √ |
灯光和阴影效果 | × | √(漫反射,镜面反射) | √(漫反射,镜面反射,增强,边缘,边界,环境,递延,高质量) |
用户定义的光系数 | × | √ | × |
灯光角度控制 | × | √(端口阴影:用户定义) | 菜单视图/灯光创建自定义光源和停用灯 |
投射阴影 | × | × | √ |
多通道现场输入 | √ | × | √ |
色域输入(RGBA) | √ | √ | √ |
标签字段辅助输入和每个标签的颜色图 | × | √ | × |
标签颜色图支持(cy-cling,无内插) | × | × | √ |
多卷支持 | Limited | √ | √ |
支持大于图形内存 | √(砌砖非常有限,具有一致的分辨率) | √(静止时的全分辨率,互动时分辨率低) | √(渐进式自适应分辨率,受内存阈值限制) |
支持大于主内存(RAM) | × | × | √(将数据转换为LDA格式) |
LDA格式支持(大数据访问实现渐进式加载,即时预览,从核心外快速提取) | × | × | √ |
投资回报率框:关注区域 | √ | √ | √ |
自定义ROI | × | √(切角:排除角) | √(体积渲染的ROI框:排除箱,围栏,十字,子体积) |
硬件支援 | 旧显卡 | 现代图形卡过时的驱动程序(例如 英伟达Quadro) | 现代图形卡过时的驱动程序(例如 英伟达Quadro)。需要高级支持着色器需要高级OpenGL功能那个可能无法使用或存在错误特定的图形卡,考虑使用Voltex作为替代品-本机。从Console创建Voltex,键入命令:create HxVoltex |
3.3 将3D和2D视图与正视图(Avizo)组合
本教程需要Avizo许可证(Avizo Lite Edition许可证是不够的)。
在本教程中,您将学习使用Avizo有效可视化和检查3D图像的基础知识:
- 快速开始查看3D图像。
- 使用正交视图管理组合的3D和2D切片视图。
您可以将本教程用作使用Avizo可视化和处理3D图像的快速入门。但是,您应该熟悉Avizo的基本概念才能充分利用本教程。特别是,您应该能够加载文件,与3D查看器进行交互以及将模块连接到
数据模块。Avizo第2章-入门中讨论了所有这些问题。作为补充,本教程中,您还可以查看有关Avizo Lite Edition的第3.2节(可视化3D图像)3D图像可视化技术。
3.3.1 快速入门
这是如何简单地检查具有一个3D视图和2D视图中的3个正交切片的3D图像数据。
我们首先加载教程第2节(入门)中使用的数据:巧克力棒CT扫描的一部分3D图像数据(请参见图 3.22)。
- 将文件
chocolate-bar.am
加载到Avizo安装程序的子目录data/tutorials
中,关系目录。 - 右键单击
Project View
中出现的绿色数据图标。在对象弹出窗口中,选择类别模板(称为模板Templates
),然后双击Ortho Views Template
(或单击Create
),见图3.21。您还可以使用搜索字段并输入的前几个字母Ortho Views Template
,然后在列表中选择模块将自动在Project View
。
图 3.21:“正交视图模板”菜单。
图 3.22:使用Ortho Views模板显示的CT扫描3D图像。
您现在可以尝试进行一些互动了。您可以参考3D导航中的第2节(入门)查看器窗口。
- 在2D查看器中,您可以通过按住鼠标左键拖动鼠标来缩放,或平移用鼠标中键查看。为此,鼠标光标的形状应放大玻璃图标,否则按[ESC]键或使用工具栏按钮切换到查看器导航模式。
- 在3D查看器中,您可以旋转视图。为此,鼠标光标形状应为手形图标,否则按[ESC]键或使用工具栏按钮切换到查看器导航模式。
- 在
Ortho Views
模块的Properties
面板中,可以拖动控制切片的滑块数。 - 您也可以在2D视图中拾取十字线,以移动相应的切片。您可能需要按[ESC]键或按查看器工具栏按钮
Interact
切换到pick interaction
模式。
在转到下一个教程步骤之前,需要进行一些解释。
您使用的所谓的Template
菜单在Project View
中创建了一组display
模块(表示形式)附加到数据:
Ortho Views
,用于管理4个查看器窗口布局中三个正交切片的显示。下一节将对其进行更详细的描述。Intensity Ranges Contours
叠加模块在正交切片上显示一组轮廓对应于Intensity Range Partitioning
,概念范围在本章后面介绍。Volume Rendering
模块在左上角的查看器窗口中显示3D图像。Isosurface
渲染模块,最初在查看器窗口中不可见。
在Project View
中选择一个模块时(通过在Project View
中单击模块图标),其控制参数(称为ports
)显示在Properties
面板中。要选择多个模块,单击时按住Shift键。
提示:有关如何创建模板项目的信息,请参阅第11.1.1章(模板项目)。
3.3.2 使用正交视图Ortho Views
管理组合的3D和2D视图
Ortho Views
模块扩展了Avizo中的切片可视化效果。使用Ortho Views
模块,三个同时显示不同的轴向视图,每个轴向视图都在各自的轴向锁定的查看器中。
创建Ortho Views
后,查看器面板将切换为四查看器布局。全部三个正交全部视图显示在第一个左上方的查看器中。最初的行为是让右上方的观看者显示XY视图,在XZ视图的右下方,在YZ视图的左下方。
显示的切片是同步的,因此当切片索引更改时,更改将反映在所有合适的视图。
您可以通过四种方法尝试更改显示的切片的切片索引:
- 在属性端口中拖动滑块。
- 直接在3D查看器中拖动切片。
- 在2D查看器中拖动切片指示符线(十字线)。如果您拖动绿线,则绿色概述的切片将发生变化。
- 在四个查看器中的任何一个中,在按住
Ctrl
键的同时单击鼠标中键:将切片移动到相应的拾取位置。为此,鼠标光标形状应是箭头图标,否则按[ESC]。
切片可用于裁剪3D视图中的表示形式:
- 在
Properties
面板中,单击clip
按钮(小立方体被蓝线分割,请参见图3.23)或Ortho View
的Slice Number
Z端口中(如果滑块在Properties
面板中不可见,在Project View
中选择Ortho Views
模块)。然后,您将看到3D切割体积渲染表示(请参见图3.24)。 - 通过上述任何方法移动Z切片,并查看更新的3D视图。
- 旋转3D视图(有关导航,请参见上文)。剪裁的一面始终面向相机。请注意,与
Ortho Views
的标准行为相反,这是Ortho Views
的特定功能,Avizo中其他切片模块中的剪切平面。
图 3.23:Ortho Views模块中的“可见性”按钮和“剪辑”按钮。
图 3.24:正交视图裁剪。
可以使用Avizo以标准方式控制2D和3D查看器中切片的可见性,方法是:单击Project View
中图标中的橙色方形按钮,或在Project View
属性面板。有关项目视图的信息,请参见第10.1.9章。
- 您可以隐藏切片,强度范围等高线和十字准线,并显示体积渲染,如图3.25所示。您将需要使用
Ortho Views
,Bkg Properties
,Intensity Ranges Contours
和Volume Rendering
模块如图3.26所示。
图 3.25:具有正交视图的可见性控件。
图 3.26:模块图标中的可见性按钮。
更进一步:这里是使用正交视图的更多提示,请参阅相关的参考帮助更多细节。
- 要退出
Ortho Views
模式,只需删除Ortho Views
模块即可。您也可以点击在查看器工具栏按钮上,将活动查看器(带有白色框)设置为Single Viewer
。Ortho Views
仍然处于活动状态:再次单击Single viewer
按钮以循环浏览其他视图查看器,然后按Four viewer
按钮以还原Ortho Views
布局。 - 叠加表示可以与图像切片组合,如强度所示本章前面所述的
Ortho Views
模板的范围轮廓。你也可以通过Bkg Properties
模块的Layer order
端口控制叠加层的显示顺序与Ortho Views
关联。 - Avizo能够灵活地将多个数据和表示形式合并为一个或多个视图。
Ortho Views
也是如此:可以使任何3D表示形式可见,在2D视图中被裁剪或移动到切片的背景(如下图所示)。 Ortho Views
也可以附加到曲面数据,请参见图3.27。
图 3.27:使用“正视图”显示的提取表面。
注意:专案中只能使用一个Ortho View
,因此您无法附加第二个Ortho View
从数据对象菜单查看。但是,可以通过以下方式通过更改Ortho View
可视化的数据,将连接从一个图像更改为另一图像。为此,您可以将连接线拖入Project Graph
视图,将Ortho View
图标拖动到另一个数据项,或更改数据连接Properties panel
中的端口。
3.4 强度范围分区
本教程需要Avizo许可证(Avizo Lite Edition许可证是不够的)。
灰度图像中编码的强度值通常表示有关对象的一些关键属性。例如,在X射线CT图像中,强度值与质量密度相关。Avizo的Intensity Range Partitioning
工具可让您为不同强度范围图片分配一些含义。
例如,在岩石样品的CT扫描中,不同的强度范围可能表示:
- 周围的空气,毛孔(空隙),
- 水,
- 粘土,
- 矿物。
鉴于在工业零件的CT扫描中,强度可能会区分以下材料:
- 周围的空气,毛孔(空隙),
- 铸铝部件,
- 铸钢部件,
- 夹杂物。
Avizo的强度范围分区工具可让您定义范围,以便可视化和计算模块可以利用此预定义的标识。强度范围分区用于Avizo中的几个位置。例如,它允许将端口描绘的范围调整为特定范围(大部分时间代表一种材料)。它还大大简化了可视化设置。它是可能是因为强度范围分区包含“外部”属性,可以将其设置为任何范围。然后,很容易将“可用”范围定义为不属于“外部”范围的所有内容。
在本教程中,您将学习如何定义和使用Intensity Range Partitioning
强度范围分区以及它如何影响。例如,使用引擎CT扫描的体绘制表示进行Volume Rendering
可视化,以前的教程中已经使用的块部件。
- 让我们从头开始并创建一个新项目(在
File
菜单中选择New Project
)。 - 在
Avizo Edit
菜单中选择条目Preferences
,并确保Intensity Range Parttioning
设置选项根据图3.28所示的默认设置进行设置:自动猜测两个加载的图像数据中的材料密度(即强度中的空隙和实心范围/区域)。
图 3.28:Avizo首选项面板。
- 加载位于安装目录的子目录
data/tutorials
的文件motor.am
。 - 将
Volume Rendering
附加到数据:右键单击项目中出现的绿色数据图标查看,单击Volume Rendering
,然后按Create
,请参见图3.29。
图 3.29:体积渲染网络。
如第3.2节(可视化3D图像)所述,Volume Rendering
模块会显示颜色和不透明度取决于颜色映射端口的输入数据体素的位置。配色图像默认值(volrenWhite.am)一样,强度值低于下限(小于最小的颜色映射端口是完全透明的,请参见图3.30。更改此最小值是一种简便的方法,可以过滤掉3D体积图像中无效或低密度材料的部分。在这里已根据数据上的Intensity Range Partitioning
预设设置了颜色图边界下面。
图3.30:使用默认强度范围分区查看引擎块。
- 在
Project View
中选择Volume Rendering
模块,然后在Properties
面板中查看其颜色图端口。(请参阅图3.31)。
图3.31:“体积渲染属性”面板。
- 更改颜色图端口中的最小边界:根据以下步骤调整
Volume Rendering
。提示:使用虚拟滑块连续更改值:按住Shift
键的同时您单击并在数字文本字段中拖动鼠标。
Intensity Range Partitioning
旨在提供与某些强度范围匹配的预设。这个范围可以轻松选择以显示给定的数据集。Avizo可以自动猜测阈值分离通过分析输入的强度分布直方图来确定不同密度的相或材料数据。在上面的示例中,Avizo确定了将空隙和固体分开的最佳阈值。
- 在
Project View
中选择数据对象motor.am
,然后在Properties
面板中查看数据信息。(请参阅图3.32)
图3.32:数据信息中的强度范围分区。
您可以看到:数据强度的实际min-max
,定义强度边界的data window
体积渲染的颜色图端口隐藏和使用的外观,以及为此数据定义的范围。
- 通过单击其切换按钮(带有直方图)来调用
Intensity Range Partitioning editor
标尺符号在Properties
面板中的数据标题旁边,如下所示。您可以看到定义的数据集的范围(请参见图3.33)。
图3.33:强度范围分区编辑器。
- 按
Show range distribution
按钮以显示数据直方图,此处分为两部分区域/范围如图3.34所示。
图3.34:强度范围分区直方图。
如您所见,在直方图的局部最小值处可以找到相/材料之间的间隔。
提示:其他工具可用于自动确定阈值。请参阅Auto Thresholding
模块。
注意:Intensity Range Partitioning
有助于使可视化更加容易。为了达到理想的质量有关感兴趣特征的图像,足以进行定量分析。为了识别不同相/材料的速率,特别是具有噪声,image filtering and segmentation
或可能需要伪像,图像过滤和分割工具。有关更多信息,请参见下一章图像分割。
实际上,在此示例中使用的发动机缸体至少由两种材料构成,这些材料存在明显差异入射密度和X射线吸收:铝和钢插件。
修改强度范围分区,如下所示:
- 将范围数设置为3,然后按检测。您可以看到一个新的滑块端口和一个更新的具有新区域/范围的直方图,如图3.35所示。
图3.35:3个强度范围的直方图。
- 在Ranges港口更改名称:外部铝钢
- 将“铝”设置为
Exterior range
:它将从上面定义的data window
中排除,并且用作显示模块的默认边界。默认情况下设置了第一个名为Exterior
的范围作为外部范围。 - 按
Properties
面板底部的Apply
按钮。data info
和编辑器应为更新如图3.36所示。
图3.36:修改强度范围分区。
- 现在,您可以通过再次单击
Intensity Range Partitioning
编辑器开关来关闭编辑器按钮。 - 从当前项目中删除
Volume Rendering
模块:选择Volume Rendering Settings
模块;按Delete键或将图标拖到Project
视图中的垃圾箱。 - 再次将
Volume Rendering
模块附加到数据:铝部件现在已隐藏,如图3.37所示,仅留下较高密度的钢可见。
图3.37:数据窗口现在选择高密度材料。
- 在
Volume Rendering
模块的颜色图端口中,您可以按Edit
按钮或向右在阴影区域中单击以在菜单中选择特定范围:整个数据(最小-最大),数据不包括外部范围或定义的特定范围的窗口(请参见图3.38)。例如,选择铝将恢复整个块。
图3.38:在颜色图端口中调整范围。
更多提示:
- 如果愿意,可以在
Preferences
中禁用Intensity Range Partitioning
以获取行为是先前Avizo版本的版本,并且使用默认范围来设置数据的最小-最大(或数据窗口,如果定义为数据参数)。 - 您可以使用首选项来设置要在数据中检测到的多个阶段/材料。请记住,检测依赖于图像直方图的形状。Avizo可以自动猜测可能会检测到的范围数,但是如果Avizo可以覆盖它找不到预期的范围。
- 所有使用颜色图或范围滑块端口(例如
Isosurface
)的模块都可以利用Intensity Range Partitioning
。 - 提示:保存您的数据时,数据窗口和范围被定义为持久数据参数数据转换为Avizo格式(请参见第10.2.7节”数据参数”)。
3.5 3D图像分割
通过遵循此分步教程,您将学习如何以交互方式创建细分3D图像。分割为图像的每个像素分配一个标签,该标签描述了区域或与像素关联的材料(例如,材料1或材料2)。细分存储在一个单独的数据对象,称为Label Field
。分割是曲面模型的前提生成和精确定量(例如体积测量)。
Segmentation Editor
是一个工作室,可为交互式段提供专用的用户界面,处理任务。分割数据时,您可以在分割室和其他工作室之间切换您可以随时单击Workroom Toolbar
工具栏中的相应标签。
取决于输入内容,细分过程可以是自动,半自动或交互式的图片和所需结果。
本教程介绍了每种方法,并包括以下步骤:
- 创建一个空的
Label Field
。 - 在
Image Segmentation Editor
中交互式编辑标签。 - 测量分段结构的体积。
- 一种称为阈值分段的替代分段方法。
- 有关细分的更多提示。
3.5.1 交互式图像分割
- 从目录
data/tutorials
中加载文件motor.am
。 - 右键单击绿色图标,然后从
Image Segmentation
选择Edit New Label Field
。
这将自动启动细分工作室,从而替换Project View
和左侧的Properties
面板,右侧的3D查看器。同时且当前不可见,一个新的数据对象将被添加到Project View
中,以保存细分结果。这是要保存的数据对象。默认情况下,Segmentation Editor
在四视图模式下运行。在此模式下,将显示具有XY,XZ和YZ方向的三层查看器以及一个3D视图。另外,也可以使用单视图或两视图布局。在两个查看器的布局中(水平在单查看器模式下,将切片查看器与3D查看器结合使用(堆叠或并排)显示图像的一个(XY)切片。您可以通过选择以下任一方法来更改切片的方向从Segmentation / Orientation
菜单中选择另一个方向,或者在查看器工具栏多次以循环显示不同的2D视图(XY,XZ和YZ)和3D视图。
Segmentation Editor
的工具显示在Project View
和Properties Area
中区域正常显示。
- 单击查看器工具栏中的“四个查看器”,切换到四查看器布局。
- 在XY视图中,使用底部的滑块滚动切片。转到第30条,您将看到六个明亮的结构。
- 如有必要,单击与查看器右上角的
Zoom Tool
关联的-整个切片的视图。 - 单击
Segmentation Editor
主面板的Tools
区域中的画笔图标。 - 用鼠标标记其中一个结构。如果出现以下情况,请按住
CTRL
键取消选择不正确的像素必要。 - 完成后,在
Materials
列表中选择Inside
。然后在Selection
组中单击+
。
现在将先前选择的像素分配给材质Inside
。右键单击材料中的Inside
以选择其他绘制样式(例如,虚线)。
- 单击
Materials
列表,然后从右键菜单中选择New Material
。 - 使用画笔标记第二个结构,在
Materials
列表中选择新材料,然后分配该结构的像素(请参见图3.39)。
图3.39:使用一个切片选择两个结构。
- 转到第31条,并通过分割相同的两个结构进行练习。
提示:如果您希望使用一个大视图而不是四个小视图,请在查看器工具栏。要循环浏览四个视图中的每个视图,请重复单击Single Viewer
。回来到四查看器模式,请单击Four Viewers
。
如果切片之间的变化很小,请使用插值。
- 转到切片30,并使用画笔标记右上角的结构。转到切片35并标记相同的结构。
- 从菜单栏中选择:
Selection/Interpolate
。 - 滚动浏览数据集。您将看到现在也选择了切片30到35。
- 要将所有切片的选定像素分配给
Inside
,请在Materials
列表中选择它,然后在选择组中单击+
。 - 在片段35和45之间重复该过程。
- 对左侧结构之一重复该过程。
提示:
- 分割时,建议您经常保存分割结果。去做因此,通过在
Workroom Toolbar
中单击Project
切换到Project View
。然后选择图标,然后从Avizo File
菜单中选择Save Data As...
或Export Data As...
。在工作间工具栏中单击细分,以返回到Segmentation Editor
工作室。 Brush Tool
可能是最基本的细分工具。可以注意到,编辑器提供了Segmentation Editor
帮助页面上介绍的其他工具和功能。- 有一些有用的键盘快捷键,包括
+
(-
)可将选择添加(移除)到(从)material,SPACE
和BACKSPACE
更改切片编号,而d
更改材料绘画风格。 - 您可能想给材料赋予更有意义的名称或不同的颜色。为此,请单击材料名称并输入新名称,或双击名称左侧的颜色按钮然后在
Color Dialog
中选择其他颜色。
3.5.2 数量统计统计
分割结构后,您可以轻松地测量其体积:
- 在主菜单中,选择
Segmentation/Material Statistics ....
。
对话框中会出现一个表格,列出每种材料的体积。Project
工作室的Tables
面板中提供了相同的统计信息。
- 通过单击工作室工具栏上的
Project
来激活Project View
。 - 右键单击标签图像的图标,然后选择
Measure and Analyze/Material Statistics ...
。 - 单击
Material Statistics
下的Apply
以创建一个motor.MaterialStatistics
。在Project View
。 - 选择此对象,然后单击
Show
。
应用程序窗口中的新面板显示了类似的表格。* .MaterialStatistics
对象可以保存为文本(* .txt
),逗号分隔值文件(* .csv
)或Micrsosoft XML电子表格(* .xml
)。
注意:如果单位管理(请参见Edit/Preferences/Units
)已关闭,则值的物理单位体积列中的对象是隐式的,体素大小仅在此隐式物理范围内缩放对象单元。列标题中未显示物理单位。对于motor.am
,体素大小为在m
因此,“体积”列中给出的数字必须读为m^3
。如果Units Management
是打开时,指定为Display units
的物理单位显示在列标题中。
3.5.3 阈值分割
本节介绍了一种细分方法,该方法可能需要较少的手动交互,但通常需要更高质量的图像。除了优化图像采集流程之外,这也可以通过在执行分割之前对图像进行滤波来实现。欠佳条件下,仅基于的灰度值就可以自动实现令人满意的分割图像数据。
第一步是将对象与背景分离。通过将体素分类为基于强度和体素值的前景和背景体素。
- 通过从主菜单中选择
Project/Remove All Objects
,清除Project View
区域。 - 从
data/tutorials
目录中加载motor.am
数据记录。 - 将
Image Segmentation/Multi-Thresholding
模块连接到数据图标并选择它。 - 在端口
Exterior-Range1
的文本字段中键入85。您还可以确定其他阈值,如Image Data Visualization
教程中所述将旧外观与内部分开。 - 单击
Apply
。
通过此过程,将每个低于阈值的体素值分配给Exterior
,并将每个体素大于或等于阈值的值将分配给Inside
。但是,这可能会导致体素标记的对象不属于对象,但体素值高于阈值。设置remove couch
选项来抑制它,以确保仅将最大的相干区域标记为前景(Inside
)和所有其他体素都分配给背景(Exterior
)。
单击Apply
创建一个新的数据对象motor.labels
。该数据对象是一个Label Field
,具有相同的尺寸为motor.am
,并根据每个像素包含Range1 or Exterior
标签细分结果。
3.5.4 细化阈值分割结果
您可以使用Avizo的细分编辑器来可视化并交互式地编辑标签字段。使用分段编辑器可平滑数据以消除对象表面的噪声。
- 选择
motor.labels
图标,然后在Properties
区域中单击Segmentation Editor
。
这会自动激活Segmentation Editor
工作室。
- 在YZ视图中,使用底部的滑块选择切片206(请参见图3.40)。
图3.40:分段CT扫描数据。
- 通过单击缩放工具(最后一个工具中的+或-按钮)选择合适的放大倍率。工具区域)。
图像分割编辑器显示要分割的图像数据(motor.am
)以及灰色Mos中包含的Ranges1
和Exterior
区域之间的边界的轮廓tor.labels
数据对象。如您所见,边界不平坦,周围有小岛通过青色的轮廓。这就是我们现在要改进的地方。
- 从
Segmentation
菜单中选择Remove Islands...
。作为响应,将出现一个对话框。 - 在对话框中,选择
All slices
模式。然后点击突出Highlight all islands
以突出显示所有小于或等于15个体素的岛。 - 单击
Apply
将所有孤岛与其嵌入的材料合并。 - 然后单击
Close
以关闭Islands Filter
窗口。 - 要进一步清理图像,请从
Segmentation
菜单中选择Smooth Labels...
。另一个对话框出现。 - 选择
3D volume
模式,然后单击Apply
以执行平滑操作。 - 单击
Close
按钮以关闭Smooth Labels
窗口。 - 要检查过滤器操作的结果,请逐个标签浏览标签图像。在除了切片滑块外,您还可以使用
cursor-up
和cursor-down
光标键。 - 使用工作室工具栏返回到
Project View
。
3.5.5 有关细分的更多提示
Avizo包括可以创建标签图像的不同工具。
Image Segmentation/Multi-Thresholding
。该模块通过以下方式自动创建标签图像阈值化。另请参见Segmentation Editor
中的Selection/Threshold
菜单。Image Segmentation/Edit New Label Field
。细分编辑器提供了自动,半自动和交互式工具。Compute/Connected Components
。该模块搜索连接的区域。Image Segmentation/Correlation Histogram
。此模块可以根据相关信息创建标签图像通常在配准后,在两个图像集中设置一个区域。Image Segmentation/Interactive Thresholding
以及Avizo的其他工具。此扩展提供了先进的定量工具,包括对象分离和标记。参阅Advanced Image Processing
,Segmentation
和Analysis tutorials
。
在进行分割之前,请考虑使用以下方法提高图像质量并减少数据集中的噪声:
Volume Edit
模块Visualizing and Processing 2D and 3D Images
教程,其中提供了进一步的滤镜和工具。
以下是有关细分编辑器的一些提示。
- 组合不同的工具。切记适当地切换2D / 3D。
- 调整
Display Control
设置。 - 使用细分过滤器
Smooth labels/Fill holes/Remove islands
。 - 使用
Selection/Invert
(’I’键)并将选择合并为材料(replace/add/subtract
)。 - 在片段之间使用插值(
Selection/Interpolate
菜单)。 - 使用四个查看器可以使分割过程更容易。
- 您可以在所有查看器(包括3D查看器)中从选择视图中删除错误的零件。
- 切记锁定材料,以防止错误转移先前选择的材料。
- 锁定的材料可用作面罩。这对于3D操作很有用,可防止在您不想添加到材料中的区域。也可以使用此过程,使魔术棒工具仅在指定的切片之间起作用。
- 如果要选择多种材料,请按住
SHIFT
键并选择所需的材料从材料列表中。如果您选中了Show in 3D
复选框,那么您还将获得一个3D选择。 - 如果要将相同选择复制到相邻切片,请按住
SHIFT
并按up
/down
箭头。 - 在
Selection
区域中使用标签显示当前选择的状态。这个标签可以显示三种不同的消息:No selection
,Active selection
, 和Hidden selection
。最后两个状态指示平面选择是显示在2D查看器之一中还是位于在不同的切片中。 Masking
功能允许用户通过设置其范围和可见性来控制遮罩在2D/3D查看器中,并在某些工具中启用/禁用它。此Masking
功能是可选的Brush
和Lasso
工具,并在Magic Wand
,Threshold
和TopHat
工具。TopHat
工具在组合阈值以分割低对比度或较薄时非常有用在非均匀背景下的功能。Segmentation Editor
还有其他有用的键盘快捷键keyboard shortcuts
。
在Watershed Segmentation
中可以找到使用Watershed
工具进行的高级细分教程。
3.6 用于光学显微镜的反卷积
Avizo的反卷积模块提供了功能强大的算法,可提高Avizo的质量由3D广角和共聚焦显微镜记录的显微图像。两种不同的方法支持,即基于迭代的所谓非盲和盲反卷积方法最大似然图像复原。在第一种情况下,测量或计算的点扩散函数(PSF)是必需的。在第二种情况下,将估计PSF以及数据本身。
反卷积文档的组织如下:
- 关于图像反卷积的一般性评论
- 数据采集和采样率
- 标准反卷积教程
- 盲反卷积教程
- 珠子提取教程
- 性能问题和多处理
提供以下模块:
- 提取点扩散功能-从磁珠测量中获得PSF
- 卷积-卷积两个3D图像
- 正确的Z下降-校正z方向上的衰减
- 校正背景和平面场-校正背景和平面场
- 反卷积-实际的反卷积前端
- 傅立叶变换-计算FFT和功率谱
- 生成点扩散函数-计算理论PSF
例子:
- 共聚焦数据集
- 广角数据集
3.6.1 关于图像反卷积的一般说明
反卷积是一种用于去除通过光学记录的一系列图像中的散焦光的技术切片显微镜。旨在研究3D生物物体,光学切片显微镜通过创建荧光物体的多个图像(光学部分)来工作,每个图像具有不同的图像聚焦平面。但是,除了焦点对准的结构外,图像通常还包含焦点对准的区域物体其他部分的光线会引起雾霾和严重的轴向模糊。甚至对于共聚焦激光扫描显微镜,其中大部分散焦光从图像中去除通过针孔系统。从数学上讲,可以描述任何显微系统产生的图像作为样本的理想无模糊图像和显微镜的所谓点的卷积扩散函数(PSF),即理想点光源的图像。与这个过程相反,称为反卷积,只要点扩散,就可以获得标本的去模糊图像函数是已知的,或者至少可以估计。
Avizo解卷积模块主要提供了两种强大的迭代最大卷积算法,似然图像恢复算法,即非盲人和盲人。区别在于它们之间的区别是,在第一种情况下,使用测量或计算的点扩展函数,而在第二种情况,PSF与数据本身一起估算。最大似然图像复原可以被视为3D光学截面反卷积的事实上的标准。虽然从计算方面上讲来说,该方法很昂贵,能够显着提高图像质量。在同一时间时间,它对于噪声伪像非常鲁棒且不敏感。但是,应注意的是,尽管可以拒绝大部分散焦光,但绝不能将其全部拒绝。因此,一些图像中残留明显的雾度。此外,图像在z方向,无法通过任何反卷积算法删除。
乍一看,人们可能会想为什么非盲和反卷积反卷积算法都可以提供; 盲反卷积似乎更通用,因为PSF是自动计算的。一答案是盲反卷积在计算上比非盲迭代还要昂贵最大似然图像复原。另一个答案是在盲反卷积算法中,仅在施加严格约束的情况下,才能计算出PSF的有意义的估算值。例如,盲反卷积问题的简单解决方案将是与输入相同的图像图像和具有理想增量峰形状的PSF。显然,此解决方案根本没有用。因此,例如,如果要对共聚焦数据进行反卷积,则算法将实际的PSF拟合为它看起来像共焦显微镜可能测量的PSF。更确切地说,拟合度为限制与实验参数(介质的折射率,物镜的数值孔径和体素大小)。有时这可能导致错误的结果,例如,当显微镜的共焦针孔孔径没有足够减小时在共聚焦图像采集过程中,在这种情况下,显微镜的行为实际上并不像真实的共聚焦显微镜。事实上,您应该尝试提供最佳结果的方法对于您自己的图像数据,可通过实测或实测进行盲解卷积或非盲解卷积自动计算的PSF。
3.6.2 数据采集和采样率
为了在对显微图像进行反卷积时获得最佳质量,一些基本准则图像采集过程中应遵守。即使这些指南中的某些指南能够获得良好的结果,没有严格遵循规则,但总的来说,获得满意结果的机会会增加。
下面我们讨论最重要的建议。
调整扫描图像量
感兴趣的区域应位于图像体积的中间,因为显微镜通常在该区域具有最小的像差,这有助于避免可能的边界在反卷积过程中可能会出现伪影。特别是对于宽数据重要的是要记录实际样本下方和上方足够大(最好是空白)的区域。理想情况下,该区域应与样品本身一样大。例如,如果样本覆盖100
z方向的微米范围内,扫描图像的体积应在50微米以下样品至其上方50微米处。
选择正确的采样率
采样率取决于x和y方向上的像素大小以及距离两个后续光学部分之间的距离,均以微米为单位。一般来说,图像如果数据明显过采样,即像素或光学部分空间不清晰,则反卷积效果最佳。小于要求。最大所需采样距离(奈奎斯特采样,在 R. Heintzmann. Band-limit and appropriate sampling in microscopy, chapter 3, Vol. III, in: CellBiology: A Laboratory Handbook, Julio E. Celis (ed.), Elsevier Academic Press, 29-36, 2006)数据中的歧义可以从傅里叶空间屈服的考虑中获得
其中λ
代表波长,NA
代表显微镜的数值孔径。类似的想法对于相邻图像平面之间的最大距离,会产生以下结果:
其中n表示目标介质的折射率,α表示确定的孔径半角由NA = n sin(α)。
对于共聚焦显微镜,面内采样距离和轴向采样距离都需要从理论上讲大约要小2倍。但是,对于大多数人来说,此要求过于严格在实际情况下,甚至在宽视场情况下,通常也可以满足上述要求足够。
光学部分的总数是通过将图像体积的高度除以取样贴合距离。应当指出,如果采样距离为不严格匹配,但是匹配它们可以提高获得良好结果的机会。一般而言,对对象进行采样比对对象进行欠采样所造成的危害要小,但有一个例外:在共聚焦的情况下数据,如果盲反卷积,则采样距离不应比所示的小很多,算法或非盲反卷积算法以及理论上计算出的共焦使用PSF。否则,无约束的最大似然算法和数据中的噪声可能会导致结果不令人满意。
黑电平和饱和度
在从显微镜的相机上获取图像之前,应在以下条件下调节光强度:这样可以避免黑色或白色的饱和像素。饱和像素是指钳制为黑色或白色,因为它们的实际强度值不在能被描绘的强度。在任何情况下,饱和都意味着信息丢失,因此妨碍了后处理或反卷积。同时,应避免高背景水平会降低成像系统的动态范围,反卷积效果会更差。这个表示未显示任何荧光的空白区域应显示为几乎黑色。背景当执行磁珠测量以提取出一个零点时,接近零的水平尤其重要。实验点扩散函数。讨论的细节是有关磁珠提取的单独教程。
3.6.3 标准反卷积教程Standard Deconvolution
本教程说明了如何在Avizo中对3D图像数据集进行反卷积。假设读者已经熟悉Avizo本身的基本概念。如果不是这种情况,则强烈建议先阅读标准的Avizo教程。在本节中,以下主题被覆盖的:
1.反卷积的前提
2.重新采样测得的PSF
3.对图像数据集进行反卷积
4.计算理论PSF
例如,我们将使用Avizo提供的共聚焦测试数据集(polytrichum.am)反卷积模块。数据文件位于目录AVIZO ROOT/data/deconv
中。
- 加载数据集
polytrichum.am
。 - 例如使用“图像正交投影”模块对其进行可视化。
数据集显示了苔藓植物群落的孢子中的四个叶绿体。
反卷积的先决条件
除了图像数据本身,对于标准的非盲反卷积算法,所谓的pointspread function (PSF)
还需要扩展功能。PSF是单点光源的图像,也可以是闭合图像近似,单个发荧光的亚分辨率球的图像。PSF图像可以是根据理论计算得出(请参阅下文),也可以通过测量获得。在后一种情况下,微小
在与实际物体相同的条件下记录所谓的珠子。这意味着相同使用相同的物镜,相同的染料和波长以及相同的浸没介质。通常,对多个珠的图像进行平均以获得单个PSF的估计值。Avizo提供了一个模块称为Extract Point Spread Function
简化此过程。该模块的使用将在有关珠提取的单独教程。此时,让我们简单地从文件中加载测得的PSF。
- 加载数据集polytrichum-psf.am。
- 使用
Image Ortho Projections
模块将其可视化。
PSF显示为位于图像体积中间的亮点(图3.41)。它是PSF准确居中很重要。否则,反卷积数据集将偏移尊重原始图像。同样重要的是,PSF在边界处淡出为黑色。如果情况并非如此,需要使用算术模块调整PSF图像的黑电平。最后,无论是PSF还是要进行反卷积的图像都不应显示强度衰减伪影,即,由于其他切片中过多的光吸收而导致平均强度降低的图像切片。如果如果存在此类伪影,则可以使用Correct Z Drop
模块将其删除。
图3-41:Polytrichum-psf.am的最大强度投影。
重测测得的PSF
接下来,选择PSF和图像数据。您会注意到两个对象的体素大小都不相同。建议在反卷积之前调整PSF和图像数据的不同体素大小使用Resample
模块进行稀释。反卷积模块本身也考虑了不同的体素大小,但它是通过使用具有三线性插值的点采样来实现的。只要可以PSF的体素尺寸大于图像数据的体素尺寸。但是,在我们的案例中,PSF小于图像数据的PSF,即PSF的分辨率更高。使用Resample
模块在这里提供了更准确的结果,因为所有样本将使用Lanczos内核。
- 将
Resample
模块连接到polytrichum-psf.am
。 - 将
Resample
模块的Reference
端口连接到图像数据集polytrichum.am
。 - 在
Resample
模块的Mode
端口中,选择voxel size
(见图3.42)。 - 通过按
Apply
按钮重新采样PSF。
图3.42:Polytrichum-psf.am的最大强度投影
voxel size
选项意味着PSF将在具有完全相同的体素的网格上重新采样size作为连接到Reference
端口的图像数据集。而原始的PSF有一个分辨率为12 x 12 x 30体素,重新采样的像素只有12 x 12 x 16体素。但是,程度现在,z方向上的单个体素的像素更大。
解卷积图像数据集
获得合适的PSF后,我们准备对图像数据集进行反卷积。这可以是通过将反卷积模块附加到图像数据来完成此操作。
- 将
Deconvolution
模块连接到polytrichum.am
。 - 将
Deconvolution
模块的PSF Kernel
端口连接到重新采样的PSFpolytrichumpsf.Resampled
。PSF内核端口在模块属性的Microscope
部分中。
一旦解卷积模块连接到其两个输入对象,则需要一些其他参数进行调整(有关这些参数的详细讨论,请参见反卷积参考解卷积模块本身的文档)。图3.43显示了项目视图。设定用于反卷积模块:
图3.43:连接到polytrichum.am的Deconvolution(反卷积)模块。
Border width
边界宽度:为了进行反卷积,必须通过保护带区域来放大图像数据。除此以外,
可能会出现边界伪影,即,可以将来自数据一侧的信息传递到另一侧。无需使边界大于PSF的大小。但是,如果数据集在边界,较小的边框宽度就足够了。在本例中,让我们选择边框值0、0,以及在x,y和z方向上为8。Iterations
迭代次数:反卷积算法的迭代次数。让我们在这里选择20的值。Initial estimate
初始估计:指定反卷积算法的初始估计。如果选择const
,则最初使用恒定图像。这是最可靠的选择,即使输入也能产生良好的结果数据很吵。我们在此保留此选项。Overrelaxation
过松弛:过松弛是一种加速迭代去卷积收敛的技术净化过程。在大多数情况下,速度和质量之间的最佳折衷是固定的过松弛。因此,我们也保留此选择。Method
方法:在标准(非盲)和盲反卷积之间进行选择。让我们指定标准选项在这里。
实际的反卷积过程通过按Apply
按钮开始。请现在按此按钮。在现代计算机上,解卷积大约需要10秒钟。在反卷积期间,进度条将通知您有关操作状态的信息。另外,每次迭代之后,都会有一条消息在Avizo控制台窗口中打印,指示数据更改的数量。如果改变似乎足够小,您可以按“停止”按钮终止反卷积过程。但是,请注意,停止按钮在两个连续的迭代之间仅被评估一次。
解卷积完成后,一个名为polytrichum.deconv
的新数据集将出现在Project View
中。您可以通过移动Image Ortho Projections
连接线来查看反卷积数据从polytrichum.am
到polytrichum.deconv
。
计算理论PSF
有时很难进行磁珠测量,因此无法轻松进行实验性PSF获得。在这种情况下,可以使用理论上的PSF代替。Avizo提供了模块Generate Point Spread Function
,可让您计算理论PSF。该模块可以通过以Images And Fields / Generate Point Spread Function
从Project >Create Object...
。
创建模块后,必须再次输入一些参数。resolution
和voxel size
通过将PSGGen模块的Data
端口连接到图像数据,可以最容易地指定大小即将卷积。在我们的情况下,请将此端口连接到polytrichum.am
。
为了生成PSF,您还需要知道显微镜物镜的数值孔径,发射光的波长(以微米为单位输入!),以及浸入介质。在我们的测试示例中,这些值为NA = 1.4,lambda = 0.58和n = 1.516(油介质)。另外,将显微镜模式从宽视野更改为共焦。
按下Apply
按钮后,计算出的PSF在项目中显示为标有PSF的图标视图。您可以使用Ortho Slice
模块将理论PSF与测得的PSF进行比较。您会注意到,测得的PSF似乎稍宽。这是在许多实验。
图3.44:Generate Point Spread Function模块生成理论PSF。
计算完理论PSF后,您可以按照以下说明进行非盲反卷积以上。但是,为方便起见,Deconvolution
模块也能够计算理论值PSF本身。您可以通过断开解Deconvolution
模块的Kernel
端口来检查此情况。如果此端口上没有输入,则会显示其他输入字段,使您可以输入相同的内容。参数(数值孔径,波长,折射率和微观模式)与PSFGen中相同。输入这些参数后,可以通过按再次开始反卷积过程Apply
按钮。
请注意,启动时,与Deconvolution
模块连接的所有先前结果将被覆盖反卷积过程再次出现。因此,如果您想断开以前的结果,请确保比较反卷积与不同的输入PSF。
3.6.4 盲反卷积教程Blind Deconvolution
本教程说明如何在Avizo中执行盲反卷积。同时描述如何使用Avizo作业队列处理反卷积作业。就像上一个教程一样,假定读者已经熟悉Avizo本身的基本概念。如果没有,我们建议先阅读标准的Avizo教程。
盲反卷积示例
让我们首先加载原始图像数据集。
- 从目录
data/deconv
加载文件alphalobe.am
。 - 通过将
Image Ortho Projections
模块附加到数据集来可视化数据集。
该数据集已使用标准荧光显微镜在所谓的widefield
下记录条件。它显示了来自蜜蜂大脑α叶的神经元。相比共焦标准反卷积教程中使用的数据集alphalobe.am更大。它有一个决议248 x 248 x 256体素,均匀的体素尺寸为1微米。在投影的xy平面中查看神经元的结构可以清楚地确定。但是,图像的对比度相当差,因为存在大量失焦的光线或雾霾。与Avizo的盲人去卷积算法,我们可以增强图像数据,而无需了解显式的PSF预先。
- 将解
Deconvolution
模块附加到alphalobe.am。
图3.45:Alphalobe反卷积。
像这样调整去卷积参数:
Parameters:
• Border Width: x = 8 y = 8 z = 10
• Iterations: 25
• Initial Estimate: input data
• Method: blind
Microscope:
• PSF: NA = 0.5 λ = 0.58 n = 1
各个参数的含义如下:
Border width
边框宽度:与标准非盲反卷积相同,图像数据必须放大保护带区域。否则,可能会出现边界伪影,即来自伪像一侧的信息。数据可以传递给对方。对于此数据集,我们指定8个体素的较小保护带区域,x和y方向。在z方向上,我们添加10个切片作为边界区域。结果的大小执行运算的资料阵列为256 x 256 x 266。
请注意,对于幂为维,快速傅立叶变换反卷积算法中最昂贵的部分,可以更快地执行。Iterations
迭代:我们在这里选择25。根据数据,通常至少要进行10次迭代需要。启用过度松弛(请参阅下文)后,结果通常在40岁后不会有太大改善迭代。Initial estimate
初始估计:指定反卷积算法的初始估计。由于没有太多原始Alphalob图像中存在噪声,因此可以在此处选择输入数据。这导致算法收敛更快。Overrelaxation
过松弛:过松弛是一种加速迭代解卷积收敛的技术。处理过程。我们通过选择固定的切换来启用超松弛。Regularization
正则化:为了不进行正则化,我们在此处未选择任何内容。Method
方法:我们在这里选择盲目的是为了选择盲反卷积算法。PSF Parameters
PSF参数:对于alphalobe.am,数值孔径为0.5,波长为0.58微米,折射率为1.0(空气)。这些参数是必需的,以便应用某些约束到估计的点扩散函数。它们也用于计算初始PSF。收敛对初始参数敏感。如果将数据集连接到以下设备的内核端口反卷积模块,该数据集将用作具有给定PSF参数的初始PSF仍然充当约束。例如,您可以提供一个测得的PSF并将其安装到
反卷积算法计算实际数据。Microscopic mode
微观模式:alphalobe.am是一个广角数据集,因此请在此处选择此选项。
提交反卷积作业
输入所有参数后,即可开始反卷积过程。这种计算可能需要一些时间。特别是,如果您想一次解卷积多个数据集,将很不方便在交互式会话中执行此操作。因此,可以将多个反卷积作业提交给Avizo作业队列,然后例如处理一夜。其工作原理如下:
- 按批处理作业端口的
Setup...
按钮。弹出如图3.46所示的对话框。
图3.46:用于提交解卷积作业的对话框。
- 在对话框中选择一个文件名,您要在其中保存解卷积的数据集,例如,
C:/Temp/alphalobe-deconv.am
。 - 修改文本字段,以便每5次迭代写入一次检查点文件。
检查点文件用于存储中间结果。使用以上设置,每5次迭代将分解后的数据写入文件中。检查点文件的名称类似于最终结果,但在文件名后缀之前插入一个连续的数字。例如,如果结果文件名为C:/Temp/alphalobe-deconv.am
,则将检查点文件命名为C:/Temp/alphalobe-deconv-0005.am
、C:/Temp/alphalobe-deconv-0010.am
以此类推。现在,我们准备好实际提交批处理作业。
- 按反卷积对话框的
Submit
按钮。几秒钟后,Avizo批处理作业出现对话框,如图3.47。
图3.47:Avizo作业对话框显示了待处理的反卷积作业。
- 选择解卷积作业,然后按
Start
按钮。
您现在必须等待大约20分钟,直到反卷积作业完成。一旦作业队列已经启动,您可以退出Avizo。批处理作业将自动继续。如果Avizo是当解卷积作业退出时仍然运行,则结果将自动加载到Avizo中。否则,您必须重新启动Avizo并手动加载反卷积数据集。
3.6.5 珠提取教程Bead Extraction
非盲反卷积是一种增强3D显微镜质量的强大而强大的方法图片。但是,该方法要求图像的点扩散函数(PSF)负责提供图像模糊。如标准反卷积教程中所述,PSF可以可以从理论上计算得出,也可以从磁珠测量中获得。Avizo提供了一个特殊的目的模块,称为提取点扩展功能,可帮助提取PSF图像从一个或多个磁珠测量。在本教程中,将说明模块的使用。涵盖以下主题:
1.磁珠测量
2.投影设置视图和投影设置视图光标
3.重采样珠子并取平均
磁珠测量
PSF是在与实际规格相同的条件下记录的单点源图像。它可以通过发荧光的亚分辨率微球的图像来近似,即所谓的珠子。执行良好的磁珠测量需要一些实践和专业知识。为了得到好的结果,应遵循以下提示:
1.使用合适的珠子。重要的是,磁珠尺寸应小于约1/2PSF的半高全宽(FWHM)。获得合适珠子的良好来源用于PSF测量的是Molecular Probes(http://www.probes.com/)或Polysciences(http://www.polysciences.com/ )。
2.珠子必须是固体。除了固体珠以外,还有球形的珠外壳,可以检查显微镜的焦平面。这种珠子不能用作来源用于当前版本的Avizo中的PSF生成。
3.不要记录多个珠子的簇。有时可能会有多个珠子粘在一起,出现作为一个大的亮点。从这样的位置计算PSF显然会导致错误的结果。
4.请注意,磁珠不能抵抗多种包埋介质。特别是,珠子会在诸如Permount(Fisher Scientific)和甲基的二甲苯基嵌入介质中被破坏水杨酸盐(通常用于清理组织)。作为替代,您可以使用浸油而是具有类似于水杨酸甲酯的折射率。
5.样品和珠子应始终在尽可能靠近盖玻片的位置成像。当不是可能将样品附着到盖玻片上,小珠也应在可比的范围内成像深度,嵌入相同的安装介质中。对珠进行成像的质量优于样本将产生稍微模糊的反卷积结果。但是,当PSF用于反卷积太宽,在反卷积过程中可能会出现伪影。物镜应始终根据安装介质进行选择,即样品附着在载玻片上,并嵌入折射率接近水的缓冲液中,使用不带滤光镜的油浸物镜时,可能会严重降低图像质量。校正领。正确成像数据的反卷积将始终优于反卷积受像差影响的数据的溶解。
6.如果安装介质保持液态,则会出现问题。在这种情况下,样本分布可能不是永久的。如果您要将标本包埋在水中,可以尝试将其浸入水中将珠子放在中等浓度的琼脂糖凝胶中。将小珠子附着到盖玻片(例如通过使其干燥)通常也足以固定。
包含多个珠子的图像数据集的示例在目录AVIZO ROOT/data/deconv
。
- 加载数据集
beads.am
。 - 使用
Image Ortho Projections
模块可视化数据。
投影视图和投影设置视图光标
珠子数据集包含五个不同的珠子,可以在三个正交平面中清楚地看到它们Image Ortho Projections
模块的功能。为了获得单个PSF,我们首先要选择几个“好”珠子。然后将这些珠子重新采样并取平均值,从而得到最终的PSF。珠子罐如果清晰可见且未与其他珠子重叠(即使当散焦),
选择“好”珠子是一个交互式过程。使用投影最容易完成光标模块。该模块允许您通过单击三个中的一个来选择3D空间中的一个点Image Ortho Projections
模块的平面。第三个坐标是通过查看自动设置的强度最高的体素。用Cursor
模块选择的点可以存储在Landmarks
数据对象。
- 将
Projection Cursor
模块连接到Image Ortho Projections
模块。 - 单击三个平面之一上的任何珠子。
- 通过按
Add
按钮将当前光标位置存储在Landmarks
对象中。 - 也选择并添加其他一些珠子。
地标不必精确地位于珠子的中心。确切的中心位置可以稍后会自动安装。
您可以通过调用地标集编辑器从地标集中删除不正确的磁珠位置。为了激活编辑器,请选择地标集对象,然后按Landmark Editor
按钮。如果你想要将其他珠子位置添加到现有地标集对象中,请确保master
端口地标集对象的“对象”连接到Cursor
模块。否则,将创建一个新的地标集对象将被创建。
重采样和平均珠子
现在,我们准备提取并平均单个珠子。这是通过摘录完成的点Extract Point Spread Function
模块。
- 将提取点扩展功能模块连接到Landmarks对象。
图3.48:可以使用Projection Cursor
模块以交互方式识别单个珠子。
- 确保
Extract Point Spread Function
的Data
端口已连接到beads.am
数据集小珠。如果地标仍通过Projection Cursor
和图像连接到珠子Image Ortho Projections
模块,将自动建立连接。
提Extract Point Spread Function
模块提供了两个按钮,称为Adjust centers
和Estimate size
大小,应在实际提取珠子之前在预处理步骤中调用它。
第一个按钮(Adjust centers
)可修改界标位置,以便将其精确定位在各个珠子的重心。
第二个按钮(Estimate size
)计算PSF图像体素数量的估计值被生成。仅当没有将PSF图像连接到BeadExtract
时,此按钮才有效。如果存在结果对象,则使用结果的分辨率和体素大小,并且端口变为不敏感。
使用Undo
按钮可以撤消两个预处理按钮的任何操作。这可以是例如,如果两个小珠太靠近,以至于无法计算出正确的中心位置,则必须这样做。
图3.49:Extract Point Spread Function
模块对多个小珠重新采样并取平均值。
通常,应避免相邻的珠子重叠。可能会出现小的重叠因为在重新采样期间,强度是根据周围磁珠的影响加权的。
- 执行预处理步骤,调整中心并估计尺寸。
- 通过按“应用”按钮计算重新采样的PSF并求平均值。
不管输入图像的数据类型如何,生成的PSF的数据类型都是浮点型。的单个珠子将按每个体素加权并添加到结果中。没有规范化随后将执行。您可以使用任何标准调查生成的PSF图像可视化模块。在图3.50中显示了生成的PSF的体积渲染。
图3.50:使用Volume Render
模块可视化的最终PSF。
在某些情况下,您可能需要平均记录在不同输入数据集中的多个珠子。这个可以通过为每个输入数据集创建一个Landmarks
对象可以轻松实现。对于第一个输入数据集,如上所述提取珠子。对于其他输入数据集,也请使用Extract Point Spread Function
模块。但是,请确保已连接从第一个输入数据集获得的PSF作为结果对象,然后按Apply
按钮。为了将现有的PSF用作结果对象,将PSF的Master端口连接到Extract Point Spread Function
(一旦完成此操作)提取点扩展功能的Resolution
和Voxel size
端口变得不敏感,请参见上文)。
如果使用现有结果,则仅将新珠子添加到现有数据集中。因此,数据在提取和求和之前,应根据其质量对集合进行强度缩放。获得最终结果中各个提取珠的合适权重。
3.6.6 性能问题和多处理
迭代最大似然反卷积本质上是最强大,最可靠的技术,修复3D光学部分的方法。但是,它在计算上也非常苛刻。处理大型3D数据集可能需要几分钟(有时甚至是几个小时)。这不是由于实现不当,但由于算法本身。盲和非盲的变体该方法严重依赖于快速傅立叶变换,以便有效地计算卷积。如果你要提高性能,请尝试调整数据量的大小,以使体素数量加上边框宽度是2的幂。有时值得稍微扩大边框宽度为了得到二的幂 尽管该算法可处理任何大小的数据,但2的幂可以转变得更快。
另一个问题是内存消耗。在内部,需要分配数据集的多个副本通过反卷积算法。这些副本应同时放入内存中(特定稍后将提供适用于低内存条件的算法变体版)。除了输入数据本身外,以下数量的工作数组还需要不同的方法:
- 3个用于无盲算法的工作数组,无或具有固定的过松弛
- 5个工作数组,用于具有优化过松弛的非盲算法
- 5个用于盲算法的工作数组
工作阵列的体素数是输入数据的体素数的乘积设置加上沿每个空间维度的边界。工作数组的原始数据类型是一个4字节的浮点数。例如,如果输入数据集的体素数量加上边框宽度为256 x 256 x 256(关于盲反卷积教程中的alphalobe.am数据集),不管输入数据集的原始数据类型如何,每个工作阵列都将约为64 MB。因此,非盲卷积至少需要192 MB(3x4x256x256x256字节)固定的过松弛,以及320 MB(5x4x256x256x256字节)的盲卷积。保持这个配置要在其上进行反卷积的计算机时请注意!但是,请注意在大多数平台上,拥有超过1.5 GB的主内存通常是没有意义的。欲了解更多内存,需要64位操作系统。
最后,应该提到的是,反卷积算法可以利用多处理器CPU板。尽管您在双处理器PC上无法获得两倍的性能,但可以提高几乎可以达到1.5。默认情况下,Avizo使用的处理器数量与计算机上的数量相同。推杆。如果出于某种原因要使用更少的处理器,则可以设置环境变量AVIZO DECONV NUM THREADS
等于您实际要同时使用的处理器数量太好了。
示例1:共聚焦数据
原始数据集位于AVIZO ROOT/data/deconv/polytrichum.am
下。下图是使用Image Ortho Projections
模块创建的。
图3.51:反卷积之前的polytrichum.am。
数据集的属性如下:
- 数值孔径1.4
- 发射光的波长为0.58微米
- 折射率1.516(油)
示例2:广域数据
原始数据集位于AVIZO ROOT / data / deconv / alphalobe.am下。下图是使用“图像正交投影”模块创建的。
图3.52:去卷积后的polytrichum.am。
数据集的属性如下:
- 数值孔径0.5
- 发射光的波长为0.58微米
- 折射率1.0(空气)
图3.53:去卷积之前alphalobe.am的XY最大强度投影。
图3.54:去卷积后alphalobe.am的XY最大强度投影。