ImageJ的使用

这部分介绍了ImageJ的一些基本知识,以便用户更有效地使用该软件。它还介绍了本手册中使用的一些重要术语和概念。如果您已经有效地使用了该程序,并且熟悉诸如Virtual Stacks, Hyperstacks, Pseudocolor Images, Color Composite Images or Composite Selections

4. 使用键盘快捷键

当你使用ImageJ时,你会学到越来越多的快捷键,因为(几乎)所有的快捷键都列在ImageJ菜单中。同样,在本指南中,每个命令的名称上都列出了快捷键(两边用方括号括起来)。
请注意,这些键绑定的表示法是区分大小写的,即没有明确提及时便使用Shift修饰符(例如大写A表示Shift+a),并默认选中“编辑>选项>其他”中的快捷键需要Ctrl键。

修饰符有Shift、Ctrl和Alt三种。

5. 查找命令

浏览ImageJ命令、宏和插件的大量列表可能相当麻烦。通过其内置的命令查找器/启动器,ImageJ提供了一种快速替代方案,使您能够极其快速地检索命令:Plugins>Utilities>Find Commands. . .。

此外,ImageJ还提供了一个查找功能,用于查找计算机上的宏指令、脚本和插件源文件:Plugins>Utilities>Search. . .。由于大多数IJ源文件都包含间接注释,因此您可以使用此实用程序来检索不仅与图像处理例程相关的文件,还与实际上下文(如放射图、细胞或组织学)相关的文件。事实上,ImageJ源文件包含详细的注释,这些注释对想要了解更多ImageJ例程和算法的开发人员和普通用户都很有用。

6. 撤消和重做

您可能会注意到的第一件事:ImageJ没有大的undo/redo缓冲区。撤消(编辑>撤消)当前仅限于最近的图像编辑/过滤操作。随着时间的推移,您会意识到这对于最大限度地减少内存开销是必要的。尽管如此,对于IJ 1.45及更高版本,在大多数情况下,Undo是可撤消的,并且如果在Edit>Options>Memory & Threads. . . 选中“Keep multiple undo buffers(保留多个撤消缓冲区)”,则可以应用于多个图像。

如果您无法从错误中恢复,您可以始终使用 File>Revert 将图像重置为其上次保存的状态。对于选择,Edit>Selection>Restore Selection 可用于恢复任何错误选择。

在ImageJ中,相当于“redo”的是 Process>Repeat 命令,它会重新运行以前使用的命令。

7. 图像类型和格式

数字图像是像素强度值的二维网格,图像的宽度和高度由x(行)和y(列)方向上的像素数量定义。因此,像素(图片元素)是图像中最小的单一成分,具有介于黑色和白色之间的数值——像素强度。该范围的特征,即图像中可能存在的唯一强度(亮度)值的数量,被定义为图像的位深度,并指定强度编码的精度水平。例如:2位图像有2的2次方=4个色调:00(黑色)、01(灰色)、10(灰色)和11(白色)。4位图像具有2的4次方=16个色调,范围从0000(0)到1111(16)等。就每像素比特数(bpp)而言,ImageJ处理的最常见的图像类型(图像>类型)有:

  1. 8–bit:可以显示256个灰度级的图像(仅限整数)
  2. 16–bit:可以显示65536个灰度级的图像(仅限整数)
  3. 32–bit:可以显示4294967296灰度级(实数)的图像。在32位图像中,像素由浮点值描述,可以具有任何强度值,包括NaN(非数字)。
  4. RGB Color:彩色图像,可在红色、绿色和蓝色通道中显示256个值。这些是24位图像。RGB彩色图像也可以是32位彩色图像(24位彩色图像,带有额外的8位编码alpha混合值,即透明度)。

原生格式

ImageJ以本地方式(即不需要第三方插件)打开以下格式:TIFF, GIF, JPEG, PNG, DICOM, BMP, PGM 和 FITS。

  1. TIFF:(标记图像文件格式)是ImageJ的“默认”格式(参见File>Save)。图像可以是1位、8位、16位(无符号)、32位(实数)或RGB颜色。具有多个相同类型和大小的TIFF文件将作为Stacks或Hyperstacks打开。ImageJ通过LZW、PackBits和ZIP(Deflate/Ampure)压缩方案打开无损压缩的TIFF文件。此外,TIFF文件可以打开并保存为ZIP压缩包。当ImageJ在调试模式下运行时,Tiff标签和导入文件所需的信息(图像数量、第一个图像的偏移量、图像之间的间隙)将打印到日志窗口(Edit>Options>Misc. . . )。
  2. DICOM:(医学数字成像与通信)是医学影像学界流行的标准。ImageJ仅支持未压缩的DICOM文件。包含多个图像的DICOM文件以Stacks形式打开。 Image>Show Info. . .显示DICOM的标题信息。可以使用File>Import>Image Sequence. . . 打开DICOM序列。或者将文件夹拖放到 ImageJ 窗口上。导入的序列按图像编号而不是文件名进行排序,当DICOM图像以TIFF格式保存时,将保留标签。ImageJ支持自定义DICOM字典。
  3. FITS:(灵活的图像传输系统)是天文界用于数据交换和档案存储的格式。Image>Show Info. . .显示FITS的标题信息。更多信息见here
  4. PGM(便携式灰度图)PBM(便携式位图)PPM(便携式像素图):使用ASCII标头的简单图像格式。更多信息见here
  5. AVI(音频、视频转换):是一种容器格式,可以包含以多种不同方式编码的数据。ImageJ仅支持未压缩的AVI、各种YUV 4:2:2压缩格式以及PNG或JPEG编码的单个帧。请注意,大多数MJPG(运动JPEG)格式无法正确读取。尝试以其他格式打开AVI将失败。

非原生格式

打开文件时,ImageJ首先检查它是否可以以原生方式处理该格式。如果ImageJ无法识别文件的类型,它会使用HandleExtraFileTypes(与ImageJ捆绑的插件)调用适当的读取器插件。如果失败,它会尝试使用 OME Bio-Formats library(如果存在)打开文件,这是一个出色的插件,支持显微镜中使用的一百多种最常见的文件格式。如果仍然无法打开文件,则会显示一条错误消息。

因为这两个插件都在积极开发中,所以保持它们的更新是很重要的。

此外,ImageJ网站列出了60多个插件,这些插件可以识别更“奇异”的文件格式。ImageJ文档门户还维护ImageJ支持的文件格式列表(有些过时)。

8. 堆栈、虚拟堆栈、超堆栈

Stacks(堆栈)

ImageJ可以在单个窗口中显示多个空间或时间相关的图像。这些图像集被称为堆栈。构成堆栈的图像称为切片。在堆栈中,像素(表示位图图像中的2D图像数据)变为体素(体积像素),即在三维空间中的规则网格上的强度值。

堆栈中的所有切片必须具有相同的大小和位深度。滚动条提供了在切片中移动的能力,滑块前面有一个播放/暂停图标,可用于启动/停止堆栈动画。右键单击此图标将运行“动画选项”对话框。

作为一种选择,大多数ImageJ过滤器将处理堆栈中的所有切片。ImageJ将多图像TIFF文件作为堆栈打开,并将堆栈保存为多图像TIFF。File>Import>Raw. . .命令打开其他多图像、未压缩的文件。图像文件夹可以作为堆栈打开,方法是将文件夹拖放到“ImageJ”窗口,或选择 File>Import>Image Sequence. . .。要创建新堆栈,只需选择 File>New>Image. . . 并将切片字段设置为大于1的值。Image>Stacks>submenu 包含用于常见堆栈操作的命令。

Virtual Stacks(虚拟堆栈)

虚拟堆栈驻留在磁盘上(而不是驻留在RAM上),是加载不适合RAM的图像序列的唯一方法。在使用虚拟堆栈时,需要记住以下几点:

  • 虚拟堆栈是只读的,因此在切换到其他切片时,对像素数据所做的更改不会保存。你可以通过使用宏指令来解决这个问题。或Process>Batch>Virtual Stack. . . 命令.
  • 使用Image>Crop等命令很容易耗尽内存,因为任何由不生成虚拟堆栈的命令生成的堆栈都将驻留在RAM中。
  • TIFF虚拟堆栈的访问速度通常比JPEG虚拟堆栈更快。通过将JPEG图像作为虚拟堆栈打开,并使用 File>Save As>Image Sequence. . . 以TIFF格式保存,可以将JPEG序列转换为TIFF。

ImageJ将“(V)”附加到虚拟堆栈和超堆栈的窗口标题。File>Import>submenu 中的几个内置ImageJ命令能够打开虚拟堆栈,即: TIFF Virtual Stack. . . , Image Sequence. . . , Raw. . . , Stack From List. . . , AVI. . .。此外,TIFF堆栈可以通过拖放作为虚拟堆栈打开。

Hyperstacks(超堆栈)

Hyperstacks是多维图像,将图像堆栈扩展到四(4D)或五(5D)维度:x(宽度)、y(高度)、z(切片)、c(通道或波长)和t(时间帧)。Hyperstacks显示在一个带有三个标记滚动条的窗口中。与Stacks中的滚动条类似,帧滑块(t)有一个播放/暂停图标。

9. 彩色图像

ImageJ主要通过三种方式处理颜色:伪彩色图像、RGB图像、RGB/HSB堆栈和合成图像。

伪彩色图像

伪彩色(或索引彩色)图像是通过查找表或LUT分配颜色的单通道灰度图像(8、16或32位)。LUT实际上是一个预定义的灰色值表,具有匹配的红色、绿色和蓝色值,因此灰色阴影显示为彩色像素。因此,伪彩色图像中的颜色差异反映了物体的强度差异,而不是已经成像的样本的颜色差异。

8位索引彩色图像(如GIF)是伪彩色图像的一种特殊情况,因为它们的查找表与图像一起存储在文件中。这些图像被限制为256种颜色(24位RGB图像允许1670万种颜色),同时文件大小也较小。通过颜色量化算法将真实颜色值减少到256调色板。ImageJ使用Heckbert的中值剪切颜色量化算法,在大多数情况下,该算法允许索引的彩色图像看起来与24位原始图像几乎相同。

真彩色图像

如图像类型和格式中所述,诸如RGB图像之类的真彩色图像反映真实的颜色,即,RGB图像中的绿色反映样本中的绿色。彩色图像通常由彩色CCD相机产生,其中滤色器阵列(贝尔蒙版)放置在图像传感器上。

颜色空间和颜色分离

颜色空间描述图像处理设备处理的色域。因为人类的视觉是三色的,所以大多数颜色模型用三个值来表示颜色。从数学上讲,这些值(颜色分量)形成了一个三维空间,如RGB、HSB、CIE Lab或YUV颜色空间。

RGB(红、绿、蓝)是最常用的颜色空间。然而,在处理颜色信息时,诸如HSB(色调、饱和度、亮度)之类的其他替代方案提供了显著的优势。在HSB颜色空间中,Hue描述了纯色的属性,因此可以区分颜色。饱和度(有时称为“纯度”或“活力”)是颜色阴影的特征,即在纯色中添加了多少白色。亮度(也称为Value–HSV系统)描述颜色的整体亮度。在数字成像处理方面,使用HSB系统而不是传统的RGB通常是有利的:例如,由于HSB图像的亮度分量对应于该图像的灰度版本,因此在需要灰度图像的例程中仅处理亮度通道是一个显著的计算增益。

在ImageJ中,使用 Image>Type>submenu 执行图像类型之间的转换。HSB、RGB、CIE Lab和YUV颜色空间的分割可以通过Image>Adjust>Color Threshold. . .命令。使用Gabriel Landini的颜色反卷积插件也可以分离颜色成分(特别适用于组织化学染色的定量)。此外,还可以从ImageJ网站上获得其他几个与颜色处理相关的插件。

传送颜色信息

人们看到的颜色变化很大。事实上,流行的短语“一幅画抵万字”可能不适用于某些彩色图像,特别是那些不遵循彩色通用设计基本原则的图像。引用Okabe和Kei Ito的话:

	色盲的人可以识别各种各样的颜色。但某些颜色范围很难区分。色盲的发生频率相当高。每12名高加索人中就有1人(8%)、每20名亚洲人中就有一人(5%)和每25名非洲人中就有1%(4%)是所谓的“红-绿”色盲。
	观众和读者中总是有色盲。一个有250人的房间里应该有10个以上的色盲(假设50%的男性和50%的女性)。
	你提交的论文很有可能会交给色盲评审员。假设你的论文将由三名白人男性进行审查(考虑到目前的科学人口,这是不太可能的),他们中至少有一人是色盲的概率高达22%!

彩色通用设计定义的一个实用点是在红-绿覆盖层中使用品红色。品红色是红色和蓝色的相等混合物。难以识别红色成分的色盲者可以很容易地识别蓝色色调。双阳性区域变为白色,这对于色盲来说很容易区分。在ImageJ中,使用Image>Color>Merge Channels. . . 可以很容易地实现这一点,或使用ImageJ宏指令。

彩色合成图像

在合成图像中,颜色是通过通道处理的。与普通RGB图像相比,这种类型的图像的优势在于:

  1. 每个通道都与其他通道分开,可以使用“通道”工具(Image>Color>Channels tool…)打开和关闭。该特征允许例如在对多个通道进行可视化的同时对特定通道进行测量。
  2. 通道可以是8位、16位或32位,并且可以与任何查找表一起显示。
  3. 可以合并或分离3个以上的通道。

10. 选区

选区(感兴趣的区域,ROI)通常使用工具栏工具创建。尽管ImageJ可以同时显示多个ROI,但一次只能激活一个选择。在区域选择的情况下,可以测量(Analyze>Measure…)、绘制(Edit>Draw)、填充(Edit>Fill)或过滤(Process>Filters>submenu)选择。此外,还可以保存多个ROI作为非破坏性覆盖层。

选区最初可以用九种ImageJ默认颜色(红色、绿色、蓝色、品红色、青色、黄色、橙色、黑色和白色)中的一种勾勒出来。创建后,可以使用 Edit>Selection>Properties. . . 对选择进行轮廓绘制或使用任何其他颜色绘制。选区颜色可以在Edit>Options>Colors. . .中更改,通过双击“点工具”,或使用热键

10.1 操作选区

在定义或绘制选区时有用的大多数命令都可以在Edit>Selection>submenu中使用,并在ROI操作中进行汇总。下面列出了涉及选区的最常见操作:

  • Adjusting(调整):可以使用笔刷选择工具调整区域选择。此外,使用“多边形选择工具”和“分段线选择工具”创建的选择的顶点可以通过Alt/Shift单击进行调整。
  • Deleting(删除):选择任何选区工具并在选区之外单击,或使用Edit>Selection>Select None
  • Managing(编辑):通过激活目标窗口并运行Edit>Selection>Restore Selection,可以将选区从一个图像窗口转移到另一个图像窗口。或者,通过nalyze>Tools>Synchronize Windows在多个图像之间创建选区。多项选择可以存储为套印格式或ROI Manager列表(Analyze>Tools>ROI Manager. . .)。
  • Moving(移动):只要光标在选区范围内并且已更改为鼠标箭头,就可以通过单击和拖动来移动选区。状态栏显示正在移动的选区的左上角坐标(或非矩形选择的边界矩形)。要移动选区内容,而不是选区,请单击Edit<Copy、Edit<Paste,然后在选区内容内单击并拖动。
  • Nudging(微调):可以使用箭头键在任何方向上一次“微调”一个像素。请注意,在没有选区的情况下,上下键可放大和缩小图像。
  • Resizing(变换):笔刷选择工具可用于对ROI轮廓进行精细调整。通过在使用箭头键的同时按住Alt键,大多数ROI可以一次调整一个像素的大小。通常,通过拖动其中一个选择处理程序来调整选择的大小。拖动时,按住Ctrl键可围绕其中心调整选区的大小,按住Alt键可强制固定的纵横比,按住Shift键可强制1:1的纵横比。

10.2 组合选区

复合选区是包含一个以上像素簇的非连续ROI和/或包含内部空穴的ROI。复合ROI通常由“笔刷选区工具”(Brush Selection Tool)创建,但也可以使用任何其他使用关键点修改器的选区工具来定义。以下修改器键可用于创建组合选区:

  • 在按Shift键的同时在当前选区范围之外绘制将创建新选区。要添加非正方形矩形或椭圆,必须在添加所选内容后释放Shift键
  • 在按下Alt键的同时在当前选区内绘制会创建一个孔,从ROI中删除内容

请注意,某些操作可能无法在复杂的ROI上正确执行。在这些情况下,使用Edit>Selection>Enlarge. . .将复合ROI转换为多边形可能很有用。

10.3 具有亚像素坐标的选区

在ImageJ 1.46,可以以亚像素精度定义选区,超出图像的标称像素分辨率:浮点选区。如果Edit>Options>Profile Plot Options中的“亚像素分辨率”复选框处于激活状态,则会使用浮点坐标创建线条选区。可以使用Edit>Selection>Interpolate命令对预先存在的选区的亚像素坐标进行插值。插值点在放大1200%或更大的图像上创建的小选区上很容易被注意到。

插值选区

以(左)或不以(中)亚像素精度绘制的ROI。对于线条选区(请参见线条选区工具),可以通过激活亚像素分辨率复选框,在Edit>Options>Profile Plot Options 中启用此选项。可以使用Edit>Selection>Interpolate对区域选择的像素坐标进行插值。

11. 套印

套印是在图像叠加上“覆盖”像素数据的非结构选区,是ImageJ中无损图像处理的核心。在某种程度上,您可以将图像覆盖视为一个不可见的ROI管理器,在其中添加选区,从而使ROI处于“保留”状态。ImageJ2中对多个不同选区的概念进行了显著改进,因此如果多个ROI在您的工作流程中很重要,我们敦促您下载IJ2。

重要的是,图层选区是由数学定义的路径组成的矢量图形(而不是由像素定义对象的光栅图形),并且不受缩放的影响,即不变得像素化。大多数与涂层相关的命令都列在Image>Overlay和ROI管理器窗口(Analyze>Tools>ROI Manager)中。涂层选区的外观可以使用Image>Overlay>Overlay Options/Labels进行调整。

涂层保存在tif图像的标题中,使用ImageJ的默认文件格式TIFF时不需要外部保存。涂层的主要优点总结如下:

  • 选区保存——在ImageJ中,一次只可有一个选区。但是,可以使用Image>Overlay>Add Selection将选择添加到图像叠加。添加到图像叠加后,ROI可以通过Alt点击、Control点击或长按(1/4秒或更长时间)重新激活。按下Backspace键可以删除激活的ROI。也可以使用Image>Overlay>From ROI Manager/To ROI命令批量添加和恢复选区。
  • 无损注释——套印格式是在ImageJ中注释图像的最佳方式。作为矢量图形,套印不会改变像素值,即使在高缩放级别下也可以缩放而不损失质量,并且可以在不同的不透明度值下显示。通过按住Shift F(Image>Overlay>Flatten的快捷键),可以创建具有嵌入套印的图像的RGB快照。将图像保存为PNG或JPEG(File>Save As)或打印图像画布(File>Print)时,也会创建覆盖层渲染为像素数据的“展平”图像。
  • 选区图像——选区图像是将图像显示为套印层的ROI。如Edit>Selection>Image to Selection 和Image>Overlay>Add Image中所述,这允许在单个图像画布上混合多个图像。

12. 3D卷积

目前,ImageJ中对3D ROI(包含连续体素簇的选区)的支持有些有限。ImageJ2和几个IJ1插件已经解决了这个限制。下面的列表总结了一些有效处理多维对象的ImageJ插件。请注意,鉴于这些工具的特殊依赖性,将其作为独立的ImageJ插件手动安装是一项具有挑战性的任务,这也是为什么它们都作为Fiji的一部分捆绑在一起的原因。

3D Filters

可以安装专门的3D filters,如Process>Filters>Gaussian Blur 3D,以执行3D操作。

3D Object Counter

3D Object Counter (3D-OC) 对堆栈中的3D对象进行计数和限定,类似于Analyze>Analyze Particles执行的2D分析。

3D Viewer

3D Viewer为ImageJ带来了强大的硬件加速3D可视化功能,扩展了Image>Stacks>3D Project的有限功能。在ImageJ 3D Viewer中,堆栈可以显示为基于纹理的体积渲染、曲面或正体。它是宏可记录的,可以被其他插件用作3D可视化的高级编程库。

Simple Neurite Tracer

Simple Neurite Tracer可实现管状结构的3D半自动分割。

TrakEM2

如前所述,TrakEM2为感兴趣的多维区域提供了强大的工具。

13. 设置和首选项

ImageJ首选项会自动保存在首选项文件IJ_prefs.txt文本文件中。一些宏和插件也会将参数写入该文件。如果使用Edit>Options>Reset擦除IJ_prefs.txt,ImageJ将在下次打开时创建一个新的,将所有参数重置为默认值。有时,覆盖(或恢复)在工作会话期间可能已更改的某些设置可能会很有用。

setOption()宏函数可用于设置此选项和其他几个ImageJ选项。从StartupMacros.txt文件中的“AutoRun”宏调用此函数可确保每次启动ImageJ时都设置首选项。宏“Ensuring Specific Settings at Launch”举例说明了这种方法,确保在启动时强制执行以下设置:

  1. TIFF标记值由ImageJ显示
  2. 双三次插值优于双线性插值
  3. 测量图像名称的名称记录在结果表的第一列中
  4. 测量不限于阈值像素
  5. 处理二进制图像时假设黑色背景上有白色物体
  6. 背景色为黑色,前景色为白色
  7. ImageJ图包含网格线,大小始终为350×200像素
  8. 在最后保存的屏幕位置打开B&C小部件
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐