建設(shè)商業(yè)門戶網(wǎng)站的重要適合獎(jiǎng)勵(lì)自己的網(wǎng)站免費(fèi)
ImageJ 用戶手冊-第三部分
- ImageJ擴(kuò)展
- 14. 宏指令(Macros)
- 宏程序設(shè)計(jì)
- 15. 腳本( Scripts)
- JavaScript編程
- 16. 插件( Plugins)
- 開發(fā)ImageJ插件
- 17. 用其他語言編寫腳本
- Fiji腳本編輯器
- 18. 從命令行運(yùn)行ImageJ
ImageJ擴(kuò)展
ImageJ功能可以通過宏、腳本或插件形式的可加載代碼模塊進(jìn)行擴(kuò)展。ImageJ網(wǎng)站提供了300多個(gè)宏、500多個(gè)插件和20多個(gè)腳本。以下是對這三種類型的ImageJ附加組件的簡短描述:
- 宏(Macros)——執(zhí)行一系列ImageJ命令的最簡單方法。ImageJ宏語言是一種類似Java的語言,包含一組控制結(jié)構(gòu)、運(yùn)算符和內(nèi)置函數(shù),可用于調(diào)用內(nèi)置命令和其他宏。宏代碼存儲(chǔ)在文本文件中(擴(kuò)展名為.txt和.ijm)。
- 插件(Plugins)——比宏功能強(qiáng)大、靈活、快速得多(ImageJ的大多數(shù)內(nèi)置菜單命令實(shí)際上都是插件),但更難編寫和調(diào)試。
- 腳本(Scripts)——ImageJ使用Mozilla Rhino解釋器來運(yùn)行JavaScripts。與插件類似,腳本可以完全訪問所有ImageJ和Java API,但不需要編譯(腳本和宏以解釋方式運(yùn)行)。另一方面,腳本缺乏宏語言的簡單性,在ImageJ中的集成度較低。
14. 宏指令(Macros)
宏是一個(gè)簡單的程序,可以自動(dòng)執(zhí)行一系列ImageJ命令。創(chuàng)建宏的最簡單方法是使用命令記錄器記錄一系列命令。宏將保存為文本文件(擴(kuò)展名為.txt或.ijm),安裝后,通過在Plugins>Macros>submenu中選擇宏名稱、按鍵執(zhí)行,或者在使用宏工具的情況下,通過單擊ImageJ工具欄中的圖標(biāo)執(zhí)行。此外,任何放置在ImageJ/plugins中的擴(kuò)展名為.ijm的宏文件都將像任何其他插件一樣安裝在Plugins>menu中。
ImageJ網(wǎng)站上有300多個(gè)示例宏。要嘗試一個(gè),請?jiān)跒g覽器窗口中打開它,并將其直接拖動(dòng)到Main ImageJ窗口,或者將其復(fù)制到剪貼板,切換到IJ,然后運(yùn)行File.New.System剪貼板,將宏粘貼到新的編輯器窗口中。使用編輯器的Macros>Run Macro命令運(yùn)行它。大多數(shù)示例宏也可以在ImageJ文件夾中的宏文件夾中找到。
宏程序設(shè)計(jì)
ImageJ社區(qū)創(chuàng)建了關(guān)于宏編程的優(yōu)秀教程。這些資源是ImageJ宏語言不可或缺的指南:
- The ImageJ Macro Language — Programmer’s Reference Guide(ImageJ宏語言-程序員參考指南):這本小冊子匯編了分布在網(wǎng)絡(luò)上的與ImageJ的宏編程相關(guān)的大部分文檔。它為ImageJ宏語言提供了最新的可打印手冊:http://imagej.nih.gov/ij/docs/macro_reference_guide.pdf
- 內(nèi)置宏函數(shù)網(wǎng)頁(編輯器中的Help>Macro Functions and Macros>Function Improved Finder)是可以從ImageJ宏語言調(diào)用的內(nèi)置函數(shù)的不可或缺的指南。它有完整的文件記錄并不斷更新:http://imagej.nih.gov/ij/developer/macro/functions.html
- Fiji網(wǎng)頁上的教程:http://fiji.sc/wiki/index.php/Introduction_into_Macro_Programming
- ImageJ文檔門戶網(wǎng)站上的操作方法和教程:http://imagejdocu.tudor.lu/
15. 腳本( Scripts)
ImageJ 1.41中引入了JavaScript腳本,以實(shí)現(xiàn)對ImageJ和Java API的完全訪問。ImageJ使用Java 1.6 for Linux和Windows內(nèi)置的Mozilla Rhino解釋器來運(yùn)行JavaScript。Mac用戶和Java早期版本的用戶必須將JavaScript.jar下載到插件文件夾中。這個(gè)JAR文件可以在ImageJ網(wǎng)站上找到,并且包含在ImageJ/plugins/jars中的ImageJ的Mac版本中。
示例JavaScript程序可在imagej.nih.gov/ij/macros/js/上找到??梢允褂肦ecorder(Plugins>Macros>Record)生成線程安全的JavaScript代碼。腳本可以在編輯器中作為任何其他宏打開。擴(kuò)展名為.js的腳本可以使用Macros>Run Macro 來運(yùn)行,否則必須使用Macros>Evaluate JavaScript 。
JavaScript編程
關(guān)于ImageJ JavaScript腳本的資源包括:
- ImageJ網(wǎng)站,文檔不斷增加:http://imagej.nih.gov/ij/developer/javascript.html
- Fiji網(wǎng)頁上的教程:http://fiji.sc/wiki/index.php/Javascript_Scripting
- 在線腳本存儲(chǔ)庫:http://imagej.nih.gov/ij/macros/js/
16. 插件( Plugins)
插件是一個(gè)比宏和腳本強(qiáng)大得多的概念,而且ImageJ的大多數(shù)內(nèi)置菜單命令實(shí)際上都是作為插件實(shí)現(xiàn)的。引用維爾納·拜勒的話:插件被實(shí)現(xiàn)為Java類,這意味著您可以使用Java語言的所有功能,訪問完整的ImageJ API,并在插件中使用所有標(biāo)準(zhǔn)和第三方Java API。這為插件中可以做的事情提供了廣泛的可能性。插件最常見的用途是對圖像或圖像堆棧執(zhí)行一些分析或處理的過濾器,以及用于從文件或其他設(shè)備讀取/寫入本機(jī)不支持的格式的I/O插件。但正如您在查看ImageJ插件頁面上列出的插件時(shí)所看到的,您可以使用插件做許多其他事情,例如渲染圖形或創(chuàng)建ImageJ圖形用戶界面的擴(kuò)展。
ImageJ/Plugins/文件夾中的插件列在Plugins>menu的底部。只有插件文件夾中名稱中至少有一個(gè)下劃線的.class和.jar文件才會(huì)被安裝。請注意,在IJ 1.44d及更高版本中,ImageJ不再在啟動(dòng)時(shí)自動(dòng)在以小寫字母開頭的JAR文件目錄中安裝插件。
開發(fā)ImageJ插件
有關(guān)如何開發(fā)ImageJ插件的更多信息,請?jiān)L問以下文檔:
- ImageJ網(wǎng)站上的開發(fā)人員資源頁面:http://imagej.nih.gov/ij/developer/index.html
- Fiji網(wǎng)頁上的專用教程:http://fiji.sc/wiki/index.php/Introduction_into_Developing_Plugins
- ImageJ文檔門戶網(wǎng)站上的專用教程:http://imagejdocu.tudor.lu/
- ImageJDev網(wǎng)頁上的專用教程:http://developer.imagej.net/ides
17. 用其他語言編寫腳本
使用Fiji及其強(qiáng)大的編輯器,ImageJ可以支持其他語言。Fiji增加了對BeanShell、Clojure、Python和Ruby的額外支持。以下文檔將向您介紹Fiji的高級(jí)腳本功能:
- Albert Cardona關(guān)于用Jython編寫Fiji腳本的廣泛教程:http://www.ini.uzh.ch/~acardona/fiji-tutorial/
- Fiji網(wǎng)頁上的專用教程:http://fiji.sc/wiki/index.php/Scripting_comparisons
Fiji腳本編輯器
Fiji擁有比ImageJ內(nèi)置編輯器更強(qiáng)大的腳本編輯器。當(dāng)使用Fiji支持的任何語言(包括ImageJ宏語言)編寫腳本時(shí),Fiji編輯器都是一個(gè)寶貴的幫助。該編輯器具有完全撤消支持、語法高亮顯示、選項(xiàng)卡、書簽和其他一些簡化ImageJ中腳本工作流程的工具。欲了解更多信息,請?jiān)L問Fiji
http://fiji.sc/wiki/index.php/Script_Editor編輯網(wǎng)站
。
18. 從命令行運(yùn)行ImageJ
ImageJ是作為桌面應(yīng)用程序設(shè)計(jì)的。然而,它可以在沒有圖形環(huán)境(headless模式)的情況下運(yùn)行,方法是在ij.jar類路徑中添加一個(gè)特殊的庫(headless.jar),該庫覆蓋關(guān)鍵的ImageJ類以更好地?zé)o圖形化工作。
ImageJ識(shí)別以下命令行選項(xiàng):
- “file-name”:打開一個(gè)文件
- -ijpath path:指定包含插件目錄的目錄路徑
- -port:指定ImageJ用于確定另一個(gè)實(shí)例是否正在運(yùn)行的端口。
- -macro path [arg]:運(yùn)行宏或腳本,向其傳遞一個(gè)可選參數(shù),該參數(shù)可以使用getArgument()進(jìn)行檢索。
- -batch path [arg]:以批處理模式(無GUI)運(yùn)行宏或腳本,并向其傳遞可選參數(shù)。當(dāng)宏結(jié)束時(shí),ImageJ退出。
- -eval “macro code”:計(jì)算宏代碼。
- -run command:運(yùn)行ImageJ菜單命令
- -debug:在調(diào)試模式下運(yùn)行ImageJ。