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或专用网络的任何资源的分层分布式命名系统,它将各种信息与分配给每个参与实体的域名相关联,它基…...
手把手教你部署OpenClaw(小龙虾),打造专属AI数字员工
2026年,开源AI智能体OpenClaw(国内昵称“小龙虾”)凭借独特的“数字员工”定位迅速崛起,GitHub星标一路攀升至28万,成为当下最受开发者和办公人群青睐的开源AI项目。 一、OpenClaw核心优势解析 OpenClaw能在众多开源…...
别死记硬背了!一张图带你理清编译原理‘语法制导翻译’到‘代码优化’的核心链路
编译原理核心链路解析:从语法制导翻译到代码优化的实战指南 编译原理作为计算机科学的重要基石,常常让学习者感到知识点零散、难以形成系统认知。本文将以赋值语句为例,通过清晰的逻辑链路,展示从源代码到优化代码的完整编译过程&…...
MD500E无感观测器模型:顺逆风检测与启动功能,低速性能优越的浮点模型
MD500E无感观测器模型顺逆风检测和启动。 逆风可刹停,也可直接切入闭环运行。 低速性能良好,可零速启动,堵转不发散,可正反转切换。 提供原版论文。 电阻、电感、磁链偏差20%情况下,对观测器性能无影响。 注 本模型是M…...
GIL已死?不,它正被绕过!:细粒度原子操作、RCU模式与Zero-Copy共享内存在Python 3.13中的性能压测全记录
第一章:Python无锁GIL环境下的并发模型性能调优指南Python标准解释器(CPython)受全局解释器锁(GIL)限制,导致多线程无法真正并行执行CPU密集型任务。然而,在无GIL环境(如PyPy的某些配…...
Multisim课程设计救星:从卡诺图到仿真,手把手搞定五人表决器(附源文件)
五人表决器数字电路设计实战:从卡诺图到Multisim仿真的全流程解析 第一次拿到数字电路课程设计任务书时,看着"五人表决器"这个题目,我的大脑和实验室的示波器一样一片空白。直到在面包板上成功点亮第一个LED指示灯,才真…...
Overleaf-Workshop:在VSCode中实现Open Overleaf项目的无缝协作与高效管理
Overleaf-Workshop:在VSCode中实现Open Overleaf项目的无缝协作与高效管理 【免费下载链接】Overleaf-Workshop Open Overleaf/ShareLaTex projects in vscode, with full collaboration support. 项目地址: https://gitcode.com/gh_mirrors/ov/Overleaf-Workshop…...
老生常谈:聊聊mysql幻读问题?
之前有位小伙伴美团三面,一直被追求「幻读是否被 MySQL 可重复度隔离级别彻底解决了?」之前我也提到过,MySQL InnoDB 引擎的默认隔离级别虽然是「可重复读」,但是它很大程度上避免幻读现象(并不是完全解决了࿰…...
intv_ai_mk11效果实测:在中文长文本理解任务(>3000字技术文档)中摘要准确率与人工对比达92%
intv_ai_mk11效果实测:在中文长文本理解任务(>3000字技术文档)中摘要准确率与人工对比达92% 1. 引言:AI长文本理解的新突破 当我们面对动辄数千字的技术文档时,如何快速抓住核心内容一直是个难题。传统方法要么依…...
Streamlit像素UI深度优化教程:解决Ostrakon-VL终端文字遮挡问题
Streamlit像素UI深度优化教程:解决Ostrakon-VL终端文字遮挡问题 1. 项目背景与问题分析 在开发Ostrakon-VL零售扫描终端时,我们选择了一种独特的像素艺术风格UI设计。这种高饱和度的8-bit复古游戏美学虽然提升了用户体验的趣味性,但也带来了…...
晶闸管全球市场:2026-2032年CAGR为3.4%
据恒州诚思调研统计,2025年全球晶闸管收入规模约59.96亿元,到2032年收入规模将接近75.71亿元,2026-2032年CAGR为3.4%。晶闸管作为功率半导体领域的核心器件,凭借其独特的性能在众多电力电子场景中发挥着关键作用。全球晶闸管&…...
