1、 本科毕业论文(设计)人血红细胞形态参数的识别与分析二级学院专 业班 级学生姓名学 号指导教师2013年2月本论文为大义版,有需要+QQ448580230详谈!适用于普通的大学论文写作.诚 信 声 明我声明,所呈交的毕业论文(设计)是本人在老师指导下进行的研究工作及取得的研究成果。据我查证,除了文中特别加以标注和致谢的地方外,论文(设计)中不包含其他人已经发表或撰写过的研究成果,也不包含为获得其他教育机构的学位或证书而使用过的材料。我承诺,论文(设计)中的所有内容均真实、可信。毕业论文(设计)作者(签名): 年 月 日 人血红细胞形态参数的识别与分析【摘要】*【关键词】人血红细胞;图像处理系统
2、;MATLABThe identification and analysis of the human red blood cell morphological parametersAbstract Objective: *Keywords Human Red Blood Cell Image Processing MATLAB 目 录1 前言12 血红细胞形态参数的研究现状与发展趋势22.1 血细胞形态参数的研究现状22.2 血红细胞形态参数研究的发展趋势22.3 市场需求分析33 系统开发技术基础43.1 Matlab简介43.2 Matlab的特点43.3 Matlab系统结构54 详细
3、系统设计64.1 系统的功能模块划分64.2 系统主界面74.3 文件操作模块84.3.1 图像打开84.3.2 图像保存94.4 虚拟量尺模块104.5 图像处理模块104.5.1 图像运算114.5.2 空洞填充124.5.3 边缘检测124.6 图像分析模块135 系统程序测试结果186 总结267 参考文献288 致谢309 附录311 前言随着信息技术的发展,数字图像处理技术作为一种非常有效的手段越来越多的应用于细胞图像的研究中,在一定程度上可提高工作效率和检验精度。近20多年来,医学影像已经成为医学技术中发展最快的领域之一,其结果使临床医生对人体内部病变部位的观察更直接、更清晰,确
4、诊率也更高。血细胞图像自动识别是运用计算机处理医学图像并识别对象物的代表性课题之一。它是计算机、图像处理、模式识别及人工智能等理论和技术相互促进的产物1。*2 血红细胞形态参数的研究现状与发展趋势2.1 血细胞形态参数的研究现状2.2 血红细胞形态参数研究的发展趋势2.3 市场需求分析 3 系统开发技术基础3.1 Matlab简介 MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分8。 MATLAB主要面
5、对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平9。它在数学类科技应用软件中在数值计算方面首屈一指。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用Matlab来解算问题要比用C、FORTRAN等语言完成相同的事简捷得多,并且Matlab也
6、吸收了像Maple等软件的优点,使Matlab成为一个强大的数学软件10。在新的版本中也加入了对C、FORTRAN、C+、java的支持。 MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。3.2 Matlab的特点1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;2) 具有完备的图形处理功能,实现计算结果和编程的可视化;3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;4) 功能丰富的应用箱(如信号处理工具箱
7、、通信工具箱等),为用户提供了大量方便使用的处理工具11。 3.3 Matlab系统结构 Matlab系统由Matlab开发环境、数学函数库、Matlab语言、图形处理系统和应用程序接口(API)五大部分组成。1) 开发环境。MATLAB开发环境是一套方便用户使用的MATLAB函数和文件工具集,其中许多工具是图形化用户接口。它是一个集成的 用户工作空间,允许用户输入输出数据,并提供了M文件的集成编译和调试环境,包括MATLAB桌面、命令窗口、M文件编辑调试器、MATLAB工作空间和在线帮助文档12。2) 数学函数库。MATLAB数学函数库包括了大量的计算算法。从基本算法如加法、正弦,到复杂算法
8、如矩阵求逆、快速傅里叶变换等。 3) Matlab语言。MATLAB语言是一种高级的基于矩阵/数组的语言,它有程序流控制、函数、数据结构、输入/输出和面向对象编程等特色。 4) 图形处理系统。图形处理系统使得MATLAB能方便的图形化显示向量和矩阵,而且能对图形添加标注和打印。它包括强大的二维三维图形函数、图像处理和动画显示等函数。5) 应用程序接口。MATLAB应用程序接口(API)是一个使MATLAB语言能与C、Fortran等其它高级编程语言进行交互的函数库。该函数库的函数通过调用动态链接库(DLL)实现与MATLAB文件的数据交换,其主要功能包括在MATLAB中调用C和Fortran程
9、序,以及在MATLAB与其它应用程序间建立客户、服务器关系13。 4 详细系统设计本系统是利用Matlab的GUI界面编程所设计的,在GUI界面编程设计完成系统的各个功能模块后,再利用Matlab系统自带的LCC编译器转换成可独立运行的exe程序。4.1 系统的功能模块划分4.2 系统主界面运行人血红细胞形态参数的识别与分析系统后,出现的主界面如图4-2所示:图4-2 系统主界面在系统的主界面设计中,设置了一个axes坐标轴,用来显示打开的文件以及存储处理后的文件,下一步的操作中科院直接调用存储在axes中的图像,而不必再进行繁杂的前续处理14。4.3 文件操作模块文件操作模块是整个系统中最基
10、本的组成成分。文件操作模块主要实现图像文件的打开和保存操作。它的功能结构图如图4-3所示。 文件操作模块图像打开图像保存图4-3 文件操作模块4.3.1 图像打开图像打开功能的实现,其图像打开后的界面如图4-4所示:图4-4 打开文件在Matlab创建cellanalysis工程文档后 4.3.2 图像保存4.4 虚拟量尺模块4.5 图像处理模块图像处理模块是本系统的重要组成部分,主要是对源图像进行各种预处理,包括图像运算(灰度变换和二值化变换)、空洞填充、边缘检测等。图像处理模块的功能结构图如图4-5所示: 图像处理模块图像运算空洞填充边缘检测 图4-5 图像处理模块功能结构图 4.5.1
11、图像运算 4.5.2 空洞填充4.5.3 边缘检测4.6 图像分析模块图像分析模块的主要功能是完成目标区域中,细胞的中心点查找、标记、编号和对细胞的长短轴进行以及细胞的圆度进行计算。其中,细胞的圆度为细胞的短轴与长轴之比,比值越接近1,该细胞的圆度就越圆。通过使用regionprops函数后,可以分别计算获得各个区域的详细参数,在本次设计,regionprops所用的属性中,主要使用到的有Centroid、MajorAxisLength和MinorAxisLength三个属性,分别可以得到质心(用于细胞标记序号)、长轴和短轴。因为在regionprops的属性中,没有可以用于直接计算圆度的属性
12、,故在做设计的时候,使用了一个for循环结构语句用于分别计算各个目标物的圆度,再将得到的结果与regionprops计算所得的结果重新组成一个数组输出,具体的实现方法代码如下:5 系统程序测试结果本文设计的人血红细胞形态参数的识别与分析系统由文件操作、虚拟量尺设置、图像处理和图像分析等模块组成,每个模块都有相应的功能。主要功能包括文件的打开和保存、虚拟量尺的设置、图像运算、空洞填充、边缘检测、中心点寻找、目标编号和参数计算等。每个功能在各个模块上都有相应的按钮,点击按钮后即可对图像执行相应的功能处理,并将处理结果显示处理。通过Matlab系统运行后,系统的主界面如图4-2所示。对于现存的所有的
13、图像文件格式中,BMP图像文件格式的图像数据是未经压缩的,因为图像的数字化处理主要是对图像中的各个像素进行相应的处理,而未压缩的BMP图像中的像素数值正好与实际要处理的数字图像相对应。因此BMP格式的文件最适合用于进行数字化处理20。本设计中,用于研究和检测的人血红细胞图像的格式便采用BMP格式。通过从电脑上打开一张BMP格式的图像来验证人血红细胞形态特征识别与分析系统的可行性。系统测试步骤如下:(1) 文件框中点击打开按钮,查找图像的存放路径,如图5-1所示,点击要打开的图像。系统读取到的图像如图5-2所示。图5-1 查找图像图5-2 系统读取到的图像 (2) 打开图像后,对人血红细胞形态特征参数的测量,需要先自定义虚拟量尺。在主界面中点击虚拟量尺按钮,出现消息提示框如图5-3所示。在对话框中输入比例倍数,建立一个像素长度单位与微米的对应关系。人血红细胞的直径通常是68m,平均为7m左右,据此计算得出本文中所使用的图像的比例尺约为0.14。图5-3 虚拟量尺 虚拟量尺设置完成之后,选择“图像处理”中的“图像运算”按钮,对图像进行运算,把系统读取到的彩色图像进行灰度变换,将其转换成处理所需的灰度图像。灰度图像转换完成后,画出图