软件工程毕业设计(论文)基于imagej的图像形状与纹理处理

上传人:r****d 文档编号:86341754 上传时间:2022-05-07 格式:DOC 页数:59 大小:1.89MB
收藏 版权申诉 举报 下载
软件工程毕业设计(论文)基于imagej的图像形状与纹理处理_第1页
第1页 / 共59页
软件工程毕业设计(论文)基于imagej的图像形状与纹理处理_第2页
第2页 / 共59页
软件工程毕业设计(论文)基于imagej的图像形状与纹理处理_第3页
第3页 / 共59页
资源描述:

《软件工程毕业设计(论文)基于imagej的图像形状与纹理处理》由会员分享,可在线阅读,更多相关《软件工程毕业设计(论文)基于imagej的图像形状与纹理处理(59页珍藏版)》请在装配图网上搜索。

1、毕业设计论文说明书学 院 软件学院 专 业 软件工程 年 级 姓 名 指导教师 2008年6月20日毕业设计论文任务书题目:基于ImageJ的图像形状与纹理处理学生姓名 学院名称 软件学院 专 业 软件工程 学 号 指导教师 职 称 教 授 一、原始依据包括设计或论文的工作根底、研究条件、应用环境、工作目的等。数字图像处理Digital Image Processing又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。数字图像处理最早出现于20世纪50年代,当时的电子计算机已经开展到一定水平,人们开始利用计算机来处理图形和图像信息。数字图像处理作为一门学科大约

2、形成于20世纪60年代初期。早期的图像处理的目的是改善图像的质量,它以人为对象以改善人的视觉效果为目的。ImageJ是一个由NIH美国卫生研究所开发的为Macintosh提供图像处理的开源的公众Java工程。它既可以以网页Applet的形式运行也可以作为应用软件工具下载使用。适合多种平台,包括Windows, Mac OS, Mac OS X 以及Linux。纹理特征是一种全局特征,它描述了图像或图像区域所对应景物的外表性质。但由于纹理只是一种物体外表的特性,并不能完全反映出物体的本质属性,所以仅仅利用纹理特征是无法获得高层次图像内容的。一个很明显的缺点是当图像的分辨率变化的时候,所计算出来的

3、纹理可能会有较大偏差。通常情况下,形状特征有两类表示方法,一类是轮廓特征,另一类是区域特征。图像的轮廓特征主要针对物体的外边界,而图像的区域特征那么关系到整个形状区域。本课题的目的就是做一个能提取并处理图像的纹理与形状信息的并可以应用于ImageJ的图像处理插件。二、参考文献1图像特征特点及其常用的特征提取与匹配方法EB/OL :/ china-2John Krumm and Steven A. ShaferTexture Segmentation and Shape in the Same Image JComputer Vision, 1995. Proceedings, Fifth In

4、ternational Conference on20-23 June 1995 Page(s):121127 Digital Image Processing Second Edition MPrentice Hall, 2003-3 4Edward AngelInteractive Computer Graphics MADDISON-WESLEY,19975Shuangbao Wang, Zegang Dong, Jim X. Chen and Robert S. LedleyPPL: A whole-image processing languageComputer Languages

5、JSystems & Structures,Volume 34, Issue 1,April 2021, Pages 18246伍亚军,周正东,戴耀东DICOM数据集研究和DICOM图像处理软件的实现J微计算机应用, 2007 7D.S. Wickramanayake, E.A. Edirisinghe and H.E. Bez. Transform domain texture synthesisJSignal Processing: Image Communication,Volume 23, Issue 1,January 2021, Pages 1138Keagan Moodley a

6、nd Hugh MurrellA colour-map plugin for the open source, Java based, image processing package, ImageJJComputers & Geosciences,Volume 30, Issue 6,July 2004, Pages 609618三、设计研究内容和要求包括设计或研究内容、主要指标与技术参数,并根据课题性质对学生提出具体要求。1. 系统学习 Java 编程语言,熟练撑握Java语言的根本思想和相关的编程技术,熟悉Eclipse编程环境。2. 深入了解Java中的图像处理类及相关包的性能与特性。

7、阅读图像处理与图形学方面的资料。3. 充分阅读ImageJ开放的源代码,了解其编程框架及图像处理算法的实现。熟悉ImageJ的插件的用法。4. 了解图像处理算法当前的开展形势及前景,阅读图像处理及图形学根本算法实现及研究现状。5. 深入理解ImageJ的结构与代码构成,开始设计课题要求的插件。 6. 阅读相关资料,初步建立插件架构和简单特征提取算法设计,建立简单用户界面与图形算法接口。7. 逐步添加图像处理功能及完成相关接口的代码编写。8. 测试软件的功能可行性及可用性。测试图像的纹理及形状的信息处理算法及软件功能实现。 指导教师签字年 月 日审题小组组长签字年 月 日天津大学本科生毕业设计论

8、文开题报告课题名称基于ImageJ的图像形状与纹理处理学院名称软件学院专业名称软件工程学生姓名指导教师一、 课题的来源及意义数字图像处理方法的研究源于两个主要应用领域:其一是为了便于人们分析而对图像信息进行处理;其二是为使机器自动理解而对图像数据进行存储、传输及显示。随着信息对象数字化,越来越多的数字化图像已产生,对图像处理的数字化软件工具的需求也越来越迫切。目标就是由大集合或从远程分布式数据库得到的图像可以被不仅是研究人员、教育工作者和专业人士,而且由一般用户所共享。形状是一个重要的视觉特征,它是一个用来描述图像内容的根本特征。不过,形状的表示和描述是一项艰巨的任务。 这是因为当一个三维物体

9、投影到一个二维图像平面上时,一维对象的信息就丧失了。因此,来自图像的形状只是局部代表投影对象。然而问题总是变得更加复杂,因为形状往往被噪声,缺陷,任意歪曲和破坏。二、 国内外开展状况ImageJ是一个由NIH美国卫生研究所开发的为Macintosh提供图像处理的开源Java工程。它既可以以网页Applet的形式运行也可以作为应用软件工具下载使用。适合多种平台,包括Windows, Mac OS, Mac OS X 以及Linux。ImageJ可以显示,编辑,分析,处理,保存和打印8位, 16位和32位图像。它可以翻开许多图像格式,包括TIFF文件,GIF ,JPEG格式,BMP和DICOM以及

10、raw图像格式。它支持“栈,一系列的图像,共享一个单独的窗口。它是多线程,因此耗时的操作如图像文件的翻开可以并行处理。它可以计算面积和像素值统计用户定义的选项。它可以测量距离和角度。它可以创造密度直方图和谱线轮廓图。它支持标准的图像处理功能,如比较,锐化,平滑,边缘检测和中值滤波。其它还有几何变换,如缩放,旋转和跳跃等。图像可缩放高达32:1 ,下至1:32 。该方案将支持任意数量的窗口,但受到内存的限制。具有空间校准功能,以提供真实世界的三维测量单位,例如毫米。密度或灰度校正也已经推出。ImageJ设计了一个开放式体系结构,通过Java插件提供可扩展性。定制采集,分析和处理插件可利用Imag

11、eJ的内置编辑器和Java编译器进行开发。用户编写的插件使人们有可能解决几乎任何图像处理或分析的问题。形状表示的各种功能都已经被设计,包括形状签名、签名直方图、形状不变量、矩、曲率、形状、形成矩阵、光谱特性等。这些不同的形状特征往往被他们从一个指定的数据库取出的类似形状所评价。形状信息的提取与描述已成为当前图像处理领域的重要课题。三、本课题的研究目标及研究内容本课题是基于ImageJ的图像形状与纹理的处理。目标就是建立一个ImageJ的图像特征提取插件,完成图像形状信息和纹理信息的提取并分析结果。结合语义特征描述图像。研究内容重点在图像形状和纹理处理,完成的软件工具要具备形状和纹理处理的根本功

12、能实现。并在此根底上包含其他图像处理功能以做补充。四、研究方法和手段1 ImageJ工具的理解:首先对于开源工程ImageJ要理解其对图像处理局部的代码意义,从中吸取有用的局部写入自己的插件;2. 图像形状与纹理的学习:了解图像形状知识及纹理映射机制,考虑建立类似的效劳;3. 图像工具框架的设计及实现:使用Eclipse平台运用Java语言设计自己的图像处理插件框架,并实现根本的框架结构代码,完成初步的界面设计;4. 补充软件工具的图像处理功能:借鉴ImageJ的图像处理功能及插件的功能,完成简单的分割算法,重点是提取图像的形状信息并描述图像形状及对图像纹理进行处理。五、实验方案的可行性分析和

13、已具备的实验条件ImageJ工程是一个开源的工程并且在功能及界面上面都有着出色的设计,源代码已经提供,所以在代码编写上有参考,用Eclipse做开发,开发平台稳定且功能强大,工具的开发与设计均是可行的。当前图像处理的开源代码已经具备并且Java语言提供的图像处理的包的多样性为实验可行提供前提。图像形状的提取及纹理映射的数学机理都已成熟,为实验原理提供根底为算法的编写提供可行性证明。六、进度安排2007年12月18日 - 2008年2月22日 阅读图像处理及Java开发相关资料,熟悉课题的研究意义和用途;2008年2月23日 - 2008年3月 8日 完成开题报告;并深入阅读ImageJ的源码及

14、了解图像纹理处理的相关知识;2008年3月9日 - 2008年4月2日 继续深入理解图像纹理与形状的操作和编码,阅读ImageJ的源码;2008年 4月3日 - 2008年5月15日 使用Eclipse开发ImageJ的图像处理插件工具,完成图像纹理与形状处理的功能;2008年 5月16日 - 2008年6月15日 跟据导师意见认真修改,校对论文初稿,最后完成论文; 2008年 6月16日 - 2008年6月21日 准备毕业论文辩论;七、参考文献1John Krumm and Steven A. ShaferTexture Segmentation and Shape in the Same

15、Image JComputer Vision, 1995Proceedings, Fifth International Conference on 20-23 June 1995 Page(s):121127 Digital Image Processing Second Edition MPrentice Hall, 2003 3Dengsheng Zhang, Guojun LuReview of shape representation and description techniquesJPattern Recognition,Volume 37, Issue 1,January 2

16、004, Pages 1194Oswald CampesatoJava图像编程实例库M北京:电子工业出版社,20025Shuangbao Wang, Zegang Dong, Jim X. Chen et alPPL: A whole-image processing languageComputer LanguagesJSystems & Structures,Volume 34, Issue 1,April 2021, Pages 18246Larsson., Laplante.On the complexity of design in imaging softwareREngineer

17、ing of Complex Computer Systems, 2006. ICECCS 2006. 11th IEEE International Conference on 0-0 0 Page(s):7 pp 7伍亚军,周正东,戴耀东DICOM数据集研究和DICOM图像处理软件的实现J微计算机应用, 20078Sage D, Unser MTeaching image-processing programming in JavaJSignal Processing Magazine, IEEE. Volume 20, Issue 6, Nov 2003 Page(s):4352选题是否

18、适宜: 是 否课题能否实现: 能 不能指导教师签字年 月 日选题是否适宜: 是 否课题能否实现: 能 不能审题小组组长签字年 月 日摘要图像纹理和形状的处理作为图像分析技术的核心,已经步入图像处理的高级阶段。通过计算机分析和识别物体及背景的视觉图像,从而得出结论性质的推断。图像特征提取工作的结果给出了某一具体的图像中与其他图像相区别的特征,是后期图像识别工作的根底。本文首先综述了图像特征提取的意义,介绍了图像特征提取在国内外的研究进展,并深入具体介绍了图像分割和特征提取领域的技术进展。介绍了ImageJ图像处理软件的背景及其插件的开发与应用。最后在Eclipse环境下使用Java语言实现了图像

19、形状和纹理特征的提取,并以ImageJ的插件形式应用。图像的大量纹理及形状特征以参数形式保存,可以广泛用于后期图像的语义描述和匹配识别。关键词:图像处理;纹理和形状;Eclipse;ImageJ;插件ABSTRACTThe processing of the texture and shape of an image which is the core technology of image analysis has entered the advanced stage of image processing. Through computer analysis and recognition

20、 of a visual image which contains both object and background, we can conclude the inference. The result of the image feature extraction gives the difference between two images by recognizable features. This is the basis of late work of image recognition.This paper reviewed the basic concepts and pri

21、nciples of image feature extraction, introduced image feature extraction both at home and abroad and deeply introduced the progress in field of image segmentation and feature extraction. Also introduced context and development of ImageJ and how to write plugins for ImageJ. Finally, implement feature

22、 extraction of image texture and shape in form of plugin of ImageJ with Eclipse environment in Java language. The features which saved to parameters can be used in future work of image matching and recognition.Key words:Image Processing;Texture and Shape;Eclipse;ImageJ;Plugin目录第一章绪论11.1课题的意义及应用11.2国

23、内外开展的现状11.3本文的研究重点及内容结构3第二章ImageJ简介和开发42.1ImageJ的背景及开展42.2ImageJ的程序结构52.3ImageJ 插件开发7第三章基于实体的图像特征提取及描述 103.1特征提取的根本原理103.2特征提取的根本方法103.3图像特征语义描述20第四章基于ImageJ的纹理形状特征提取224.1提取前的图像分割224.2图像特征提取234.3实验结果分析244.4实验结果在语义描述中的应用29第五章总结和展望 32参考文献 34外文资料中文译文致谢第一章绪论 1.1 课题的意义及应用图形图像以其视觉直观的优势自古以来就是人类获取自然界信息的主要来源

24、,在人类创造文字之前,图像更是人类信息交流和传承的唯一表达。随着信息化时代的到来,计算机领域引入了大量的图像信息,比方卫星照片,工程图纸,档案图像,医学图像等等。对数字图像的特征提取和表达描述成了当前重要的研究领域。图像所包含的信息量往往很大,不仅有灰度,还有色彩;不仅有平面,还有立体等,其内容极为广泛。当前的图像信息,大多是包含着目标物的实体图像信息,提取这些实体图像特征,并将其描述出来对图像的理解有着重要的意义。对图像实体特征的研究目前已经有了广泛的应用。在工业领域,大规模自动化及高效流水线已经被广泛应用,让机器能识别产品及零部件的图像信息对提高工作效率和准确性都是一个有效的做法。而这就免

25、不了要通过计算机告诉机器目标图像是什么,有些什么特征。从而使机器知道该如何处理目标。在农业领域图像特征也有着同样重要的作用。现代化的农业已经不再需要人类大量的手工操作,而是通过大量的监控和跟踪拍摄来了解植株或牲畜的行为和生理特征。这就需要计算机处理这些监控图像,通过对植株或牲畜实体图像的特征提取,了解生物的生长状况,从而进行进一步操作。在医学领域,图像特征提取及描述更是具有重要的意义,CT或者MRI图像包含着大量的信息,人工的去观察和分析这些信息不免会发生错误而且消耗精力。通过计算机提取图像的特征并做出初步的合理的分析,再将这些分析结果交由有经验的医生去处理,不仅节约时间,也保证了正确性。在航

26、天、军事、平安领域,特征提取同样有着重要的意义。卫星从地外传回的卫星图像大都模糊而且特征不明显。通过计算机提取出关键的特征,专家可以比对和分析,从而易于得出结论。而图像特征在军事平安领域的作用更是显而易见,人脸识别和指纹识别技术已经是比较成熟且应用广泛的技术。1.2 国内外开展现状图像特征提取是图像处理领域的一个重要内容。目前的研究多是基于图像底层特征的提取,包括形状、纹理和颜色等。对于纹理特征的研究,上世纪70年代初期,Haralick等人提出了纹理特征的共生矩阵表示1,具体做法是从共生矩阵中抽取有意义的统计量作为纹理表示。受关于纹理的人类视觉的心理学研究的启法,Tamura等人另外提出了一

27、种新的纹理表示2。它包括6个性质:粗细度coarseness,比照度contrast,方向性directionality, 线状性linelikeness, 规那么性regularity和粗糙度roughness。目前使用较多的是前三个。它们和共生矩阵的一个主要的差异在于:在Tamura表示中的所有纹理性质都是有现实意义的,与人的主观感受比较吻合,而从共生矩阵提取的纹理性质那么可能没有意义,更趋于理性化。这使得Tamura纹理表示在图象检索中非常具有吸引力,而且可提供一个更有友好的界面。上世纪90年代初期,在引入小波变换并建立它的理论框架后,许多研究者开始研究在纹理表示中使用小波变换。Smit

28、h和Chang使用从小波带中抽取的统计量平均值和方差作为纹理表示,取得了较好的效果3。Ma和Manjunath评价了各种小波变换,包括正交和双正交小波变换,树结构小波变换和Gabor小波变换 4。对于形状特征,形状特征是描述高层视觉特征(如目标、对象等)的重要手段,而目标、对象对获取图像语义尤为重要。要把图像的低层特征与高层特征有机地结合起来,必须有好的形状特征描述与提取算法的支持。形状特征的有效表达必须以对图像中物体或区域的分割为根底。实物目标的形状包括几何的特征和矩特征。几何特征的研究更多的在数学领域,包括周长、面积等。矩特征的研究那么引入了更多的图像性质和物理特性,包括质心、中心距等。此

29、外,为了使从不同视角获取的目标图像互相匹配,形状特征还应具有平移、旋转和缩放变换不变性。在这方面,最典型方法分别是傅立叶描述符Fourier Descriptor5和形状无关矩Moment Invariants6。傅立叶描述符的主要思想是将经过傅立叶变换后的边界作为形状特征。从轮廓上的任一点开始绕轮廓一周可以定义一个复数序列,对其进行离散傅立叶变换,就得到轮廓的傅立叶描述,这种描述多用于趋于边界的形状特征。形状无关矩是基于区域的物体形状表示方法,将一些归一化的二阶和三阶中心矩进行组合可得到7个对平移、旋转和缩放变换均无关的矩。近年来在形状表示和匹配方面的工作还有有限元法Finite Eleme

30、nt Method7、旋转函数Turning Function8和小波描述符Wavelet Descriptor9等方法。另外,近年来对于图像语义的描述开始进入人们的研究领域。自从上世纪90年代出现了关于图像语义的研究报导,图像语义尚未有明确的定义。最初认为图像根本特征如颜色、形状、纹理等的融合就是语义,但是这些只是低层次语义,不能充分反映图像的语义结构。图像的语义信息是个很复杂的问题。图像经过人视觉系统传送到大脑,经过心理响应过程最后输出的必然是某些很不相同的东西。这个过程不单反映了图像本身客观存在的语义信息,还包含观察者对图像的主观信息感知,至今没有建立一个严格的数学模型,而且人视觉系统不

31、能简单地做为一个具体的图像数字化和简单地传输系统来处理。在图像高层理解中,人的情感10研究更为复杂,目前为止也没有视觉大脑心理的数学模型。郑崇勋11对颜色的视觉信息处理机制进行了研究,建立了视网膜颜色信息理论处理的神经网络模型,但未作定量分析。人们通常认为彩色对人的情感有着重要的影响。如在不同场合颜色表示了某些特定的意义。颜色会激起观察者不同的情感,不同颜色可能存在很大的差异,其表达的语义信息对不同对象有不同的理解。由此可看出这些正是图像语义研究的困难所在。1.3 本文的研究重点和内容结构本文主要在以下两个方面做了研究工作:1. 特征的选择和描述。本文对图像特征提取和描述的常用方法进行了概述,

32、包括形状特征和纹理特征,并详细说明了特征提取的根本原理和方法,深入阐述了特征提取在语义描述中的应用。2. 纹理和形状特征的插件实现和结果分析。本文通过为ImageJ图像处理软件开发插件,完成了图像形状和纹理特征的提取工作,并分析提取结果,以及结果在后续的匹配识别和语义描述过程中的应用。本文的章节安排如下:第一章 绪论:介绍图像特征处理的背景知识并分析研究领域的现状。第二章 ImageJ简介和开发:介绍了国外流行的ImageJ图像处理软件的架构和相关的插件开发方法。第三章 基于实体的图像特征提取及描述:详细介绍了图像特征提取的原理和方法并论述了开发ImageJ插件的过程。并介绍了特征用于语义描述

33、的简单流程。第四章 基于ImageJ的纹理形状特征提取:介绍了特征提取前的分割工作,并通过特征提取的实验结果比对各个特征参数。第五章 总结和展望:对本文做了简单的总结,并对后续工作做了展望。第二章 ImageJ简介和开发2.1 ImageJ的背景及开展ImageJ是一个由NIH美国卫生研究所开发的为Macintosh提供图像处理的开源Java工程。它既可以以网页Applet的形式运行也可以作为应用软件工具下载使用。适合多种平台,包括Windows, Mac OS, Mac OS X 以及Linux。ImageJ可以显示,编辑,分析,处理,保存和打印8位, 16位和32位图像。它可以翻开许多图像

34、格式,包括TIFF文件,GIF ,JPEG格式,BMP和DICOM以及raw图像格式。它支持“栈,一系列的图像,共享一个单独的窗口。它是多线程,因此耗时的操作如图像文件的翻开可以并行处理。它可以计算面积和像素值统计用户定义的选项。它可以测量距离和角度。它可以创造密度直方图和谱线轮廓图。它支持标准的图像处理功能,如比较,锐化,平滑,边缘检测和中值滤波。其它还有几何变换,如缩放,旋转和跳跃等。图像可缩放高达32:1 ,下至1:32 。该方案将支持任意数量的窗口,但受到内存的限制。具有空间校准功能,以提供真实世界的三维测量单位,例如毫米。密度或灰度校正也已经推出。ImageJ设计了一个开放式体系结构

35、,通过Java插件提供可扩展性。定制采集,分析和处理插件可利用ImageJ的内置编辑器和Java编译器进行开发。用户编写的插件使人们有可能解决几乎任何图像处理或分析的问题。ImageJ是在Mac OS X操作系统中用其内置的编辑器和Java编译器开发的,额外用到了BBEdit和Ant构建工具。程序源码是公开的,作者Wayne Rasband (waynecodon.nih.gov)是NIH研究效劳部门的员工。ImageJ在国外是一个流行的图像处理工具,作者开放了一个社区可供所有使用者交流心得。同时各大高校包括MIT,UC等都有专门的部门为ImageJ提供插件。ImageJ的正式版本还在不断更新

36、中。随着图像处理技术的不断深化和进步,图形处理计算机的不断开发,操作系统的不断升级,ImageJ在Windows和Linux操作系统上的应用也更加广泛。ImageJ社区在不断的扩大,ImageJ的插件技术也相应的流行。这里图2-1是ImageJ的用户界面。图2-1ImageJ的用户界面2.2 ImageJ的程序结构ImageJ是用Java语言开发的图像处理工具,代码支持任意的Java版本。首先看ImageJ的包结构,如图2-2所示。ImageJijij.macro图2-2ImageJ包结构ImageJ总共包含11个包,每个包相应完成不同的功能,提供相应的类库。下面就对ImageJ各个包的类库做

37、一个简单介绍:ij包:作为软件的宏观管理结构,包含了IJ,WindowManager,ImagePlus,ImageStack和ImageJ等主要的类,为图像窗口的管理,图像格式的定义以及整个软件搭好架构。其中,ImageJApplet是ImageJ的Applet类,提供了在浏览器中以Applet的形式使用ImageJ的功能;ImageJ是ImageJ应用程序的主类,包含了程序入口点main方法以及程序窗口;Executer类可以单独创立一个线程来执行菜单中选中的命令;IJ类中包含了许多实用的方法;ImagePlus表示了图像在ImageJ中的表示形式,它是基于ImageProcessor的后

38、面将介绍;ImageStack是一个可扩展的图像栈,用来存储图像;WindowManager类用来管理当前已经翻开的窗口。包:作为软件的图形用户界面,包含了GUI, ROI, Toolbar, StackWindow和PlotWindow等类,主要定义了图像的选取格式和一些用户界面的装饰等。其中,ProgressBar类是位于主窗口内的一个进度条,用来显示当前操作所完成的进度百分比;GenericDialog类是程序获得用户输入的对话框原型,可以用于插件开发中获得用户输入;HTMLDialog类是显示HTML文本的对话框;MessageDialog类是显示提示信息对话框;YesNoCancel

39、Dialog类是定义了有“yes,“no和“cancel按钮的对话框;SaveChangesDialog 类是定义了有“Dont save,“save和“cancel按钮的对话框;NewImage类可以为抓取的图片局部创立一个新窗口;ROI类支持用户感兴趣的区域选择,用户在插件中可以只对感兴趣的区域操作;包:提供读写和存储图像的功能,包含了FileInfo, FileSaver, FileOpener, ImageReader和ImageWriter等类,可以读各种图像格式并以不同形式保存,还可以编码解码用户感兴趣的区域。包:对ImageJ的宏函数的定义,包含了Functions, Inter

40、preter, MacroRunner, Program, Symbol和Variable等类,架构了ImageJ的宏结构。包:对图像分析的方法和对象的封装,包括Measurements, ResultTable等类。包:封装了用户开发插件时经常用到的方法,包括直方图、剪贴板、图像头的获取、彩色模型、编译器、傅立叶变换等一系列方法。包含了Clipboard, Colors, Histogram, Compiler等类。其中的Plugin是每个插件编写必须要实现的接口;Coverter类继承了ImagePlus类,可以将一种类型的图像转化为其他类型。包:对常用的图像处理算法的封装,包括二值化、高

41、斯滤波、平滑、锐化、投影等常见算法的实现。包括Binary, Filters, Rotator, Projector等类。包:为用户开发插件提供统一的窗口框架接口,包含了Editor, Fonts, PlugInFrame, ThresholdAdjuster等类。包:通过ImageProcessor抽象类定义了获取图像像素信息及简单的处理和存储这些像素的方法。包含ImageProcessor, FloodFiller, LUT等类。其中各种数据类型的处理器BinaryProcessor,ShortProcessor等都继承于ImageProcessor。ImageCoverter类实现了图像

42、间的类型转换;ImageProcessor作为所有图像处理类型的超类完成了图像的底层处理工作;StackCoverter实现了栈内图像的类型转换;StackProcessor是处理图像栈的类。和包:作为辅助包,简单规定了文本格式和排序方法。下面图2-3是ImageJ的核心处理包的设计类图。图2-3ImageJ的核心处理包的设计类图2.3 ImageJ插件开发ImageJ完成了图像处理的根本功能,而更高阶的处理那么由其提供插件接口以便用户开发使用。ImageJ在图像分析方面缺乏现有的可行的插件。本文就是基于其在形状和纹理特征分析功能方面的缺陷而开发了特征提取的插件。这里先介绍ImageJ插件开发

43、的方法。ImageJ为用户提供了一个插件集成开发环境,在这个环境里用户不仅可以编辑和查看代码,还可以编译和运行代码。执行“Plugin/New.命令将会弹出对话框,让用户选择开发什么类型的插件PluginFilter或者PluginFrame。执行“Plugin/Edit.命令将允许用户编辑已有的java文件。目前已有的插件类型分两种:接受图像参数的插件PluginFilter和不接受参数的PluginFrame。PluginFrame将会生成自己的窗口用来显示相关信息。开发PluginFilter插件PluginFrame插件方法类似,要实现ij.plugin.filter.PlugInFi

44、lter接口,其中提供了两个方法:void run (ImageProcessor ip)和int setup(String arg, ImagePlus imp)。在第一个方法中用户可以书写该插件想要实现的功能,在第二个方法中,用户要返回一个整形的关键字,说明插件可以处理的图像类型。举例说明,这是一个图像反色的插件实例,在文件开始,要写清本程序需要的类库即引入包名:import ij.*;import ij.plugin.filter.PlugInFilter;import ij.process.*;import java.awt.*;接着在类名中实现PlugInFilter接口:publi

45、c class Inverter_ implements PlugInFilter 然后在类中实现setup()方法:public int setup(String arg, ImagePlus imp) if (arg.equals(“about) showAbout();return DONE;return DOES_8G+DOES_STACKS+SUPPORTS_MASKING;其中DOES_8G, DOES_STACKS, SUPPORTS_MASKING均为程序定义的关键字,表示本插件只能处理8位栈内图像,支持掩模操作。接着是run()方法的实现:public void run(Im

46、ageProcessor ip) byte pixels = (byte)ip.getPixels();int width = ip.getWidth();Rectangle r = ip.getRoi();int offset, I;for (int y=r.y; y(r.y+r.height); y+) offset = y*width;for (int x=r.x; x(r.x+r.width); x+) I = offset + x;pixelsi = (byte)(255-pixelsi);该方法首先获取了图像的像素值并用byte数组存储,接着获取图像的宽和高,然后遍历整个数组,将每

47、一个像素都与255做差,即实现了图像的反色。最后的showAbout()方法静态调用了IJ.showMessage()方法,显示相关插件的信息:void showAbout() IJ.showMessage(“About Inverter_.,“This sample plugin filter inverts 8-bit images. Lookn +“at the Inverter_.java source file to see how easy it isn +in ImageJ to process non-rectangular ROIs, to processn +all the

48、 slices in a stack, and to display an About box.);以上的代码综合起来就是一个完整的ImageJ插件,将其在ImageJ中编译运行即可看到效果。而编译好的.class文件或者可以制作成jar包,直接发布成一个功能插件,使用在其他安装有ImageJ的机器中。第三章 基于实体的图像特征提取及描述3.1 特征提取的根本原理图像特征是指图像的原始特性或属性,是由于景物的物理与几何特性使图像局部区域的灰度产生明显变化而形成的,在图像中存在着一些特殊的信息,这些信息使该图像有别于其它图像,这些特殊信息就是图像的特征。其中有些是视觉直接感受到的自然特征,如区域

49、的亮度、边缘的轮廓、纹理或色彩等;有些是需要通过变换或测量才能得到的人为特征,如变换频谱、直方图、矩等。图像特征的提取,即从图像中提取有用的信息和视觉特征。特征提取所要满足的约束条件12有:1.样本的可别离性:为了有效的分类,希望同类样本之间的距离越小越好,而不同类样本之间的距离越大越好。2.特征的有效性:提取出的特征应满足对特征的一般要求和特殊要求,并使分类错误率到达给定的指标。3.抗模式畸变能力:通常的模式畸变主要有:噪声、平移、放缩、旋转和仿射等变化。图像特征提取涉及的面很广。从一幅图像中提取出什么样的特征,需要根据用户所关心的问题来决定。3.2 特征提取的根本方法本文主要从纹理和形状两

50、方面研究图像的特征提取技术。3.2.1 基于实物的纹理特征提取谈到纹理,人们很自然的想到水面的波纹,家俱的木纹,石板上的花纹。它们总体都反响了物体外表颜色和灰度的某种变化,而这些变化又与物体本身的属性相关。纹理在图像处理中起着重要的作用,尤其是实物的纹理更是区别物体的根本特征。通过观察不同物体的图像,可以抽取出构成纹理特征的两个要素:1. 纹理基元,一种或多种图像基元组合而成,有一定的形状和大小。2. 纹理基元的排列组合,基元排列的疏密、周期性、方向性等的不同,能使图像的外观产生极大的改变。纹理特征的提取主要的工作就是检测出纹理基元和获得有关纹理基元的排列分布方式的信息。这里介绍几种常见的方法

51、并详述了在ImageJ中的实现过程。1 直方图统计直方图是多种不同灰度的像素分布的概率统计,与纹理基元存在着一定的对应关系。如果两幅图像的直方图相同或相似,那么说明两幅图像有相同或相似的纹理基元。将直方图的相似性进行比较,就可以发现纹理基元排列的周期性及紧密性等。ImageJ软件完成了图像灰度直方图的获取,并计算了均值和方差:首先,均值的计算公式为,方差的计算公式为。在计算过程中,首先通过ImageJ的接口获得直方图数组int hist = ip.getHistogram();int histSize = ip.getHistogramSize();其中的hist和histsize分别是直方图

52、数组和灰度级大小。在得到直方图数据后,就可以计算它的均值和方差了。均值的计算过程如图3-1所示。a程序开始,遍历所有的灰度级256个,计算每个灰度级与直方图数组值的乘积。b将所有灰度级对应的直方图数组值求和。c乘积值比和值得到结果,程序结束。程序流程如图3-1所示。否是遍历结束求和开始结束计算乘积图3-1均值计算流程图程序代码建立如下:for(int j=0;jhistSize;j+)zh += j * histj;h += histj;histMean = zh/h;均值的计算结果用histMean一个double数据来存储。其他的ImageJ用户可以通过调用插件的getHistMean()

53、方法得到灰度直方图均值的数据。方差的计算过程类似均值,只是最后以histDelta一个double数据来存储。其他的ImageJ用户可以通过调用插件的getHistDelta()方法得到灰度直方图均值的数据。基于灰度级的直方图特征并不能建立特征和纹理基元的一一对应关系。相同的直方图可能会有不同的纹理基元,因此运用直方图进行纹理基元分析时,还需要其他的特征。2灰度共生矩阵由于纹理是由灰度分布在空间位置上反复出现而形成的,因而在图像空间中相隔某距离的两像素间会存在一定的灰度关系,这种关系被称为是图像中灰度的空间相关特性。而在灰度直方图中,因为各个像素的灰度是独立进行处理的,所以不能很好地反映纹理中

54、灰度级空间相关性的规律。于是人们自然想到通过研究灰度空间相关性来描述纹理,这就是灰度共生矩阵的思想根底。灰度共生矩阵用表示,矩阵元素那么用以下的符号表示: 3-1式中:i,j分别为两个像素的灰度;L为图像的灰度级数;为两个像素间的位置关系共有0、45、90、135四种。灰度共生矩阵的行和列分别是两个像素的灰度级。为了计算方便,可以先将矩阵归一化。归一化值: 3-2其中S为矩阵各元素之和。这里灰度共生矩阵是所有特征参数计算的根底。对于灰度共生矩阵的获取,ImageJ没有相关的工作完成。这里我们扩展ImageJ:a首先定义一个double型的二维数组pd存储共生矩阵值。double pd = ne

55、w doublehistSizehistSize;并初始化各值为0。b接着遍历二维数组pd,对每对横纵座标值,比较水平方向或者45度、90度、135度方向相邻像素值是否满足位置关系。如果满足那么pdij值加1。c再遍历数组pd,并求元素和。d最后遍历数组pd,并对每个值做归一化处理。第2步核心代码如下:for(ii=0;iihistSize;ii+)for(jj=0;jjhistSize;jj+)for (int y=r.y; y(r.y+r.height); y+) for (int x=r.x; x(r.x+r.width)-1; x+) if(pijy-r.yx-r.x=ii&pijy-

56、r.yx+1-r.x=jj)pdiijj +=1;算法流程如图3-2所示。否是否是开始初始化数组归一化遍历结束结束矩阵元素加1像素对满足0度共生条件图3-2共生矩阵计算流程图在得到灰度共生矩阵值后,在ImageJ中为了可以使其被其他用户调用,接口设计为一个二维数组,通过getCoreMatrix()调用数据值。从灰度共生矩阵抽取出的纹理特征参数有以下几种:1) 角二阶矩 3-3角二阶矩是图像灰度分布均匀性的度量。当灰度共生矩阵中的元素分布较集中于主对角线时,说明从局部区域观察图像的灰度分布是较均匀的。从图像整体观察,纹理较粗,此时二阶矩值较大,反过来二阶矩值那么较小。二阶矩是灰度共生矩阵像素值

57、平方的和,所以它也称为能量。相对应可以这样理解,粗纹理含有较多的能量,细纹理含有较少的能量。2) 比照度 3-4图像的比照度即图像的清晰度。在图像中,纹理的沟纹越深,那么其比照度值越大,图像的视觉效果越清晰。3) 相关 3-5其中各变量分别定义:,。相关是用来衡量灰度共生矩阵的元素在行的方向或列的方向的相似程度。如果图像具有某个方向的纹理,那么图像在相应水平角度的灰度共生矩阵的相关值往往大于其他的方向的相关值。4) 熵 3-6熵值是图像所具有的信息量的度量,纹理信息也属于图像信息。假设图像没有任何纹理,那么灰度共生矩阵几乎为零阵,熵值接近为零。假设图像充满细纹理,那么图像的熵值最大。这四个统计

58、参数为应用灰度共生矩阵进行纹理分析的主要参数,可以组合起来,成为纹理分析的特征参数使用。它们在ImageJ中的计算实现过程根本类似,可以概括为:a遍历共生矩阵,按照公式计算数据。b存储数据。所有的统计参数都以double类型存储。在ImageJ插件中提供了对所有参数封装的getter方法,以便其他用户通过使用get()方法调用这些特征参数。本文另外还实现了8种其他特征参数,包括方差、逆差矩、和平均、和方差、和熵、差平均、差方差、差熵。这是在Haralick等为了给航空照片的地势和砂岩的显微镜照片分类,计算过的特征量。程序执行结果如图3-3。 图3-3源图像和纹理分析结果3灰度-梯度共生矩阵灰度

59、-梯度共生矩阵是灰度直方图和边缘梯度直方图的结合。图像的灰度直方图是图像灰度在图像中分布的最根本的统计信息。图像的梯度信息的获得是通过各种微分算子,它检测了图像中的跳变局部,如图像中实体景物的边缘和纹沟等锋利局部。参加微分算子的图像共生矩阵,对描述图像边缘的纹理有极大的帮助。为了减轻计算量,从而实现计算机计算的可能性,先考虑将图像的灰度正规化处理: 3-7其中,是规定的灰度级数目;为图像的灰度级数目。对图像采用梯度算子进行边缘检测,得到梯度图像.同样将梯度图像正规化处理,以使其梯度值更加离散: 3-8这样,我们可以得到灰度-梯度共生矩阵定义为集合。在ImageJ中已经定义了可以获得边缘值的方法

60、接口,其中的梯度算子选用了Sobel算子。首先,我们定义梯度矩阵:int resultArray2D = new intr.heightr.width;接着调用ImageJ的边缘提取方法ip.findEdges();这样,以后的图像的每个像素都已经是引入Sobel算子边缘提取后的结果。然后分别遍历两遍数组,对和分别正规化。定义灰度-梯度共生矩阵double H = new doubleLfLg;其中Lf和Lg分别初始化为64。从灰度-梯度共生矩阵中可以得到的图像特征参数的程序执行结果如图3-4,其中各个参数分别以double型存储,并可以通过get()方法被其他接口调用。 图3-4边缘纹理分析结果3.2.2 基于实物的形状特征提取人们的视觉系统对于实物认识的初级阶段就是形状。图像经过边缘提取和图像分割等操作,就会得到实物的边缘和区域,也就

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!