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或专用网络的任何资源的分层分布式命名系统,它将各种信息与分配给每个参与实体的域名相关联,它基…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别
一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...

Module Federation 和 Native Federation 的比较
前言 Module Federation 是 Webpack 5 引入的微前端架构方案,允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”
目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
Python 包管理器 uv 介绍
Python 包管理器 uv 全面介绍 uv 是由 Astral(热门工具 Ruff 的开发者)推出的下一代高性能 Python 包管理器和构建工具,用 Rust 编写。它旨在解决传统工具(如 pip、virtualenv、pip-tools)的性能瓶颈,同时…...
Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信
文章目录 Linux C语言网络编程详细入门教程:如何一步步实现TCP服务端与客户端通信前言一、网络通信基础概念二、服务端与客户端的完整流程图解三、每一步的详细讲解和代码示例1. 创建Socket(服务端和客户端都要)2. 绑定本地地址和端口&#x…...

用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...