ImageJ 用户手册——第三部分(ImageJ扩展)
ImageJ 用户手册-第三部分
- ImageJ扩展
- 14. 宏指令(Macros)
- 宏程序设计
- 15. 脚本( Scripts)
- JavaScript编程
- 16. 插件( Plugins)
- 开发ImageJ插件
- 17. 用其他语言编写脚本
- Fiji脚本编辑器
- 18. 从命令行运行ImageJ
ImageJ扩展
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宏语言不可或缺的指南:
- The ImageJ Macro Language — Programmer’s Reference Guide(ImageJ宏语言-程序员参考指南):这本小册子汇编了分布在网络上的与ImageJ的宏编程相关的大部分文档。它为ImageJ宏语言提供了最新的可打印手册:http://imagej.nih.gov/ij/docs/macro_reference_guide.pdf
- 内置宏函数网页(编辑器中的Help>Macro Functions and Macros>Function Improved Finder)是可以从ImageJ宏语言调用的内置函数的不可或缺的指南。它有完整的文件记录并不断更新:http://imagej.nih.gov/ij/developer/macro/functions.html
- Fiji网页上的教程:http://fiji.sc/wiki/index.php/Introduction_into_Macro_Programming
- 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脚本的资源包括:
- ImageJ网站,文档不断增加:http://imagej.nih.gov/ij/developer/javascript.html
- Fiji网页上的教程:http://fiji.sc/wiki/index.php/Javascript_Scripting
- 在线脚本存储库: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插件的更多信息,请访问以下文档:
- ImageJ网站上的开发人员资源页面:http://imagej.nih.gov/ij/developer/index.html
- Fiji网页上的专用教程:http://fiji.sc/wiki/index.php/Introduction_into_Developing_Plugins
- ImageJ文档门户网站上的专用教程:http://imagejdocu.tudor.lu/
- 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 用户手册——第三部分(ImageJ扩展)
ImageJ 用户手册-第三部分 ImageJ扩展14. 宏指令(Macros)宏程序设计 15. 脚本( Scripts)JavaScript编程 16. 插件( Plugins)开发ImageJ插件 17. 用其他语言编写脚本Fiji脚本编辑器 18. 从命令行运行ImageJ …...
RK3399平台开发系列讲解(PCI/PCI-E)PCIE相关配置说明
🚀返回专栏总目录 文章目录 一、DTS 配置二、menuconfig 配置三、cmdline 配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 本篇将介绍在使用 RK3399 平台 PCIE 时候的配置。 一、DTS 配置 ep-gpios = <&gpio3 13 GPIO_ACTIVE_HIGH>; 此项是设置 PCIe…...
NAS私有云存储 - 搭建Nextcloud私有云盘并公网远程访问
文章目录 摘要视频教程1. 环境搭建2. 测试局域网访问3. 内网穿透3.1 ubuntu本地安装cpolar3.2 创建隧道3.3 测试公网访问 4 配置固定http公网地址4.1 保留一个二级子域名4.1 配置固定二级子域名4.3 测试访问公网固定二级子域名 转载自内网穿透工具的文章:使用Nextcl…...
Revit问题:墙体被楼板剪切及材质库被锁定问题
一、Revit 墙体被楼板剪切怎么办? 建模的时候画的墙总是到楼板就停了,这是为什么?明明顶部约束到标高2了,这种情况如何解决? 首先来分析问题产生的原因是,我们在绘制楼板的时候选择了用楼板剪切重复部分的墙体。 解决…...
CPU信息查询与CPU测试方法总结
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请征得博主同意并附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/mainmaster/article/details/130267689 未经允许不能拷贝本文章内容发布到其他相关载体上。 CPU信息查询 我们知道在嵌入式系统…...
ChatGPT时代,我们可能站到了自然语言编程的大门口
ChatGPT大火,我现在有种感觉:我们可能站到了自然语言编程的门口,一脚下去,也许能把门踹开。 当然,也可能会踢到一块铁板。 回顾我们的编程之路,基本上就是一个编程门槛不断降低的历史。 最早的一批前辈们…...
深入理解AMQP协议
一.AMQP 是什么 AMQP(Advanced Message Queuing Protocol, 高级消息队列协议)是一个提供统一消息服务的 应用层标准高级 消息队列协议,是 应用层协议的一个 开放标准,为面向消息的中间件设计,是一个进程间传递 异步消息…...
大型体检管理系统源码:适用于大中型医院或独立体检中心
一套专业的体检管理系统源码,是医院、体检中心等单位开展体检业务的得力助手。它将以往人工操作的健康体检过程所得到信息转换成全信息化的电脑管理,使体检过程更为流畅、更有条理,更加便于管理,从而实现体检业务管理的自动化、信…...
ACM 1000 | 简单的a+b
文章目录 0x00 前言 0x01 题目描述 0x02 问题分析 0x03 代码设计 0x04 完整代码 0x05 运行效果 0x06 参考文献 0x07 总结 0x00 前言 C 语言网不仅提供 C 语言,还包括 C 、 java 、算法与数据结构等课程在内的各种入门教程、视频录像、编程经验、编译器教程及…...
系统分析师选择题笔记
目录 1、知识产权与标准化 1.1 保护范围与对象(★★★★) 1.2 保护期限(★) 1.3 知识产权人确定(★★★) 1.4 侵权判断(★★★) 1.5 标准的分类(★) 1.6 标准代号的识别(★) 2、系统配置与性能评价 2.1 系统性能概述 2.2 系统性能(性能指标)(★…...
MySQL隐式类型转换
当运算符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容。有些转换是隐式发生的。例如,MySQL会根据需要自动将字符串转换为数字,反之亦然。 转换规则 如果一个或两个参数都为NULL,则比较结果为NULL 。但是相等比较…...
IT知识百科:什么是SSID?
一、什么是SSID SSID(Service Set Identifier)是无线网络中的一个重要概念,它是一个用于标识无线局域网(WLAN)的名称。SSID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称。在无线…...
OpenAI-ChatGPT最新官方接口《从0到1生产最佳实例》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(十一)(附源码)
Production Best Practices 生产最佳实例 前言Introduction 导言Setting up your organization 设置您的组织Managing billing limits 管理计费限额API keys API密钥Staging accounts 演示账户 Building your prototype 构建您的原型Additional tips 其它技巧 Techniques for i…...
2023 IT市场权威榜单|美创数据库防火墙斩获“新一代信息技术创新产品”
4月20日,由赛迪顾问主办的“2023 IT市场权威榜单”评选结果正式发布,美创数据库防火墙斩获新一代信息技术创新产品! 美创数据库防火墙是一款抵御并消除由于应用程序业务逻辑漏洞或者缺陷所导致的数据库安全问题的专业级数据库安全产品&#x…...
30个超级有用的JavaScript单行代码
在这篇文章中,我列出了一个系列的 30 个 JavaScript 单行代码,它们在使用 vanilla js(≥ ES6)进行开发时非常有用。它们也是使用该语言在最新版本中为我们提供的所有功能来解决问题的优雅方式。 我将它们分为以下5大类࿱…...
【GitLab私有仓库】在Linux上用Gitlab搭建自己的私有库并配置cpolar内网穿透
前言 GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。 Gitlab是被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理, Gitlab主要针对…...
诊断CAPL自动化(1)—— CANoe自带的诊断工程分析
🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe,博客目录大全,点击跳转👉 📘前言 🍅 学习CANoe,官方的实例工程就是最好的学习模板,对于初学者,…...
【dp】最长递增子序列
文章目录 方法一:动态规划方法二:贪心 二分查找构造最长递增子序列 方法一:动态规划 dp[i]:末尾元素为arr[i]的最长子序列的长度 从0遍历到i - 1,若遍历到的元素小于当前值arr[i],表示当前值arr[i]可以和…...
docker容器:Docker-Compose
目录 一、Docker-Compose 1、Docker-Compose使用场景 2、Docker-Compose简介 3、Docker-Compose安装部署 4、YML文件编写注意事项 5、Compose配置常用字段 6、 Docker Compose 常用命令 7、Docker Compose 文件结构 8、docker Compose撰写nginx 镜像 9、docker Compos…...
如何使用DNS实现融合CDN功能
将托管DNS解决方案与CDN配对可为您的网站提供额外的性能、可靠性和灵活性。 域名系统(DNS)是一种用于计算机、服务或连接到Internet或专用网络的任何资源的分层分布式命名系统,它将各种信息与分配给每个参与实体的域名相关联,它基…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
Python:操作 Excel 折叠
💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...
Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
