没有合适的资源?快使用搜索试试~ 我知道了~
首页ImageJ中文开发教程
资源详情
资源推荐
ImageJ 开发教程
(苑永超 整理,仅供参考,勿作商业用途)
目录
一、ImageJ 简述.................................................................................................... 2
二、ImageJ 内部结构............................................................................................. 3
三、ImageJ 通过插件扩展功能的方法.................................................................... 4
三、插件编辑、编译、运行与部署 ......................................................................... 6
四、主要的包介绍.................................................................................................. 8
五、重要类方法介绍 ............................................................................................ 10
1、创建图象和图象栈....................................................................................... 10
2、创建图象处理器 .......................................................................................... 11
3、载入和存储图象 .......................................................................................... 11
4、图象参数 ..................................................................................................... 11
5、操作像素 ..................................................................................................... 11
6、图象转换 ..................................................................................................... 12
7、直方图与图象统计量 ................................................................................... 12
8、点运算......................................................................................................... 12
9、滤波器......................................................................................................... 13
10、几何运算................................................................................................... 13
11、图形运算................................................................................................... 14
12、显示图象和图象栈..................................................................................... 14
13、图象栈上的操作 ........................................................................................ 15
14、感兴趣的区域............................................................................................ 16
15、图象属性................................................................................................... 17
16、用户交互................................................................................................... 17
17、插件 .......................................................................................................... 18
18、窗口管理................................................................................................... 19
19、其他函数................................................................................................... 19
六、学习资源....................................................................................................... 20
ImageJ 官网(http://rsb.info.nih.gov/ij/index.html)上有英文的用户手册和
教程,以及一些例子。本教程主要是为看英文比较累的朋友提供一些快速的入门。
如果想在 ImageJ 上开发自己的图象处理算法,建议先熟悉 java 编程知识。本
教程基本不对 ImageJ 菜单中提供的各种文件操作、图象编辑、图象处理、图象
分析等功能作详细介绍,请读者自行探索;也不准备介绍数字图象处理的各种算
法和操作,本文假定读者是图象处理方面的专业人士,本教程的重点是如何进行
二次开发,如果不特别指出,文中的部分内容和例子都为 ImageJ 软件包自带或
采自相关书籍(如《数字图像处理-java 语言描述》),中文注释是后加的。
一、ImageJ 简述
图象处理的流程无外乎就是打开图象数据文件,将图象数据加载到内存,然
后对该内存中的图象数据进行一系列处理(分割、检测、滤波、合成、识别、显
示等等),最后可能还需要将处理结果保存成某种格式的文件。
对于一般的用户来说,类似 ACDsee 之类的傻瓜式的软件足够了。但是科
学人士除了希望有广泛的、成熟的处理算法库可以直接调用外,一般还希望开发
自己的特有的图象处理算法、特有的图象处理步骤、甚至特有 的交互过 程。
ImageJ 就是这样的工具软件。
ImageJ 是基于 Java 的,ImageJ 在设计上实现了一个可以扩展的基本框架,
开发人员可以通过其提供的接口来扩展图象处理功能。ImageJ 提供了很多现成
的功能,这些功能可以通过菜单来调用,也可以调用相应的类的方法的 API。
用户只要按照接口要求开发好自己的处理模块,并按照要求部署和配置,
Image 就可以自动加载和调用。
ImageJ 是完全开源和免费的,特别适合教学和科研。其关键的特征有:
1、 在菜单上集成了一系列的交互式工具,用于创建、加载、编辑、分析、
处理、保存图象,支持常见的图象文件格式。
目前,ImageJ 主菜单上的集成的主要功能:
! File: 打开、保存、创建新的图象文件。
! Edit:图象的编辑和绘制操作。
! Image:图象的修改、转换、几何操作。
! Process:图象的点运算、滤波器、以及多幅图象之间算法操作。
! Analysze:对图象数据进行统计分析、用直方图或其他格式显示出来。
! Plugin:编辑、编译、执行、管理用户自己定义的插件。
2、 提供简 单的 插件 机制 ,帮助开发人员专注于自己的图象 处理 过程 的开
发,从而扩展 ImageJ 的功能。
3、 提供宏语言或 javascript 脚本以及解释器,可以通过组合现有的函数,
来实现客户化的处理过程。这种方式不需要用户具有 Java 知识。此外
还有一些使用其他脚本语言扩展的方式。
用户要想在 ImageJ 的基础上扩展自己的图象处理功能、进行二次开发,需
要了解 Image 内部结构。
二、ImageJ 内部结构
上面是一个 ImageJ 的内部结构图,我们结合该图以“打开并显示一个图象”
的功能为例说明一下 ImageJ 的工作原理:
1、首先创建一个打开文件类 FileOpener 对象,并调用其 Open 方法。
2、该 Open 方法首先从图象文件中读取像素数据,并放到数组 pixels[]中。
3、随后创建一个 ImagePlus 的对象。如图所见,这个对象成员中包含有一
些指针,指向其他对象:
! 一个图象处理器对象 ImageProcessor 的子类:该对象主要是提供对
当前图象数据的处理操作。(像素数据保 存有对应的像素数组
pixels[])。
! 一个图象栈对象 ImageStack:用来保存多幅图象数据或图象处理的
中间数据。
! 文件信息类对象 fileInfo:存有图象的尺寸、位深度等的相关信息。
! AWT 的图象对象类 img:通过操作将图象数据映射到 Image 对象上,
实现图象的显示。
! Frame 窗口类的子类对象 ImageWindow:实现对图象窗口的管理。
上述这些对象在 FileOpener 对象的 open 方法中创建,并赋予 ImagePlus
中的相应成员:ip,stack,fileInfo,img,win。
4、如果该图象需要显示,则调用 ImagePlus 的 show 方法。
图 1 ImageJ 图象及图象栈的内部表示
该方法调用图象处理器对象 ip 的 createImage()方法创建和图象数组数
据对应的图象类 Image 对象。并将 img 指向它。
然后创建 ImageWindow 窗口。设置窗口画布、窗口布局等。
最后通过 ImagePlus 的 draw()方法调用完成绘制。
切记:
FileOpener 的 open()方法返回的是对应的 ImagePlus 对象。通过该对象,
我们可以毫不费力地找到上述相关的对象,尤其是拥有众多图像处理操作和算法
的 ImageProcessor,调用需要的方法,从而快捷地完成我们的工作。
三、ImageJ 通过插件扩展功能的方法
插件是一种小型的程序模块,该 模块遵循简单的标准化接口,可以被集成到
软件框架中,从而扩展宿主软件的功能。ImageJ 的许多内置的图象处理功能也
是通过插件来实现的。这里所谓的简单的标准化接口其实就是 Java 的接口类。
ImageJ 提供如下三种不同的接口插件:
! PlugIn:启动该插件时不需要打开一幅图象
! PlugInFilter:启动该插件时,需要传递给该插件一幅打开图象的指针。
该插件的操作将施加在该图象上。
! PlugInFrame:该插件可以扩展一个独立的操作交互界面。
很显然,通过 PlugIn 扩展的插件,如果要处理图象,则需要自己去处理获
取图象数据,这可以通过获取一个已经被打开的图象文件的指针、自己打开或新
创建一个图象文件并获取指针,或直接在内存中开辟图象数据的方式实现。
该方式的自由度很高。该接口的用法示例如下:
// 对话框打开并显示一个图像文件
import ij.plugin.*;
import ij.plugin.frame.*;
import ij.*;
public class Test_PlugIn implements PlugIn {
public void run(String arg) {
Opener xx = new Opener();
xx.open() ;
}
} // end of class
用户要实现该接口的 run 方法。
实际上,用的最多的是通过 PlugInFilter 扩展的插件。该接口的示例如下:
// 实现将一幅 8bit 位的灰度图取反
import ij.ImagePlus;
import ij.plugin.filter.PlugInFilter;
import ij.process.ImageProcessor;
public class My_Inverter implements PlugInFilter {
剩余19页未读,继续阅读
ycyuan3
- 粉丝: 3
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功