当前位置: 首页 > news >正文

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宏语言不可或缺的指南:

  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的高级脚本功能:

  1. Albert Cardona关于用Jython编写Fiji脚本的广泛教程:http://www.ini.uzh.ch/~acardona/fiji-tutorial/
  2. 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 测试访问公网固定二级子域名 转载自内网穿透工具的文章&#xff1a;使用Nextcl…...

Revit问题:墙体被楼板剪切及材质库被锁定问题

一、Revit 墙体被楼板剪切怎么办? 建模的时候画的墙总是到楼板就停了&#xff0c;这是为什么&#xff1f;明明顶部约束到标高2了&#xff0c;这种情况如何解决&#xff1f; 首先来分析问题产生的原因是&#xff0c;我们在绘制楼板的时候选择了用楼板剪切重复部分的墙体。 解决…...

CPU信息查询与CPU测试方法总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请征得博主同意并附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/mainmaster/article/details/130267689 未经允许不能拷贝本文章内容发布到其他相关载体上。 CPU信息查询 我们知道在嵌入式系统…...

ChatGPT时代,我们可能站到了自然语言编程的大门口

ChatGPT大火&#xff0c;我现在有种感觉&#xff1a;我们可能站到了自然语言编程的门口&#xff0c;一脚下去&#xff0c;也许能把门踹开。 当然&#xff0c;也可能会踢到一块铁板。 回顾我们的编程之路&#xff0c;基本上就是一个编程门槛不断降低的历史。 最早的一批前辈们…...

深入理解AMQP协议

一.AMQP 是什么 AMQP&#xff08;Advanced Message Queuing Protocol&#xff0c; 高级消息队列协议&#xff09;是一个提供统一消息服务的 应用层标准高级 消息队列协议&#xff0c;是 应用层协议的一个 开放标准,为面向消息的中间件设计&#xff0c;是一个进程间传递 异步消息…...

大型体检管理系统源码:适用于大中型医院或独立体检中心

一套专业的体检管理系统源码&#xff0c;是医院、体检中心等单位开展体检业务的得力助手。它将以往人工操作的健康体检过程所得到信息转换成全信息化的电脑管理&#xff0c;使体检过程更为流畅、更有条理&#xff0c;更加便于管理&#xff0c;从而实现体检业务管理的自动化、信…...

ACM 1000 | 简单的a+b

文章目录 0x00 前言 0x01 题目描述 0x02 问题分析 0x03 代码设计 0x04 完整代码 0x05 运行效果 0x06 参考文献 0x07 总结 0x00 前言 C 语言网不仅提供 C 语言&#xff0c;还包括 C 、 java 、算法与数据结构等课程在内的各种入门教程、视频录像、编程经验、编译器教程及…...

系统分析师选择题笔记

目录 1、知识产权与标准化 1.1 保护范围与对象(★★★★) 1.2 保护期限(★) 1.3 知识产权人确定(★★★) 1.4 侵权判断(★★★) 1.5 标准的分类(★) 1.6 标准代号的识别(★) 2、系统配置与性能评价 2.1 系统性能概述 2.2 系统性能&#xff08;性能指标&#xff09;(★…...

MySQL隐式类型转换

当运算符与不同类型的操作数一起使用时&#xff0c;会发生类型转换以使操作数兼容。有些转换是隐式发生的。例如&#xff0c;MySQL会根据需要自动将字符串转换为数字&#xff0c;反之亦然。 转换规则 如果一个或两个参数都为NULL&#xff0c;则比较结果为NULL 。但是相等比较…...

IT知识百科:什么是SSID?

一、什么是SSID SSID&#xff08;Service Set Identifier&#xff09;是无线网络中的一个重要概念&#xff0c;它是一个用于标识无线局域网&#xff08;WLAN&#xff09;的名称。SSID可以看作是无线网络的名称&#xff0c;类似于有线网络中的网络名称或者路由器的名称。在无线…...

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日&#xff0c;由赛迪顾问主办的“2023 IT市场权威榜单”评选结果正式发布&#xff0c;美创数据库防火墙斩获新一代信息技术创新产品&#xff01; 美创数据库防火墙是一款抵御并消除由于应用程序业务逻辑漏洞或者缺陷所导致的数据库安全问题的专业级数据库安全产品&#x…...

30个超级有用的JavaScript单行代码

在这篇文章中&#xff0c;我列出了一个系列的 30 个 JavaScript 单行代码&#xff0c;它们在使用 vanilla js&#xff08;≥ ES6&#xff09;进行开发时非常有用。它们也是使用该语言在最新版本中为我们提供的所有功能来解决问题的优雅方式。 我将它们分为以下5大类&#xff1…...

【GitLab私有仓库】在Linux上用Gitlab搭建自己的私有库并配置cpolar内网穿透

前言 GitLab 是一个用于仓库管理系统的开源项目&#xff0c;使用Git作为代码管理工具&#xff0c;并在此基础上搭建起来的Web服务。 Gitlab是被广泛使用的基于git的开源代码管理平台, 基于Ruby on Rails构建, 主要针对软件开发过程中产生的代码和文档进行管理, Gitlab主要针对…...

诊断CAPL自动化(1)—— CANoe自带的诊断工程分析

🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe,博客目录大全,点击跳转👉 📘前言 🍅 学习CANoe,官方的实例工程就是最好的学习模板,对于初学者,…...

【dp】最长递增子序列

文章目录 方法一&#xff1a;动态规划方法二&#xff1a;贪心 二分查找构造最长递增子序列 方法一&#xff1a;动态规划 dp[i]&#xff1a;末尾元素为arr[i]的最长子序列的长度 从0遍历到i - 1&#xff0c;若遍历到的元素小于当前值arr[i]&#xff0c;表示当前值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配对可为您的网站提供额外的性能、可靠性和灵活性。 域名系统&#xff08;DNS&#xff09;是一种用于计算机、服务或连接到Internet或专用网络的任何资源的分层分布式命名系统&#xff0c;它将各种信息与分配给每个参与实体的域名相关联&#xff0c;它基…...

7.4.分块查找

一.分块查找的算法思想&#xff1a; 1.实例&#xff1a; 以上述图片的顺序表为例&#xff0c; 该顺序表的数据元素从整体来看是乱序的&#xff0c;但如果把这些数据元素分成一块一块的小区间&#xff0c; 第一个区间[0,1]索引上的数据元素都是小于等于10的&#xff0c; 第二…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

Opencv中的addweighted函数

一.addweighted函数作用 addweighted&#xff08;&#xff09;是OpenCV库中用于图像处理的函数&#xff0c;主要功能是将两个输入图像&#xff08;尺寸和类型相同&#xff09;按照指定的权重进行加权叠加&#xff08;图像融合&#xff09;&#xff0c;并添加一个标量值&#x…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用&#xff0c;可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器&#xff0c;能够帮助开发者更好地管理复杂的依赖关系&#xff0c;而 GraphQL 则是一种用于 API 的查询语言&#xff0c;能够提…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序

一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...

蓝桥杯3498 01串的熵

问题描述 对于一个长度为 23333333的 01 串, 如果其信息熵为 11625907.5798&#xff0c; 且 0 出现次数比 1 少, 那么这个 01 串中 0 出现了多少次? #include<iostream> #include<cmath> using namespace std;int n 23333333;int main() {//枚举 0 出现的次数//因…...