Linux上的图像处理

作者: Joey Bernard

我之前已经介绍过一些科学软件包,它们可以生成漂亮的数据和工作图形表示,但我还没有过多地介绍另一个方向。因此,在本文中,我将介绍一个流行的图像处理软件包,名为 ImageJ。具体来说,我将介绍 Fiji,它是 ImageJ 的一个实例,捆绑了一组对科学图像处理有用的插件。

Fiji 这个名称是一个递归首字母缩略词,很像 GNU。它代表“Fiji Is Just ImageJ”(Fiji 只是 ImageJ)。ImageJ 是一个用于分析科学研究中图像的有用工具——例如,您可以使用它来对航拍照片中的景观中的树木类型进行分类。ImageJ 可以进行这种类型分类。它采用插件架构构建,并且有非常广泛的插件集合可用于增加可用功能。

第一步是安装 ImageJ(或 Fiji)。大多数发行版都提供 ImageJ 的软件包。如果您愿意,您可以以这种方式安装它,然后安装您研究需要的各个插件。另一种选择是安装 Fiji,同时获得最常用的插件。不幸的是,大多数 Linux 发行版的软件包存储库中没有 Fiji 的软件包。不过幸运的是,可以从主网站上轻松获取安装文件。它是一个简单的 zip 文件,包含一个目录,其中包含运行 Fiji 所需的所有文件。当您第一次启动它时,您只会看到一个带有菜单项列表的小工具栏(图 1)。

图 1. 当您第一次启动 Fiji 时,您会看到一个非常简洁的界面。

如果您还没有一些图像可以在学习使用 ImageJ 时使用,Fiji 安装包中包含几个示例图像。单击“文件→打开示例”菜单项,打开示例图像的下拉列表(图 2)。这些示例涵盖了您可能感兴趣的许多潜在任务。

图 2. 提供了多个示例图像,您可以在学习如何使用 ImageJ 时使用。

如果您安装的是 Fiji 而不是单独的 ImageJ,则会预先安装大量插件。首先值得注意的是自动更新插件。每次启动 ImageJ 时,此插件都会检查互联网上 ImageJ 以及已安装插件的更新。

所有已安装的插件都可以在“插件”菜单项下找到。一旦您安装了许多插件,此列表可能会变得有点笨拙,因此您可能需要谨慎选择插件。如果您想手动触发更新,请单击“帮助→更新 Fiji”菜单项以强制检查并获取可用更新列表(图 3)。

图 3. 您可以强制手动检查有哪些更新可用。

现在,您可以使用 Fiji/ImageJ 做什么类型的工作?一个例子是计算图像中物体的数量。您可以通过单击“文件→打开示例→胚胎”来加载示例。

图 4. 使用 ImageJ,您可以计算图像中的物体数量。

第一步是为图像设置比例,以便您可以告诉 ImageJ 如何识别物体。首先,在工具栏上选择直线按钮,并在图像上比例图例的长度上绘制一条线。然后您可以选择“分析→设置比例”,它将设置比例图例所占的像素数(图 5)。您可以将已知距离设置为 100,单位设置为“um”。

图 5. 对于许多图像分析任务,您需要为图像设置比例。

下一步是简化图像中的信息。单击“图像→类型→8 位”以将信息减少为 8 位灰度图像。要隔离各个物体,请单击“处理→二进制→转换为二进制”以自动阈值化图像(图 6)。

图 6. 有一些工具可以执行自动任务,例如阈值化。

在您可以计算图像中的物体数量之前,您需要删除比例图例等伪影。您可以使用矩形选择工具选择它,然后单击“编辑→清除”来做到这一点。现在您可以分析图像并查看那里有哪些物体。

确保图像中未选择任何区域,单击“分析→分析粒子”以弹出一个窗口,您可以在其中选择最小尺寸、要显示的结果以及要在最终图像中显示的内容(图 7)。

图 7. 您可以生成带有已识别粒子的简化图像。

图 8 显示了摘要结果窗口中发现的总览。还有一个针对每个单独粒子的详细结果窗口。

图 8. 输出结果之一包括已识别粒子的摘要列表。

一旦您为给定的图像类型制定了分析方法,您通常需要将完全相同的分析应用于一系列图像。这一系列图像可能达到数千张,因此通常您不希望为每个图像手动重复此操作。在这种情况下,您可以将所需的步骤收集到宏中,以便可以多次重新应用它们。单击“插件→宏→录制”会弹出一个新窗口,您后续的所有命令都将被记录在其中。完成所有步骤后,您可以将它们保存为宏文件,并通过单击“插件→宏→运行”在其他图像上重新运行它们。

如果您对工作流程有一组非常具体的步骤,您可以简单地打开宏文件并手动编辑它,因为它是一个简单的文本文件。实际上,您可以使用完整的宏语言来更充分地控制应用于图像的处理。

但是,如果您有非常大量的图像需要处理,这对于您的工作流程来说可能仍然太繁琐。在这种情况下,转到“处理→批量→宏”以弹出一个新窗口,您可以在其中设置批量处理工作流程(图 9)。

图 9. 您可以使用单个命令在一批输入图像文件上运行宏。

在此窗口中,您可以选择要应用的宏文件、输入图像所在的源目录以及要将输出图像写入的输出目录。您还可以设置输出文件格式,并根据文件名包含的内容过滤用作输入的图像列表。完成所有操作后,单击窗口底部的“处理”按钮开始批量运行。

如果这是一个会随着时间推移而重复的工作流程,您可以单击窗口底部的“保存”按钮将批量处理保存到文本文件。然后,您可以通过单击窗口底部的“打开”按钮重新加载相同的工作流程。所有这些功能都允许您自动化研究中最繁琐的部分,以便您可以专注于实际的科学。

考虑到仅从 ImageJ 主网站就有超过 500 个插件和超过 300 个宏可用,我在这篇短文中只能触及最基本的主题,这实在是轻描淡写了。幸运的是,有许多特定领域的教程可用,以及来自主项目网站的 ImageJ 核心的非常好的文档。如果您认为此工具可能对您的研究有用,那么有大量信息可以指导您在特定研究领域进行研究。

加载 Disqus 评论