首页 > 其他分享 >ImageJ 用户手册——第三部分(ImageJ扩展)

ImageJ 用户手册——第三部分(ImageJ扩展)

时间:2024-07-25 15:20:43浏览次数:11  
标签:脚本 ImageJ 插件 http 扩展 编辑器 用户手册 Fiji

ImageJ功能可以通过脚本插件形式的可加载代码模块进行扩展。ImageJ网站提供了300多个宏、500多个插件和20多个脚本。以下是对这三种类型的ImageJ附加组件的简短描述:

宏(Macros)——执行一系列ImageJ命令的最简单方法。ImageJ宏语言是一种类似Java的语言,包含一组控制结构、运算符和内置函数,可用于调用内置命令和其他宏。宏代码存储在文本文件中(扩展名为.txt和.ijm)。
插件(Plugins)——比宏功能强大、灵活、快速得多(ImageJ的大多数内置菜单命令实际上都是插件),但更难编写和调试。
脚本(Scripts)——ImageJ使用Mozilla Rhino解释器来运行JavaScripts。与插件类似,脚本可以完全访问所有ImageJ和Java API,但不需要编译(脚本和宏以解释方式运行)。另一方面,脚本缺乏宏语言的简单性,在ImageJ中的集成度较低。

14. 宏指令(Macros)
宏是一个简单的程序,可以自动执行一系列ImageJ命令。创建宏的最简单方法是使用命令记录器记录一系列命令。宏将保存为文本文件(扩展名为.txt或.ijm),安装后,通过在Plugins>Macros>submenu中选择宏名称、按键执行,或者在使用宏工具的情况下,通过单击ImageJ工具栏中的图标执行。此外,任何放置在ImageJ/plugins中的扩展名为.ijm的宏文件都将像任何其他插件一样安装在Plugins>menu中。

ImageJ网站上有300多个示例宏。要尝试一个,请在浏览器窗口中打开它,并将其直接拖动到Main ImageJ窗口,或者将其复制到剪贴板,切换到IJ,然后运行File.New.System剪贴板,将宏粘贴到新的编辑器窗口中。使用编辑器的Macros>Run Macro命令运行它。大多数示例宏也可以在ImageJ文件夹中的宏文件夹中找到。

宏程序设计
ImageJ社区创建了关于宏编程的优秀教程。这些资源是ImageJ宏语言不可或缺的指南:

1.The ImageJ Macro Language — Programmer’s Reference Guide(ImageJ宏语言-程序员参考指南):这本小册子汇编了分布在网络上的与ImageJ的宏编程相关的大部分文档。它为ImageJ宏语言提供了最新的可打印手册:http://imagej.nih.gov/ij/docs/macro_reference_guide.pdf
2.内置宏函数网页(编辑器中的Help>Macro Functions and Macros>Function Improved Finder)是可以从ImageJ宏语言调用的内置函数的不可或缺的指南。它有完整的文件记录并不断更新:http://imagej.nih.gov/ij/developer/macro/functions.html
3.Fiji网页上的教程:http://fiji.sc/wiki/index.php/Introduction_into_Macro_Programming
4.ImageJ文档门户网站上的操作方法和教程:http://imagejdocu.tudor.lu/
15. 脚本( Scripts)

ImageJ 1.41中引入了JavaScript脚本,以实现对ImageJ和Java API的完全访问。ImageJ使用Java 1.6 for Linux和Windows内置的Mozilla Rhino解释器来运行JavaScript。Mac用户和Java早期版本的用户必须将JavaScript.jar下载到插件文件夹中。这个JAR文件可以在ImageJ网站上找到,并且包含在ImageJ/plugins/jars中的ImageJ的Mac版本中。

示例JavaScript程序可在imagej.nih.gov/ij/macros/js/上找到。可以使用Recorder(Plugins>Macros>Record)生成线程安全的JavaScript代码。脚本可以在编辑器中作为任何其他宏打开。扩展名为.js的脚本可以使用Macros>Run Macro 来运行,否则必须使用Macros>Evaluate JavaScript 。

JavaScript编程
关于ImageJ JavaScript脚本的资源包括:

1.ImageJ网站,文档不断增加:http://imagej.nih.gov/ij/developer/javascript.html
2.Fiji网页上的教程:http://fiji.sc/wiki/index.php/Javascript_Scripting
3.在线脚本存储库:http://imagej.nih.gov/ij/macros/js/

16. 插件( Plugins)
插件是一个比宏和脚本强大得多的概念,而且ImageJ的大多数内置菜单命令实际上都是作为插件实现的。引用维尔纳·拜勒的话:插件被实现为Java类,这意味着您可以使用Java语言的所有功能,访问完整的ImageJ API,并在插件中使用所有标准和第三方Java API。这为插件中可以做的事情提供了广泛的可能性。插件最常见的用途是对图像或图像堆栈执行一些分析或处理的过滤器,以及用于从文件或其他设备读取/写入本机不支持的格式的I/O插件。但正如您在查看ImageJ插件页面上列出的插件时所看到的,您可以使用插件做许多其他事情,例如渲染图形或创建ImageJ图形用户界面的扩展。

ImageJ/Plugins/文件夹中的插件列在Plugins>menu的底部。只有插件文件夹中名称中至少有一个下划线的.class和.jar文件才会被安装。请注意,在IJ 1.44d及更高版本中,ImageJ不再在启动时自动在以小写字母开头的JAR文件目录中安装插件。

开发ImageJ插件
有关如何开发ImageJ插件的更多信息,请访问以下文档:

1.ImageJ网站上的开发人员资源页面:http://imagej.nih.gov/ij/developer/index.html
2.Fiji网页上的专用教程:http://fiji.sc/wiki/index.php/Introduction_into_Developing_Plugins
3.ImageJ文档门户网站上的专用教程:http://imagejdocu.tudor.lu/
4.ImageJDev网页上的专用教程:http://developer.imagej.net/ides

17. 用其他语言编写脚本
使用Fiji及其强大的编辑器,ImageJ可以支持其他语言。Fiji增加了对BeanShell、Clojure、Python和Ruby的额外支持。以下文档将向您介绍Fiji的高级脚本功能:

Albert Cardona关于用Jython编写Fiji脚本的广泛教程:http://www.ini.uzh.ch/~acardona/fiji-tutorial/
Fiji网页上的专用教程:http://fiji.sc/wiki/index.php/Scripting_comparisons

Fiji脚本编辑器

Fiji拥有比ImageJ内置编辑器更强大的脚本编辑器。当使用Fiji支持的任何语言(包括ImageJ宏语言)编写脚本时,Fiji编辑器都是一个宝贵的帮助。该编辑器具有完全撤消支持、语法高亮显示、选项卡、书签和其他一些简化ImageJ中脚本工作流程的工具。欲了解更多信息,请访问Fiji

http://fiji.sc/wiki/index.php/Script_Editor编辑网站

18. 从命令行运行ImageJ
ImageJ是作为桌面应用程序设计的。然而,它可以在没有图形环境(headless模式)的情况下运行,方法是在ij.jar类路径中添加一个特殊的库(headless.jar),该库覆盖关键的ImageJ类以更好地无图形化工作。

ImageJ识别以下命令行选项:

“file-name”:打开一个文件
-ijpath path:指定包含插件目录的目录路径
-port:指定ImageJ用于确定另一个实例是否正在运行的端口。
-macro path [arg]:运行宏或脚本,向其传递一个可选参数,该参数可以使用getArgument()进行检索。
-batch path [arg]:以批处理模式(无GUI)运行宏或脚本,并向其传递可选参数。当宏结束时,ImageJ退出。
-eval “macro code”:计算宏代码。
-run command:运行ImageJ菜单命令
-debug:在调试模式下运行ImageJ。

标签:脚本,ImageJ,插件,http,扩展,编辑器,用户手册,Fiji
From: https://www.cnblogs.com/zzzsj/p/18323191

相关文章

  • 【正在编辑中...】ENVI56扩展工具:添加自定义光谱指数——以NDWI和NDBSI为例
    本工具适用于ENVI5.6及以上版本(本人测试最低版本为5.6.3)。ENVI内置了上百种指数公式,但是大家在使用过程中肯定会有自定义指数的需求。在之前只能通过波段运算工具实现指数计算,现在可以通过本工具方便的添加自定义光谱指数,然后可以通过如下工具或API使用新指数:光谱指数工具:Too......
  • 【知识扩展】C/C++编译原理
    C/C++编译原理一、前言二、编译原理1、预处理2、编译3、汇编4、链接三、头文件和库文件1、头文件2、库文件四、编译器1、GCC编译器1.1、编译过程1.1.1、预处理1.1.2、编译1.1.3、汇编1.1.4、链接1.2、创建静态库1.2.1、静态库源码编译成.o的文件1.2.2、编译静态库1.......
  • DNS应用以及扩展知识
    (一)DNS正向代理1.首先在DNS服务器上安装bind包,安装环境此部分参考上一个笔记2.修改配置文件vim/etc/named.conf在配置文件中加上"any;"3.然后配置/etc/named.rfc1912.zonesw文件添加选中部分选中部分有一个file文件,需要创建一个同名文件为了方便起见,在/var/named/底......
  • Spring框架配置扩展
    Spring框架的配置扩展是提高应用程序灵活性和可维护性的关键部分。通过不同的配置方法,我们可以更好地管理数据源、拆分配置文件、自动装配Bean以及控制Bean的作用域1.配置数据源数据源配置是Spring应用程序中的关键部分,它直接影响到数据库操作的性能和管理(1)使用proper......
  • PHP现代化构建工具: 无需修改任何代码和扩展将你的ThinkPHP项目性能提高20倍
    我要分享一个令人激动的黑科技:PRipple使用这个项目能够在无需修改任何代码且无需第三方扩展的前提下,将你的Laravel项目性能提高20倍。他仅仅依赖于PHP原生的pcntl/posix/fiber/sockets项目灵感这个项目灵感来源于PHP8.1引入的fiber特性,以及Swoole和Workerman的......
  • 单队玩法扩展多队
    【阵法扩展】1.创建新阵法|复用旧阵法:根据功能情况,决定是采用何种方式。具体配置位置:formation_data的[多队阵法]2.创建新阵法:       策划配置项:构建新的多队id,构建此多队id下的各个阵法,如下例子服务端处理项:阵法初始化,不同于单......
  • 线段树扩展学习
    前言来补一下暑期集训的坑。正文标记可持久化这个很好理解,在进行区间修改的时候,不下传懒标记,查询的时候直接对每一层再进行处理即可。这个主要用于线段树分治,所以理解就行,代码不给了。动态开点之前一直不太会,现在来补一下。这种线段树主要用于优化空间复杂度。就是对于下......
  • 2024年5款VSCode实用扩展推荐
    1.GitHubCopilot扩展说明:您可以在VisualStudioCode中使用Copilot来生成代码、修复错误、询问有关代码的问题等等。地址:https://marketplace.visualstudio.com/items?itemName=GitHub.copilot2.AIFlowchart2024扩展说明:AIFlowchart它可以帮助您使用Mermaid.js语......
  • python 的注释(例如数据类)可以扩展到它生成的代码中吗?
    能看出python的注释扩展成​​什么吗?例如,对于与数据类相关的错误,有时试图找出它实际生成的代码有点棘手。例如:@dataclass(order=True)classPerson:name:strage:int=0classPerson:def__init__(self,name:str,age=0):self.name=name......
  • Chrome浏览器标签页扩展程序推荐
        Chrome浏览器的初始标签页只能添加几个标签,功能性受限,自由度不高,幸好新标签页支持扩展,网上有广受推荐的Infinity等,今天推荐一个更好看更好用的WeTab-AI。    相较Infinity,WeTab-AI的优点有:    1.底部支持堆放常用网站,类似手机,十分方便。 ......