希望這篇博文可以幫助大家快速瞭解ImageJ的二次開發,省去大家前期的探索時間!
一.ImageJ簡介
ImageJ是一款由NIH(National Institutes of Health,美國國家衛生研究院)發起,可用於Windows,Mac,OSX和Linux等操作系統的圖像處理開元軟件,ImageJ小巧,只有5MB左右,界面簡潔,容易上手。
二.ImageJ軟件安裝
1.下載ImageJ軟件
在百度搜ImageJ,進入官網
2.點擊Downlaod,進入下載界面
圖2
3.下載後解壓,解壓目錄下的ImageJ.exe文件便可以運行軟件,打開後的軟件界面如下:
圖3
三. ImageJ的二次開發
1. 配置java的運行環境
(1)在ORACL官網上下載jdk:
我這裏的版本是jdk-6u10-rc2-bin-b32-windows-i586-p-12_set_2008
(2)雙擊此exe文件,進入安裝嚮導,安裝路徑可以修改,這裏就安裝在默認路徑下:C:\Program Files\Java\jdk1.6.0_10目錄下
圖4
(3)點擊“下一步”,直到完成安裝
(4)安裝完畢後還要進行jdk運行環境配置,首先在系統屬性中打開到如下界面:
圖5
在系統變量中新建第一個變量名:JAVA_HOME,變量值爲前面jdk的安裝路徑,這裏是C:\Program Files\Java\jdk1.6.0_10
新建第二個變量名:CLASSPATH,變量值爲 .:%JAVA_HOME%\lib,注意符號添加正確,.:不要缺少
添加path變量,注意path變量如果已經有了,不要新建了。在變量值後面添加一個分號;隔開,在後面加入%JAVA_HOME%\lib,不然他會覆蓋之前的值
(5)到此jdk環境配置結束
2. java的開發工具Eclipse的使用
(1)在官網上下載開發工具Eclipse,這裏用的版本是eclipse-sdk-3.3-win32
(2)下載好後直接運行,出現默認工作空間路徑選擇,可以手動改變路徑,設置後生成的項目都會保存在此目錄下,本文的路徑爲D:\java3
(3)配置好後出現此界面
圖7
3. 驗證實驗小程序(驗證前面的JDK和Eclipse已經安裝配置好)
(1)選擇菜單File下New選項,選擇java projec,打開如下對話框
圖8
輸入工程名,例如test1,輸入完畢點擊下一步直至完成
(2) 右擊剛纔新建的工程,創建一個包
輸入包名,例如com.test1
(3) 右擊com.test1,在彈跳出的選項中新建類
圖10
輸入類名,例如shiyan1
(4) 類名新建好後,會出現帶有頭文件的java程序
(5) 編輯程序如下:
(6) 如果程序能正常運行,則在console窗口中會顯示如下果:
4. 調用imagej源程序包中的圖像處理函數
(1) 在imagej官網上下載imageJ源碼包,這裏我用的版本是ij148r-src
(2) 按照上述方法新建一個工程project1
(3) 打開ij148r-src的子文件夾source,裏面包含的文件如下圖:
(4) 打開工程project1文件夾,裏面包含的文件如下:
圖15
(5) 將source中的plugins,macros,images文件夾和IJ_Props.txt文件拷貝到project1文件夾中,再把source中的ij文件夾拷貝到project1的子文件夾src中
(6) 右擊eclipse中project1工程,在彈跳窗口中選擇”Refresh”選項進行刷新,便能在src中看到imagej源碼包
(7) 再按照上述方法新建一個包com.project1和類inverse
(8) 爲了驗證imagej源碼包按上述操作後,可以成功調用,編輯一份java程序,此程序中調用了imagej的源碼函數,實現了圖像的打開,顯示,以及反轉操作
運行結果如下:
源碼如下:
package com.project1;
import ij.process.ImageProcessor;
import ij.io.OpenDialog;
import ij.ImagePlus;
public class inverse {
public static void main(String args[]) {
OpenDialog wo=new OpenDialog("");
System.out.println("你打開的圖像的路徑是:");
String we=wo.getPath();
System.out.println(we);
//--------圖像顯示
ImagePlus ming=new ImagePlus(we);
ming.setTitle("原圖像");
ming.show();
ImageProcessor ip1=ming.getProcessor();
ImageProcessor ip2=ip1.duplicate();
ip2.invert();
ImagePlus ming2=new ImagePlus("平滑後的圖像",ip2);//圖像有標題
ming2.show();
}
}
這樣你就能夠使用ImageJ中的圖像處理函數了!深入的東西還要讀者自己去挖掘!
ImageJ的源碼函數衆多,可以在imagej官網上查找每個類所包含的成員函數和成員變量: