按照我们钟爱的传统,当前版本以大hackathon的所在地命名:麦迪逊。这并不是严格意义上的斐济黑客马拉松,而是第一届 ImageJ2 黑客马拉松,由 Kevin Eliceiri 和 Curtis Rueden 促成。尽管如此,斐济及其插件的相当多的工作已经完成,所以这里是斐济麦迪逊。
如果您已经安装了 Fiji,请仅使用Fiji Updater进行更新(如果您已经有一段时间没有更新,请确保您首先更新仅更新程序)——不要忘记切换到高级模式并点击更新Java。
在(按字母顺序排列)的帮助下,已添加了超过 15 万行,删除了 4 万行:
阿尔伯特·卡多纳、本杰明·施密德、克里斯蒂安·蒂舍尔、柯蒂斯·鲁登、丹尼尔·詹姆斯·怀特、丹尼尔·塞奇、大卫·霍维斯、弗朗西斯科·希门尼斯·埃尔南德斯、格雷戈里·杰弗里斯、伊格纳西奥·阿尔甘达·卡雷拉斯、雅克·佩克罗、简·埃格林格、扬·芬克、让-伊夫·蒂内维斯、约翰内斯·辛德林、科塔·三浦、马克·朗埃尔、迈克尔·杜贝、菲利普Thévenaz、pogo、Robert Bryson-Richardson、Stephan Preibisch、Stephan Saalfeld、Tobias Pietzsch、Tom Kazimiers、Wilhelm Burger、Yili Zhao 和许多其他帮助者。
自斐济海德堡以来的变化:
新插件
感谢 Daniel James White 和 Tom Kazimiers,Time Stamper 插件得到了很大的增强,并最终更名为 Series Labeler。
感谢 David Hovis,添加了插件 TopoJ。
感谢 Jan Funke,添加了一个简单的 Graph Cut 分割插件。
添加了两个“宏观示例”来演示视错觉,这应该让每个人相信生物图像的定量分析确实比观看红绿图片并说服自己可能存在共定位信号要好得多。感谢丹尼尔·詹姆斯·怀特和加布里埃尔·兰迪尼。
感谢 EPFL 生物医学成像小组的 Michael Unser 的慷慨许可,Differentials 插件、MosaicJ、Philippe Thevenaz 的 PointPicker、他的 Shepp-Logan Phantom 插件、StackReg 插件和 Snakuscule 插件以及 Daniel Sage 的插件 扩展深度场 现在已在斐济分发。
感谢 Erik Meijering 的慷慨许可,在斐济分发他的一些插件的源代码,FeatureJ、RandomJ 和 TransformJ 现在也可以在斐济使用。
Linear Kuwahara 插件由 Christian Tischer 贡献。
Daniel Sage 的 MIJ 库可在 MATLAB 中使用 Fiji/ImageJ,现已包含在 Fiji 中。只需将 Fiji.app/scripts/ 添加到搜索路径并调用 Miji。
Kota Miura 贡献了时间颜色编码器,它可以对原始时间点进行 t 投影颜色编码。
添加了 Bio-Format 的 bfopen.m 以使用 MATLAB 中的斐济 Bio-Formats。感谢柯蒂斯·鲁登。
新的 3D Blob Segmentation 插件允许在斐济水平集框架支持的 3D 查看器中进行交互式 3D 分割。感谢欧文·弗里斯、阿尔伯特·卡多纳和本杰明·施密德。
Mark Longair 贡献了一些插件来计算 n 维图像的曲率,并根据 Frangi 的方法检测血管。
正确的 3D 漂移脚本使用 Stitching 3D 插件注册时间范围。感谢 Stephan Preibisch、Robert Bryson-Richardson 和 Albert Cardona。
Retinex 插件由 Francisco Jiménez Hernández 和 Gabriel Landini 添加。
现在有一个插件计算形状索引图,这是一个描述与图像对应的高度场形状的每像素值。
现在可以通过开始Plugins › Transform › Panorama equirectangular view将点的二值图像转换为点选择。
现在有一个插件可以将当前图像保存为 EPS(封装 PostScript)格式。感谢威廉·伯格。
使用Edit › Selection › Points from Mask查看 360° 全景照片并平移。感谢斯蒂芬·萨尔菲尔德。
用户可见的更改
在 Linux 上,Fiji 启动器即使使用比启动器编译时更旧的设置也可以运行。
Bio-Formats 插件经常更新,包括错误修复和改进,例如支持新的 LSM 710 格式。感谢 LOCI 和 Glencoe 团队。
Debian 软件包现在每周都会重建一次。马克·朗埃尔出色地完成了这项大量工作。
在 Debian 化的过程中,许多许可证都得到了澄清。
在 Linux 上,RAM 将不再被过度使用(这曾经导致多用户环境中严重的分页延迟)。
Fiji 现在可以在 MacOSX 上正确识别 64 位 Intel CPU。
Fiji 启动器现在接受不带路径的 –edit,使用新的空文件打开脚本编辑器。
对于较新的 MacOSX 版本,缺少 SECURITYSESSIONID 并不意味着无头操作。
当从多平台 Fiji.app/ 目录调用 Fiji 时,它不会尝试使用其他架构的 Java 运行时环境。 Fiji 启动器将在命令行选项之前解释 jvm.cfg,以便用户有机会覆盖错误的设置。感谢雅克·佩克罗。
在MacOSX上,当用户指定以32位模式打开时,斐济将不再忽视用户的愿望。感谢欧文·弗里兹和阿瑟·埃德尔斯坦。
由于 Fiji 源代码的许多部分现在依赖于 Java 1.6 或更高版本,因此当只有 Java 1.5 或更早版本可用时,retrotranslator 在 MacOSX 上会自动激活。感谢马克·朗埃尔。
斐济将能够使用放入 Fiji.app/lib/<platform>/ 中的本机库。
调用 fiji-<platform> --updater 会调用 Fiji Updater 的命令行版本;这在无头设置中很有用。
现在,任何脚本或宏都可以存在于任何菜单中,只需将其放入 Fiji.app/plugins/Scripts/ 即可。例如,如果您想在 Plugins › Examples › Extended Profile Plot 中有一个宏,您可以将其保存到 Fiji.app/plugins/Scripts/File/Import/。
一如既往,Fiji 经常与 ImageJ 同步,并且通过 Fiji 为 ImageJ 贡献了一些错误修复。感谢Wayne Rasband。
Fiji 的捆绑 Java 运行时环境现已版本为 1.6u24(要更新,请从 Fiji Updater 的 高级模式 运行 Update Java)。
TrakEM2 组件中有太多错误修复和改进。感谢阿尔伯特·卡多纳和斯蒂芬·萨尔菲尔德。
添加File › Import脚本以获取闭合多边形的剖面图。
将 Scale to DPI 功能添加到 Help › Refresh Menus 菜单,感谢 Curtis Rueden。
3D 查看器中的许多错误修复和改进。仅举几例:正交切片更改现在可记录,动画轴可指定,旋转步骤可调整,添加了 .stl 文件的导入/导出(对于 3D 打印机),边界框现在有刻度,传输函数可调整,自动选择单个对象,默认添加当前图像,ImageJ 不再允许拦截按键,可以同步多个 3D 查看器,现在有一个“拍摄快照”菜单项,全屏模式,为给定图像的网格着色,加载/保存所有时间点的地标,使地标的颜色可调等。感谢 Benjamin Schmid。
感谢 Peter C. Marks、Huub Hovens、Michael Doube 和 Ignacio Arganda-Carreras,Analyze Skeleton 插件经历了许多错误修复和改进。
Fiji 的 Arrow Tool 现在是可记录的,并且正如最初的预期,在 ImageJ 开发自己的工具版本之前,产生了通用工具基础设施,允许更轻松地开发新工具(并使用适当的 Java 而不是宏)。
自动阈值插件现在也支持 16 位图像。此模式尊重真正的 16 位直方图,而不是走捷径。在此过程中,黄法的速度得到了极大的提升。
现在,使用脚本语言编写脚本速度更快,因为从脚本编辑器运行脚本时默认会导入 ImageJ、Java 和 ImgLib 类。
Bug Submitter 插件会自动收集 Bug 报告中的更多信息,以帮助开发人员更好地了解环境。感谢马克·朗埃尔。
感谢 Albert Cardona,Clojure 脚本修复了一些错误。
感谢 Daniel James White,共定位_分析插件中修复了一些错误。
感谢 Jan Eglinger,修正了方向性插件的宏录制。
Fiji 对 Image › Adjust 的处理已经修复了许多错误,以及 Fiji 的无头模式(这将不再是 ImageJ2 的巧妙破解,而是一个正确的解决方案)。
为了方便教师和讲师,斐济可以在本地缓存示例图像,避免课程期间巨大的网络流量。
使用“最近的命令”(可通过 G 键使用)时,记录器会正确记录所选择的操作。
除了可用作菜单项的宏之外,脚本也会在脚本编辑器中打开,而不是在打开菜单之前按住 Shift 键时执行。在此过程中,主窗口的状态会告诉用户当前发生的情况。
Fiji Updater 现在使用系统范围的代理设置。
通过缓存文件的校验和,更新程序的速度显着加快。
通过 Debian 软件包安装 Fiji 时,更新程序被禁用。
Fiji Updater 现在支持多个更新站点。如果您有一个可以通过 SSH 访问的 Web 服务器,您可以发布自己的插件套件。
图像表达式解析器 已修复 ImageJ 1.44n 及更高版本中的回归问题,以及与文件名检测相关的两个错误。感谢阿尔伯特·卡多纳和让-伊夫·蒂内维斯。
关于 Bio-Formats 插件,修复了打开图像时的额外文件类型处理。感谢柯蒂斯·鲁登和格雷戈里·杰弗里斯。
感谢 Albert Cardona,Jython 解释器现在可以打印最后计算的表达式返回值。
使用新的 AbstractTool 框架,Lasso/Blow 工具现在更加强大(从而避免了由于宏处理所有鼠标输入而导致的计时问题)。 现在,多图像处理器会在启动前重置 Escape,并按照文档中的说明处理 .pgm 文件。
编译和运行命令不再需要对 Fiji.app/plugins/ 进行写访问,并且它可以在适当的时候解锁图像。
修复了一个错误,当 Fiji.app/plugins/ 的子目录中存在 .java 文件时,该错误会阻止 MBF 插件即时编译和运行。
Register › Transform Virtual Stack Slices got a checkbox to toggle interpolation. Thanks to Stephan Saalfeld.
Script_Editor 可以导出捆绑在 .jar 文件中的脚本,以供其他斐济用户安装和运行。
脚本编辑器中添加了几个模板。
在脚本编辑器中,可以调整字体和制表符大小。谢谢你,赵伊利。
脚本编辑器现在可以在编译前自动保存。感谢菲利普·泰维纳兹。
脚本编辑器中多个脚本的输出现在是分开的;仅当相应脚本的选项卡处于活动状态时,您才会看到输出。同样,运行脚本的脚本解释器现在是彼此独立的。
当脚本编辑器被要求打开图像时,它让 ImageJ 打开它们,而不是在新选项卡中打开乱码。感谢托马斯·巨楼。
即使用户将 ImageJ 更新到每日版本,脚本编辑器现在也可以使用。感谢Wayne Rasband。
脚本编辑器提供Register › Transform Virtual Stack Slices。感谢阿尔伯特·卡多纳。
脚本编辑器的启动时间显着缩短。
在脚本编辑器中,Plugins › Examples › Image To Tool Icon 将不再提供打开 .class 或 .jar 文件的功能。
为了实现互操作性,脚本编辑器现在对读取和写入文件强制使用 UTF-8 编码。
保存新文件时,脚本编辑器将默认为 Fiji.app/ 目录。当尝试在 MacOSX 上保存宏时,这会很有帮助,因为保存对话框不允许切换到 .app 目录。
您可以要求脚本编辑器将行换行而不是显示水平滚动条。此外,由于阿尔伯特·卡多纳 (Albert Cardona),它还可以标记空白并消灭小精灵。
Simple Neurite Tracer 现在可以执行 Sholl 分析并将图形导出为 .svg 或 .csv 文件。此外,还有许多修复和改进,包括导出为 .swc 选项,或者能够使用9键选择最接近鼠标指针的路径。此外,在 3D 查看器中选择路径也会在神经突追踪器中选择它。为了方便起见,有一个按钮可以在路径上运行 Fiji 的 Analyze Skeleton (2D/3D) 插件。用户界面已转换为更漂亮的 Swing 外观。感谢马克·朗埃尔。
SPIM 注册现在也可以处理多通道文件。它提供了余弦混合选项并具有更多改进。感谢斯蒂芬·普雷比什。
缝合插件速度加快,现在默认使用校准信息。感谢斯蒂芬·普雷比什。
Thread Killer 现在可以解锁所有图像,并且对于它要杀死的内容更加谨慎。
可训练分割插件现在可以处理图像堆栈。感谢 Verena Kaynig、Ignacio Arganda-Carreras 和 Albert Cardona。
粒子分析器 (3D) 处理现在对象少于 3 个的情况。
对齐图像插件使用目标图像的尺寸来得出结果。
分段编辑器可由 ImageJ 宏控制。感谢本杰明·施密德。
放大三个窗格时,所有窗格均使用右中心点。感谢马克·朗埃尔。
编写脚本时,您可以通过使用任何脚本语言中的新 Weaver.inline(…) 方法插入 Java 代码片段来加速关键部分。感谢阿尔伯特·卡多纳。
mpicbg 子模块中用于特征提取和转换的多项修复和改进,例如: 可以在没有几何一致性过滤器的情况下执行特征匹配。几何一致性过滤器有了一个新参数,即最小绝对内点数。向 TileConfiguration 添加了强大的回归异常值过滤器。对 CLAHE 局部对比度增强器进行了多项修复和改进,例如: 添加了滤镜的快速(实时)版本。修复了选择处理。修复了超出当前最小/最大范围的值传输。以多种方式支持 CompositeImages。添加了使用 Jama SVD 进行透视变换的齐次最小二乘拟合。交互式转换可以处理复合、堆栈和超堆栈。添加了一个简单但相对快速的光流变体,该变体基于像素的高斯加权邻域中的平方差之和。感谢斯蒂芬·萨尔菲尔德。
开发者可见的更改
对项目结构进行了相当多的清理;子模块中未包含的插件和库的源代码应该位于 src-plugins/<jarname>/<package>/<classname>.java 中,其中 <jarname> 是生成的 .jar 文件的基本名称。
现在有一个脚本可以编译和交叉编译ITK。
JNA 是从 Jython 和 JRuby 中提取的,因此可以使用较新的 jna.jar,而不会受到 Jython 或 JRuby 的 JNA 理念的影响。 现在有一个助手可以编译几个 ImageJ 版本。
我们有帮助脚本在 Linux 64 位上构建交叉编译器,以针对 win32、win64、MacOSX(32 位和 64 位 Intel、32 位 PowerPC)。
MacOSX PowerPC 的 Fiji 启动器再次出现,遗憾的是没有收到抱怨者的任何反馈,更不用说积极的反馈了。
我们现在有一个脚本可以从主 Fakefile 生成 Eclipse、Netbeans 和 IntelliJ 项目。
目前,FreeBSD 已为开发人员提供支持。
有一个后备 shell 脚本 - fiji-other.sh - 用于其他不受支持的平台。
get-sample-images 脚本现在支持无头操作。
为了防止签出多个子模块时“git status”等待时间过长,gitignore-in-submodules 现在可以理解“ignoredirty”子命令。
bin/identify-commit.py 也可以在预编译的 Fiji 启动器上使用。
在开发人员模式下,更新程序的“显示更改”还列出了 Fiji 启动器和 .jar 文件清单的更改。
当存在samples/时,它包含在生成的Fiji.app包中。
添加了一个方便的脚本来使用 Maven。
现在有一个帮助器可以查找给定 .jar 文件的所有依赖项(甚至是传递依赖项)。
每晚构建会生成一个稳定的 WebStart(根据 Fiji Updater 反映当前版本)和 Wiki 上的 PluginList。
添加了一个简单的脚本来反转 .pdf 文件的页面顺序,作为如何使用 iText 的示例。
帮助程序脚本 bin/ready-for-upload.bsh 可以确定上传之前的所有先决步骤是否已完成。
Apache 项目的 commons-math 库现已推出。
Fiji Build 现在可以构建 JNI 支持的插件;只需将 .c 或 .cxx 文件添加到 .jar 规则中,就会从本机源生成与 .jar 文件同名的共享库。使用fiji.JNI.loadLibrary("<name>")加载共享库。
将 jfreechart 升级到 1.0.13(从 1.0.9)。
将 JNA 更新至版本 3.2.7。
Fiji 包含一个基类 fiji.tool.AbstractTool,它可以轻松地将工具添加到工具栏,这些工具不受轮询宏支持,而是由适当的事件驱动 Java 类支持。
要从 16x16 图片生成工具图标,请使用File › Open。
自动阈值插件现在有一个可供其他插件的开发人员使用的 API。
Fiji Build 系统现在可以更有效地处理涉及 Jython 或 Beanshell 的规则。它避免将不需要的文件(例如 .DS_Store)包含到 .jar 目标中。该代码现在使用泛型,并且更容易被脚本和插件访问。 Fiji Build 现在可以同时使用多个 CPU 核心。可以通过将“-rebuild”附加到参数来强制重建目标。现在甚至可以在 MacOSX 上构建基于 Java3D 的规则。感谢 Mark Longair、Jacques Pecreaux 和 Curtis Rueden。
现在,开发人员有一种简单的方法来运行外部程序:fiji.SimpleExecuter。该类提供了许多方便的函数来在给定的工作目录中执行具有指定参数的程序,并且它提供了几种处理输出的模式:打印到 ImageJ 的日志窗口、打印到流或保存到字符串中。
对于斐济开发者来说,通过在同一菜单中对Plugins › Utilities › Fiji › New Fiji Tutorial和新斐济维基屏幕截图的增强,向斐济维基添加文档变得更加方便。
GenericDialogPlus 类中的文件和目录字段已得到改进,并且添加了方法 addImageChoice() 和 getNextImage()。
fiji-lib 现在提供了一个用于分割命令行和宏选项字符串的类,以及一个用于简单性能基准测试的 TicToc 帮助程序。
如果您想在自己的代码中添加类似于 ImageJ 的 Command Finder 的功能,可以使用 fiji.util.gui.CommandFinderBase。如果您想要访问 JMenuBar,则可以立即使用同一包中的 JFrameCommandFinder 类。感谢本杰明·施密德。
当在斐济的开发人员结账中查看特定文件和编号时,脚本编辑器会在 Web 浏览器中通过 gitweb 打开该特定位置(例如,这有助于通过 IRC 进行协作)。
子模块已移至modules/目录中。
您可以使用快捷 URL https://fiji.sc/<filename> 获取斐济 Git 管理的存储库中的源文件。
将 IntegralImages 作为库组件添加到 mpicbg 子模块中,以实现快速框过滤操作(均值、尺度、均值差等)。感谢斯蒂芬·萨尔菲尔德。