imagej的数字图像处理研讨论文_第1页
imagej的数字图像处理研讨论文_第2页
imagej的数字图像处理研讨论文_第3页
imagej的数字图像处理研讨论文_第4页
imagej的数字图像处理研讨论文_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/7IMAGEJ的数字图像处理研讨论文摘要IMAGEJ是一个代码开放的JAVA图像处理程序,充分利用了JAVA语言的特性,为数字图像领域的研究注入了新的活力。本文介绍了IMAGEJ强大的插件功能和自身的MACRO语言,并展示了在IMAGEJ下常用数字图像处理方法的操作。关键词IMAGEJ;MACRO;插件作者简介陈家树,男,重庆永川市人,西南大学计算机信息与科学学院20XX级硕士研究生,研究方向图形图像处理。1引言现在,关于图像处理和分析的软件或者函数库,很多采用的都是C和C语言,对很多常见的图像处理函数都有现成的代码和成熟的工具。然而,针对JAVA这一面向对象程序设计语言,却没有能很好地利用起来,在这上面开展的工作也较少,相关的工具也很少。IMAGEJ的出现在一定程度上改变了这一局面。IMAGEJ是目前世界上最快的纯JAVA图像处理程序。它能在秒内对一张2048X2048的图片进行过滤。IMAGEJ不同的版本可以在WINDOWS,MACOS,MACOSX和LINUX系统上运行。它能读入许多种图片格式,包括TIFF,GIF,JPEG,BMP,DICOM和FITS。它支持“栈”,也就是一系列的图片共用一个窗口。它还是多线程的,所以像在2/7处理读入图片这种费时的操作时,还可以并行进行其他的操作。它提供一些标准的图像处理函数,比如锐化、平滑、边缘检测和中值滤波等,能对图片进行缩放、旋转和反转等。更重要的是,IMAGEJ采用了一种开放式的结构,通过加入JAVA语言的插件来完成它的扩展。这样,使用IMAGEJ的内置编辑器和JAVA编译器就能得到各种插件。这样的机制就使开发人员自己编写的插件能解决他所需要解决的任何图像处理和分析的问题。与之配合使用的MACRO语言,也为IMAGEJ带来了更多的方便。2IMAGEJ的MACRO语言一个MACRO就是能自动产生一系列IMAGEJ命令的程序。有两种方法可以创建MACRO程序。最简单的一种就是使用IMAGEJ的PLUGINS/MACROS/RECORD命令,这样当你使用IMAGEJ菜单中的命令时,就会自动在一个RECORDER中记录下来,生成MACRO语句,得到MACRO程序。还有一种创建方法,打开PLUGINS/NEW,在弹出的对话框中输入创建的MACRO程序的名字,选定“TYPE”为“MACRO”,接下来就可以在弹出的编辑框中编写自己的MACRO程序了,它以后缀名“TXT”保存。MACRO程序提供了把多个IMAGEJ命令组合起来用的途径,研究人员也可以根据自己的需要定制。IMAGEJ可以把MACRO程序添加到“工具栏”上,也可以添加进“PLUGINS”菜单中,所以它的使用让开发研究变得更3/7加简便。语言的变量MACRO语言是一种“无类型”定义的语言。也就是变量的使用不需要先进行声明,也不用显式给出变量的数据类型。当它们被使用在赋值语句中时,会被自动初始化为相对应的类型。所以一个变量就可以用来存放各种数据类型,包括数字、字符串或者数组等。甚至在同一个MACRO程序中,同一个变量能存放任何的数据类型。看下面这段程序VPRINTVV“ASTRING“PRINTVVNEWARRAY10,20,50FORI0IIPRINTVI可以看到变量“V”的使用是非常灵活的。需要注意的是,变量名是区分大小写的,“NAME”和“NAME”就分别表示不同的变量。语言的操作符MACRO语言几乎支持JAVA中所有的操作符,所以这里就不再赘述了,有兴趣的读者可以去参看BRUCEECKEL的THINKINGINJAVA第三版。语言的IF/ELSE,WHILE循环语句在MACRO语言中,条件语句和循环语句的用法与在JAVA中的用法也是一样的,有兴趣的读者可以去参看BRUCEECKEL的THINKINGINJAVA第三版。3IMAGEJ良好的易扩展性插件的应用IMAGEJ的插件就是用JAVA语言编写的,被编译为4/7“CLASS”的JAVA类文件。它的安装非常简单把需要用的插件,也就是JAVA的类文件放到IMAGEJ的“PLUGINS”目录下,然后重新启动IMAGEJ,这时你就会在“PLUGINS”的下拉菜单中发现这个插件已经安装了。这里需要注意的是,JAVA类文件的文件名如果使用了下划线“_”,在“PLUGINS”中会被空格替代。根据实现功能的不同,插件被大致分为以下几类图像的I/O处理,图像的基本特征分析,各种滤波器,图形操作,还有特别针对“图像栈STACK”的处理插件,这是IMAGEJ的一个非常重要的应用。下面对它做进一步的介绍。的基本概念STACK就是把一系列相关的图片以“栈”的形式显示在同一窗口内,通过一条命令就可以处理整个“栈”的所有图片。的应用下面通过一个目标跟踪的例子来看对它的使用图1是一个由50张图片组成的图片栈的第一帧,我们能看到两只白蚁在托盘上的运动。我们需要对这两只白蚁进行跟踪,包括托盘上白蚁的数量、各自位置的标定和两只白蚁间位置的测量。第一步,使用IMAGE/DUPLICATE复制RAWSTACK的第一帧,5/7命名为BACKGROUND。第二步,需要把这两只白蚁从BACKGROUND中分开出来。在BACKGROUND里圈定一个矩形框,按下“C”复制,移动这个矩形框直到覆盖掉白蚁,最后按下“V”粘贴上。对每一只白蚁都重复这样的操作,最后得到图2BACKGROUND。这就是把白蚁分离开后的背景图。第三步,从该图片栈中所有的图片中减去这个背景图BACKGROUND。使用PROCESS/IMAGECALCULATOR,在弹出的对话框中,“IMAGE1”就是这个图片栈,这里的“OPERATOR”用“SUBTRACT”,这里的“IMAGE2”就是背景图BACKGROUND。第四步,使用IMAGE/ADJUSTTHRESHOLD来设定最低和最高阀值。这样,白蚁就是红色,背景就是黑色。调整的标准就是浏览整个图片栈,让所有的红色都始终连在一块。最后点对话框中的“APPLY”按钮,就把图片栈里所有50张图片都全部转换为黑/白的二值图片了。如图3BINARYSTACK所示。最后,运行“TRACKER”插件,得到图4的结果。选中那一栏的意义如下在该图片栈的第5帧图片上,发现2只白蚁,第一只白蚁所在位置坐标是,第二只所在位置坐标是,它们之间的距离是个像素。同时弹出的还有一个表示每一帧对应的白蚁之间距离的二6/7维坐标关系图,限于篇幅关系,这里就不再给出了。图4白蚁跟踪结果除了这种目标跟踪插件外,还有其他的跟踪插件,比如像MULTITRACKER,MANUAL_TRACKING,SPOTTRACKER,MTRACK2,PARTICLETRACKER和MTRACKJ等。它们的具体使用可以查看相关的手册。关于STACK的插件还有很多,可以根据研究人员的需要有选择的学习使用。相关资料可以在站点IJ/PLUGINS/中找到。4结束语IMAGEJ作为JAVA语言开发的图像处理和分析平台,具备多种图像处理和分析功能,特别是在医学影像学诊断领域的应用非常广泛。该软件支持插件技术,互联上有大量针对某些特殊应用领域的免费插件可供下载使用。希望本文能对读者提供一定的帮助。参考文献7/71RASBAND,IMAGEJ,BETHESDA,MA

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论