希望这篇博文可以帮助大家快速了解ImageJ的二次开发,省去大家前期的探索时间!
一.ImageJ简介
ImageJ是一款由NIH(National Institutes of Health,美国国家卫生研究院)发起,可用于Windows,Mac,OSX和Linux等操作系统的图像处理开元软件,ImageJ小巧,只有5MB左右,界面简洁,容易上手。
二.ImageJ软件安装
1.下载ImageJ软件
在百度搜ImageJ,进入官网
图1
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
图6
(3)配置好后出现此界面
图7
3. 验证实验小程序(验证前面的JDK和Eclipse已经安装配置好)
(1)选择菜单File下New选项,选择java projec,打开如下对话框
图8
输入工程名,例如test1,输入完毕点击下一步直至完成
(2) 右击刚才新建的工程,创建一个包
图9
输入包名,例如com.test1
(3) 右击com.test1,在弹跳出的选项中新建类
图10
输入类名,例如shiyan1
(4) 类名新建好后,会出现带有头文件的java程序
图11
(5) 编辑程序如下:
图12
(6) 如果程序能正常运行,则在console窗口中会显示如下果:
图13
4. 调用imagej源程序包中的图像处理函数
(1) 在imagej官网上下载imageJ源码包,这里我用的版本是ij148r-src
(2) 按照上述方法新建一个工程project1
(3) 打开ij148r-src的子文件夹source,里面包含的文件如下图:
图14
(4) 打开工程project1文件夹,里面包含的文件如下:
图15
(5) 将source中的plugins,macros,images文件夹和IJ_Props.txt文件拷贝到project1文件夹中,再把source中的ij文件夹拷贝到project1的子文件夹src中
(6) 右击eclipse中project1工程,在弹跳窗口中选择”Refresh”选项进行刷新,便能在src中看到imagej源码包
图16
(7) 再按照上述方法新建一个包com.project1和类inverse
(8) 为了验证imagej源码包按上述操作后,可以成功调用,编辑一份java程序,此程序中调用了imagej的源码函数,实现了图像的打开,显示,以及反转操作
运行结果如下:
图17
源码如下:
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官网上查找每个类所包含的成员函数和成员变量:
图18