ImageJ用户手册-第一部分
开启ImageJ之旅
第一部分将介绍ImageJ的安装、检修和升级。同时也会讨论ImageJ的第三方软件——Fiji和ImageJ2。如果不探索图像处理的技术层面,就不可能记录ImageJ的所有功能,因此本部分还提供了外部资源,让有意愿的读者可以了解有关数字信号处理的更多信息。
1. 介绍
ImageJ是一个公开的Java图像处理和分析程序,其灵感来自于用于Macintosh的NIH图像。
1.1 ImageJ在运行环境和操作文件方面
- ImageJ可以在线或下载后运行,只要安装了Java 1.5或更高版本虚拟机的计算机。
- ImageJ发行的下载包支持Windows,MacOS和Linux系统。
- ImageJ可显示、编辑、分析、处理、保存和打印8位、16位和32位图像。
- ImageJ可以读取许多图像格式,包括TIFF, GIF, JPEG, BMP, DICOM, FITS和’ raw '。
- ImageJ支持堆栈(和超堆栈),一系列共享一个窗口的图像。
- ImageJ是多线程的,因此读取图像文件等耗时的操作可以与其他操作并行执行。
1.2 ImageJ在图像处理和测量计算方面
- 可以计算用户自定义选择的面积和像素值统计。
- 可以测量距离和角度。
- 可以创建密度直方图和线图。
- 支持标准的图像处理功能,如对比度处理、锐化、平滑、边缘检测和中值滤波。
- 可以进行几何变换,如缩放、旋转和翻转。
- 图像可以放大到32:1,也可以缩小到1:32。所有功能在任意倍数下均可使用。
- 支持任意数量的窗口(图像),仅受可用内存的限制。
- 空间校准可以提供真实世界的尺寸测量,单位如毫米。也可以校准密度或灰度。
1.3 ImageJ可扩展性
ImageJ采用开放架构设计,通过Java插件提供可扩展性。自定义获取,分析和处理插件可以使用ImageJ的内置编辑器和Java编译器开发。提供用户可自己编写插件的功能让ImageJ可以解决几乎任何图像处理或分析问题。
1.4 ImageJ用户的自由权
作为公共领域的开源软件,ImageJ用户拥有Richard Stallman在1986年定义的四个基本自由:
- 出于任何目的运行程序的自由;
- 可以自由地研究程序如何工作,并修改它,让它按照你的意愿工作;
- 重新分发副本的自由,用于互帮互助;
- 改进程序的自由,并向公众发布您的改进,以便整个社区受益。
2. ImageJ安装与维护
ImageJ下载地址http://imagej.nih.gov/ij/download.html
ImageJ安装教程 http://imagej.nih.gov/ij/docs/install/
Fiji安装教程http://fiji.sc/wiki/index.php/Downloads
下载的包可能不包含最新的bug修复,因此建议在第一次安装后立即升级ImageJ。更新IJ只需要运行Help>update ImageJ…,它将在ImageJ文件夹中安装最新的ij.jar(在Linux和Windows上)或ImageJ.app(在Mac OS X上)。
2.1 ImageJ发行版
ImageJ本身并不强大:它的真正优势是大量的插件,这些插件将ImageJ的功能扩展到其基本核心之外。来自世界各地的贡献者提供的成百上千个免费插件对ImageJ的成功起到了关键作用。升级ImageJ不会更新已安装的插件。
ImageJ插件(插件,脚本和宏指令)可以从几个来源获得(ImageJ的插件页面[Help>插件…]、ImageJ信息和文档门户网站以及Fiji网站等),使手动更新成为一项艰巨的任务。仅仅这个原因,就使得ImageJ发行版与预先组织好的附加组件集合的使用非常方便。
下面是最相关的项目列表,这些项目解决了组织和维护ImageJ的看似困难的任务,而不仅仅是其基础知识。如果你是一名生命科学家,并且对应该选择哪种发行版有疑问,就选Fiji吧。它需要大量维护,提供自动更新,改进的脚本功能,并附带强大的插件。
Fiji
Fiji是ImageJ连同Java、Java 3D和几个插件组织成一致的菜单结构的一个发行版。Fiji与ImageJ的关系就像Ubuntu与Linux一样。
Fiji的主要重点是协助生命科学的研究,目标是图像配准、拼接、分割、特征提取和3D可视化等。
它还支持许多脚本语言(BeanScript、Clojure、Jython、Python、Ruby)。
重要的是,Fiji提供了一个方便的更新程序,它可以知道您的文件是最新的、过时的还是本地修改的。它的大多数插件都有详尽的文档介绍。
MBF ImageJ
MBF ImageJ捆绑包或ImageJ for Microscopy(前身为WCIF ImageJ)包含一系列插件和宏,由麦克马斯特大学MacBiophotonics设施的Tony Collins整理和组织。它附有一本综合手册,描述了如何操作光学显微镜图像数据。它对显微镜学家来说是一个很好的资源,但没有得到积极的维护,落后于核心ImageJ的开发。
请注意,您可以将MBF ImageJ的插件添加到Fiji,将两个程序中最好的组合在一起。事实上,你可以同时使用多个ImageJ发行版,通过收集最能满足你需求的插件来组装你自己的ImageJ捆绑包(可能是你所在机构的其他人已经这样做了?),或者创建符号链接在不同的安装之间共享插件。
2.2 相关软件
2.2.1 基于ImageJ构建的软件包
Bio7
Bio7是一个生态建模的集成开发环境,主要关注基于个体的建模和空间显式模型。
Bio7的特点:统计分析(使用R);空间统计学;R和Java之间的快速通信;BeanShell和Groovy支持;使用嵌入式流程图编辑器进行灵敏度分析并创建3D OpenGL(Jogl)模型。
BoneJ
BoneJ是一个用于骨小梁几何和整个骨骼形状分析的工具集合。
µManager
Micro Manager是一个用于控制自动显微镜的软件包。它允许您执行常见的显微镜图像采集策略,如时间流逝、多通道成像、z堆栈及其组合。µManager可与四大制造商的显微镜、大多数科学级相机以及显微镜成像中使用的许多外围设备配合使用.
MRI–CIA
MRI细胞图像分析仪由蒙彼利埃RIO成像设备(CNRS)开发,是一个快速图像分析应用程序开发框架,为ImageJ的功能添加了可视化脚本接口。它可以创建批处理应用程序以及交互式应用程序。应用包括“DNA梳理”、“细胞中染色蛋白的定量”、“细胞核和细胞质之间强度比的比较”和“计数不同通道中染色的细胞核”。
ObjectJ
ObjectJ是object-image的继承者,它支持在透明层上无损地标记图像的图形矢量对象。矢量对象可以手动放置,也可以通过宏命令放置。复合对象可以封装不同颜色编码的标记结构,以便将属于一起的特征捆绑在一起。ObjectJ提供了结果和图像之间的来回导航。结果表支持统计、排序、颜色编码、限定和宏访问。
SalsaJ
SalsaJ是一款专为EU-HOU项目开发的学生友好型软件。它致力于在课堂上对天文图像进行图像处理和分析。SalsaJ已被翻译成多种语言。
TrakEM2
TrakEM2是一个用于形态学数据挖掘、三维建模和图像拼接、配准、编辑和注释的程序。TrakEM2依赖于Fiji,它可以:
- 3D建模:三维对象,由轮廓或轮廓序列定义,可以从中构建皮肤或网格,并在三维中可视化。
- 关系建模:提取描述对象之间链接的地图。例如,哪个神经元通过多少突触和哪些突触与其他神经元接触。
2.2.2 ImageJ的互通性
存在允许ImageJ与其他应用程序/环境交互的几个包:
Bitplane Imaris
ImarisXT可以加载和执行ImageJ插件。bpImarisAdapter(仅限Windows,需要Imaris和ImarisXT的有效许可证)允许在Imaris和ImageJ之间交换图像。
CellProfiler
CellProfiler的功能是RunImageJ,这是一个允许ImageJ插件在CellProfiler管道中运行的模块。
Icy
Icy是一个用于生物成像的开源社区软件,它执行的ImageJ插件几乎100%兼容。
Knime
Knime(Konstanz Information Miner)包含几个能够执行ImageJ插件和宏指令的图像处理节点(KNIP)。
Open Microscopy Environment
所有开放式显微镜环境项目,如Bio-Formats、VisBio和OMERO,都能很好地与ImageJ集成。
RImageJ
ImageJ和R之间的绑定(GNUS)-用于统计计算和图形的免费软件环境。RImageJ的文档。
MIJ
Matlab–ImageJ bi-directional communication——用于Matlab和ImageJ之间双向数据交换的Java包,允许在两个成像软件之间交换图像。MIJ还允许MATLAB访问ImageJ的所有内置功能以及第三方ImageJ插件。开发人员在MIJ和Matlab文件交换网站上提供了更多信息。Fiji具有Miji.m,这使得在Matlab中使用Fiji组件提供的库和函数更加方便。
2.3 ImageJ2
ImageJDev是一个由联邦政府资助的多机构项目,致力于开发ImageJ的下一代版本:“ImageJ2”。ImageJ2是对ImageJ的完全重写,其中包括当前的稳定版本ImageJ(“ImageJ1”)和兼容层,以便旧式插件和宏指令可以像当前在ImageJ1中一样运行。以下是ImageJDev项目目标摘要:
- 创建ImageJ的下一代版本,并根据社区的需求改进其核心架构。
- 为了确保ImageJ对尽可能广泛的社区保持有用和相关性,尽可能保持与ImageJ1的向后兼容性接近100%。
- 通过将ImageJ与现有的开源程序对接来扩展功能。
- 以清晰的愿景领导ImageJ的开发,避免重复工作
- 为ImageJ提供一个中央在线资源:程序下载、插件存储库、开发人员资源等等。
3. 获取帮助
3.1 图像分析求助
以下是与图像处理和科学图像分析相关的在线资源列表(没有特定顺序),补充了国际法学家协会网站上的外部资源列表。
科学图像处理中的伦理学:
- 用于研究完整性和图像处理的在线学习工具:这个由研究诚信办公室创建的网站解释了什么在科学图像处理中合适,什么不合适。
- 数字成像:伦理(在细胞成像设施核心,SEHSC):该网站由阿拉巴马大学伯明翰分校的Douglas Cromey编写,深入讨论了数字成像伦理的主题。它被推荐给所有的科学家。
科学图像处理:
- 关于科学图像处理您需要了解的内容:这个Fiji网页简单明了,解释了科学图像处理的基本方面。
- imagingbook.com:数字图像处理网站:Wilhelm Burger和Mark Burge的Java算法简介。这本技术书提供了一个现代的,自给自足的,介绍数字图像处理技术。提供了许多完整的Java实现,所有这些实现都在ImageJ中工作。
- 超媒体图像处理参考(HIPR2):由爱丁堡大学人工智能系开发,提供各种图像处理操作的在线参考和教程信息。
- IFN 维基百科:德累斯顿生物科技公司的成像设备网络(IFN)提供先进的显微镜系统和图像处理。该网站提供高质量的教学材料和外部资源的有用链接。
- stereology.info:生物科学的体视学信息,旨在介绍体视学领域的基本概念和先进概念。
3.2 ImageJ求助
以下是补充本指南的ImageJ帮助资源列表:
- ImageJ在线文档
- Fiji网站
- ImageJ信息和文档门户网站(ImageJ wikipage)
- ImageJ文档门户网站和YouTube频道上的Fiji视频教程。新的ImageJ用户可能会从Christine Labno的视频教程中获利。
- 用于显微镜的ImageJ手册
- 一些在线文档,其中大部分列在:http://imagej.nih.gov/ij/links.html and http://imagej.nih.gov/ij/docs/examples/
- 邮件列表:
URL | For |
---|---|
http://imagej.nih.gov/ij/list.html | 关于ImageJ的一般用户和开发人员讨论。 |
http://groups.google.com/group/fiji-users | 针对Fiji的用户讨论 |
http://groups.google.com/group/fiji-devel | 针对Fiji的开发人员讨论 |
http://imagejdev.org/mailman/listinfo/imagej-devel | 用于ImageJDev项目的沟通和协调。 |
http://imagejdev.org/mailing-lists | ImageJ相关项目的专用邮件列表 |
使用邮件列表:
如果你在使用ImageJ时遇到了问题,你应该在适当的列表中查询。ImageJ邮件列表是一个由知识渊博的全球用户社区订阅的无限制论坛,拥有大约2000名高级用户和开发人员。为了让你的问题得到及时的回答,你应该考虑以下几点:
- 发贴之前,请阅读文档文件(本节前面介绍过)。由于关键功能的实现与其文档之间总是存在自然滞后,因此明智的做法是简要查看ImageJ新闻网站(Help>ImageJ News. . .)。
- 查找邮件列表档案(Help>Mailing List. . .)。你的大部分问题可能已经得到了回答。
- 如果您认为自己遇到了bug,请尝试升级到ImageJ的最新版本(Help>Update ImageJ. . .)。您还应该检查您的操作系统是否正在运行最新版本的Java虚拟机。有关如何提交bug报告的详细说明,请访问:http://imagej.nih.gov/ij/docs/faqs.html#bug。
- 请记住,在大多数情况下,您甚至不需要连接到互联网就可以在自己的ImageJ安装中找到答案,因为在以后的版本中,查找命令或编写宏的启发式方法得到了显著改进。
- 与任何其他邮件列表一样,您应该始终遵循基本的网络礼仪,即:
a.使用描述性主题行–“Re:Problem with Image”>“Set Scale”命令比一般的“Re:Problem”更有效。
b.保持话题性——不要发布与消息线程无关的脱离话题的消息。
c.发送附件时要小心——不要附加大文件。例如,使用文件托管服务。
d.编辑回复–您应该只包含从问题到答案的逻辑流程所需的最低内容,即,只引用绝对必要和相关的内容。