已阅读5页,还剩50页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单位代码 学 号 10101042 1分类号 TP311.1 毕业设计(论文)基于C#的荧光分子影像控制和分析软件设计和实现学院名称生物与医学工程学院专业名称生物医学工程学生姓名祝永强指导教师汪待发2014年 6月控基制于和C分#析的软荧件光设分计子与软实件现祝永强北京航空航天大学 北京航空航天大学本科毕业设计(论文)任务书、毕业设计(论文)题目:基于C#的荧光分子影像控制和分析软件设计和实现 、毕业设计(论文)使用的原始资料(数据)及设计技术要求:原始资料:(1)国外同类产品资料,如IVIS Lumina K Series III成像系统相关资料 ;(2)实验室搭建的多光谱小动物活体荧光影像样机的实验数据,以及实验室已经完成的算法。 设计技术要求: (1)人性化操作界面,并进行软件优化设计,具有良好的用户体验 (2)具有活体成像的图像采集和数据分析功能,实现对包括光源、滤光片等相关机械部件的精确控制 (3)将功能模块化划分,并将软件模块化编写,具有良好的封装 、毕业设计(论文)工作内容:1、 学习C#程序编写,以及软件编写相关工具 2、 翻译相关文献,学习并了解荧光分子成像原理 3、 根据功能将软件进行模块划分,并编写每个模块的实现代码 4、 分别将每个模块进行调试,包括软件调试,软件硬件联调 5、 将每个模块进行组合,软件的整体调试,并修改发现的问题 6、 软件的进一步的优化,使之更好地应用于荧光分子成像实验 7、 毕业设计论文的撰写,答辩PPT制作 、主要参考资料:1. Charles Petzold. Microsoft C# Windows程序设计M.北京大学出版社, 2002. 2. Jesse Liberty. Programming C# M. 电子工业出版社, 2009. 3. Chreistian Nagel. C#高级编程, 第4版M. 清华大学出版社, 2006 4. Microsoft Corporation. MSDN Library for Visual Studio 2008 SP1CP. 2008 生物与医学工程学院 院(系)生物医学工程 专业类 101012 班学生 祝永强毕业设计(论文)时间: 自 年 月 日至 年 月 日答辩时间: 年 月 日 成绩 指导教师: 兼职教师或答疑教师(并指出所负责部分): 教研室 主任 本人声明我声明,本论文及其研究工作是由本人在导师指导下独立完成的,在完成论文时所利用的一切资料均已在参考文献中列出。作者:祝永强签字:时间:2014年 6 月北京航空航天大学毕业设计(论文)第 47 页基于C#的荧光分子影像控制和分析软件设计和实现学 生:祝永强指导老师:汪待发摘要荧光分子成像技术近年来取得了快速的发展,具有低成本、简单易行、多目标探测、无电离辐射等优点,在疾病的机理研究、新药物研发等方面得到了广泛的应用。本论文在实验室已搭建的荧光分子成像硬件系统的基础上,采用C#语言,以Visual Studio 2010为开发平台,设计并开发了该系统的控制分析软件,并根据系统的功能及硬件构造,将软件进行模块化设计,各模块在逻辑设计上相互独立,使得系统具有良好的维护性及可扩展性,并具有良好的操作体验。软件协调多个模块共同工作以完成复杂的荧光分子成像实验,提高了成像系统工作的精确度与工作效率。通过功能和实验测试验证,结果表明,系统软件具有良好的稳定性和可靠性,能够较好的满足荧光分子成像系统的实验需求,简化并提高了实验工作效率。关键词:荧光分子成像,C#,软件开发,模块化设计,软件测试Software Design for C#-based Fluorescence Molecular Imaging Control and Analysis SystemAuthor: ZHU Yongqiang Tutor: WANG Daifa AbstractFluorescence molecular imaging has been obtaining rapid progress in the study of disease mechanism, new drug development, etc., with the advantage of low cost, easy operation, multi-target detection, no lionizing radiation. On the basis of the laboratory built fluorescence molecular imaging hardware system, this paper designs and develops the control analysis software of this imaging system based on C# language, using Visual Studio 2010 development platform, and uses the modular design of software according to its hardware structure, each module designed logically independent of each other, which enables the imaging system with well maintenance, extensibility, as well as nice operation experience.The software coordinates multiple modules working together so as to complete complex experiment of fluorescence molecular imaging, promoting the accuracy and efficiency of the imaging system. Meanwhile, the function and experiment testing results show that the software of this imaging system is provided with nice stability and reliability, able to meet the need of fluorescence molecular imaging experiment, simplify and improve the efficiency of the experimental work.Key words: Fluorescence Molecular Imaging,C#,Software Development, Modular Design, Software Testing目录1绪论11.1 课题背景及目的11.2 国内外研究现状21.3 课题研究内容31.4 开发环境简介31.5 论文构成42软件需求分析52.1 成像系统52.1.1 系统硬件组成52.1.2 成像系统工作原理82.1.3 分子成像系统工作流程82.2 用户目标92.3 系统功能需求102.4 本章小结103软件总体设计113.1 系统模块划分113.2 软件各模块关系图123.3 本章小结154系统软件详细设计164.1 系统设计思想164.2 软件操作界面设计164.3 系统各模块的详细设计与实现214.3.1 相机模块的设计与实现214.3.2 显示模块的设计与实现254.3.3 图像处理模块设计与实现264.3.4 运动控制模块的设计与实现274.3.5 Protocol模块设计与实现314.3.6 成像模式模块的设计与实现344.3.7 存储模块的设计与实现364.4 本章小结375软件测试385.1 系统测试模型选择介绍385.2 测试主要内容395.3 荧光分子成像实验395.4 本章小结43结论44致谢45参考文献461 绪论1.1 课题背景及目的自X射线被发现以来,诸多现代医学影像设备相继出现,如计算机断层成像(Computed Tomography,CT)、核磁共振成像(Magnetic Resonance Imaging,MRI)、PET成像(Positron emission tomography)、荧光成像(Fluorescence Imaging)等,极大地改善提升了现在医学诊断方式。总体而言,医学影像技术大致经历了三个阶段的发展:结构成像、功能成像,以及分子影像。结构成像技术反映的是组织和器官的结构信息,如CT对骨骼的成像。功能成像提供组织的功能信息,如血流的方向、速度、血氧含量、电活动等1。上述两种影像手段更多的是观察大量分子或细胞的综合效应,难以特异性的观测特定目标分子的活动。分子影像技术(molecular imaging)则是利用影像学手段显示特定分子,观察活体状态下细胞或分子水平的变化,对生物学行为进行定性和定量的研究。荧光分子成像技术是近几年快速发展的一种分子影像技术,主要用于小动物活体成像研究。荧光分子成像技术利用包含荧光标记物的特异性荧光分子探针标记生物体内的分子或细胞,具有灵敏度高、时间分辨率高、快捷简便、费用低、相对高通量等诸多优点2。荧光的产生与一些具有特殊光学特性的荧光物质吸收和释放能量有关。当一个分子或原子吸收了给予的能量后,从一种电子态向另一种能量较低的电子态驰豫引起发光,停止能量供给时发光将瞬间停止(持续10-8s10-7s),这样的发光叫做荧光3。生物组织对600-900nm波长的光呈现出吸收度低,散射度高的特点,光子可深入到生物组织表面数厘米以下,使得深达数厘米的光学活体影像检测成为可能。近年来光学分子成像技术发展迅速4,已被广泛地应用到多个领域中,并取得了重要进展。北航生物与医学工程学院生物光学实验室在荧光分子成像领域进行了长期深入研究,并提出了多个成像算法5-6。实验室之前的实验系统主要搭建在光学平台上,并通过Labwindows编写的控制软件进行系统控制。这些系统不是基于机箱式的,同时虚拟仪器类的控制软件的界面美观性相对较差。另外,系统软件只实现了数据采集的功能,在分析功能还需要导入到Matlab软件中进行。这都使得之前的实验系统的推广性较差。最近,实验室搭建了一套基于机箱式的实验平台。本人在大四上学期的综合实验中,参与和完成了该实验平台的硬件搭建、调试。当前,基于这套平台,实验室期望用一套软件将所有的图像采集和分析功能整合起来,并具有相对较好的用户体验和美观性。因而,本论文的目标是设计开发一套荧光分子成像控制分析软件。1.2 国内外研究现状相对于传统影像学手段,荧光分子成像具有其独特的优势。传统影像学主要依靠非特异性的成像手段对疾病进行检查,从不同组织的物理学特性或生理学特性来鉴定疾病,只能显示疾病的最终效果,而不能显示细胞组织的改变与疾病的关系,因此,当发现疾病时已经错过了最佳的治疗时机。然而,通过特异性分子探针标记分子或细胞,荧光分子成像可以实现对疾病的基础变化、分子水平上的异常进行监测,不仅能够提高疾病诊断的水平,而且可以通过在分子水平上的研究,实现疾病的早起诊断。根据成像方式的不同,荧光分子成像系统分为平面成像系统和断层成像系统两种。平面成像直接通过相机采集成像物体在某一方向的光学信号7,可以提供成像物体的二维信息,开发操作简单,在荧光分子成像领域中得到了广泛的应用8。断层成像系统利用特定波长的激发光激发荧光分子产生荧光,通过相关算法重建生物体内的荧光分子的分布,从而确定荧光分子在生物体中的三维分布,实现立体成像,克服了平面成像方式的局限性9。随着荧光分子成像技术的不断发展,荧光分子成像技术也越加成熟,国外一些公司已研发出荧光分子成像系统产品并已投入市场,帮助广大科研单位、医院科研人员实现临床前生理环境下的生物学科研探索,为生命科学、药物研发、材料学等应用提供了良好的实验平台。Xenogen公司的IVIS 2000成像系统的波长检测范围为400-950nm(生物组织的光谱窗位600到950nm),并通过六块不同的激发光滤光片获取特定波长的激发光,以不同波长的激发光,在不激发荧光分子标记物时激发组织的自发荧光,从而将靶信号与背景光区分开,去除自发荧光。该系统能够提供高性能实时快速成像的活体荧光分子成像,并且可实现快速动态成像10。在荧光分子成像过程中,光子在组织中具有很强的散射性。时域光学分子成像技术(Time Domain Optical Imaging, TDOI)观测发射光子从散射介质中通过的时间,进而将靶点信号与背景信号区分开来。GE公司的时域光学分子成像采用了这种技术,能够根据荧光强度和时间信息确定荧光发光点在生物体内的深度 11,然而,在利用时域光学分子成像时,由于扫描速度的限制,对于大面积被检测或整体动物而言,需要较长的检测时间,因而这种技术一般用于小动物或动物的局部成像10。在国内,清华大学、中科院自动化所、天津大学等科研单位也在研制荧光断层成像原型系统,搭建完成了BLT原型系统,该系统重点解决了非均匀介质生物组织体内的荧光光源重建问题,能够精确地对荧光光源进行成像,与真实光源相比,重建光源的位置及大小误差不大。目前,由于荧光探针及光学深度等限制,荧光分子成像技术主要用于小动物研究。Ntziachristos12等通过仿真得出:近红外荧光可以穿透12cm的乳腺或肺组织、6cm的肌肉组织和5cm的成人脑组织。这些结果表明,随着适用于人体的分子探针技术的研究,荧光分子成像具有进入临床应用的潜力13。1.3 课题研究内容本文研究内容是以美国微软公司的Visual Studio2010开发软件为平台,利用相机等硬件厂商提供的技术开发文档,使用C#语言开发一套功能完善,易于维护,性能可靠,简洁高效的控制软件系统,使该成像系统更好的应用于荧光分子影像领域的研究。1.4 开发环境简介Visual Studio 2010是微软公司推出的开发环境,是目前最流行的Windows平台应用程序开发环境,其集成开发环境(IDE)的界面被重新设计和组织,变得简单明了。借助其集成开发环境,软件开发工作将变得更为简单便捷,任何规模的组织都可以使用Visual Studio 2010快速创建应用程序,这些应用程序能够较好的利用Windows操作系统,使得软件更为安全、更易于管理、更加可靠。图1.1 Visual Studio 2010 开发环境VS2010集成开发环境改进了语言和数据功能,各个编程人员可以利用这些功能更轻松地构建解决方案,以处理和分析信息,并能在同一个开发环境内创建面向多个.NET Framework版本的应用程序,可以在同一环境中支持各种各样的项目类型,如图1.1所示。系统软件开发采用的是C#语言。C#是C Sharp的简称,是微软推出的一种基于.NET框架的、面向对象的高级编程语言。C#由C语言和C+派生而来,继承了其强大的性能,并以.NET框架类库为基础,拥有类似于Visual Basic的快速开发能力。C#是一种简单、现代、通用,以及面向对象的程序设计语言,为在分布式环境中的开发提供了使用的组件开发应用,C#可以实现应用程序的快速开发,并同时保持了C语言风格的表现力与有优雅。1.5 论文构成本文共分为五章,每章具体内容如下:第一章 绪论:介绍毕业设计题目的选题背景及应用价值,国内外研究现状,课题主要研究内容。第二章 软件需求分析:介绍了荧光分子成像系统的硬件构成及工作原理,分析并确定了系统软件的工作流程及用户目标,以及软件的功能需求。第三章 软件总体设计:在确定用户目标及功能需求后,对软件进行了总体设计,介绍了软件各个模块的功能。第四章 软件详细设计:在软件总体设计的基础上,对软件进行了详细设计,介绍了软件每个模块的主要逻辑及具体实现。第五章 软件测试:介绍了软件测试模型,软件测试内容及测试结果。2 软件需求分析需求分析根据用户的需求对软件进行定义和确定,即确定系统的目的、范围、定义和功能等,只有在确定软件需求后才能分析和寻找系统的解决方法。需求分析是软件定义中的最后也是最重要的一部分,它确定系统所需的功能,并对目标进行细化,从而确定软件需要实现的各个功能。需求分析对于荧光分子成像系统的控制和分析软件的设计至关重要。2.1 成像系统在进行系统软件设计前,首先要了解荧光分子成像系统的硬件组成及成像原理,并了解荧光分子成像的工作流程及注意事项,熟悉成像实验中的各种功能需求。本小节主要介绍荧光分子成像系统的硬件组成,工作原理等。2.1.1 系统硬件组成成像系统的硬件部分主要由光源模块、参数选择模块、采集模块、运动控制模块组成。其中,光源模块由氙灯光源及其电源组成,为成像系统提供所需的光源;参数选择模块用于实验中各个硬件的参数设置,包括光源波长、光源类型、光源位置、相机镜片等;采集模块由相机与光学镜片组成,用于获取实验物体的图像;运动控制部分主要由单片机及驱动器组成,用于接收上位机命令并实现相应操作。图2.1所示为系统的硬件结构图,下面将介绍系统的主要硬件设备:图2.1 荧光分子成像系统硬件结构示意图(1) 氙灯光源系统采用氙灯作为激发光光源,氙灯工作稳定,具有高效率的电光转化效率,可以选择不同的波长、波段,以满足实验中多样化需求,并可实现高能量密度、长时间连续工作,其最大光输出功率为15W,发光光谱范围为350nm-1100nm,实物图如图2.2所示14。图2.2 氙灯光源实物图(2) CCD相机CCD相机是成像系统的核心设备,相机成像质量的好坏直接决定了成像系统的性能,相机采集的是荧光分子标记物产生的荧光信号,为了去除背景光、噪声、自发荧光等的影响,需要在相机前添加特定的光源镜片,如滤光片、衰减片等。荧光分子成像系统采用的是英国Andor公司生产的DC-152Q-FI型号的制冷型科学级Neo sCMOS相机。Andor sCMOS相机采用了日本Nikon公司生产的商用镜头,通过PCI总线与计算机通讯,拥有16位的AD转换精度,读出噪声低,视场大,采集速度快,可满足实验成像需求,相机实物图如图2.3所示,图2.4为该相机的部分参数15。图2.3 Andor sCMOS 相机实物图(3) 步进电机及驱动器步进电机是运动控制部分的主要设备,运动控制部分主要实现光源选择、光学参数设置,以及透射光位置设置等,电机的精度直接决定了系统运动控制部分的精度。系统采用的电机有两种,森创三相混合式步进电机57系列与42系列,森创步进电机具有高转速、高转矩、低噪音、低振动等优点,能满足系统的精度需求。其中57系列步进电机带载能力强,运行稳定,精度较高,用于带动系统中平行台的运转,该电机的适配驱动器为森创数字三项步进电机驱动器SD-30807,57电机及驱动器如图2.5所示。42系列步进电机体积小,具有高转矩低振动的特点,用于带动系统中两个光源参数选择转轮的运转,这种电机的适配驱动器为森创数字两项步进电机驱动器SD-20403,42电机及其驱动器如图2.6所示16。图2.4 CCD相机部分参数图2.5 森创三项步进电机及驱动器SD-30807图2.6 森创两项步进电机及驱动器SD-204032.1.2 成像系统工作原理在设计编写系统的操作分析软件之前,首先要了解荧光分子成像系统的工作原理。荧光分子成像系统有两种成像方式,即平面成像与透射成像。平面成像将特定的激发光照射到实验物体上,通过CCD相机采集物体在某一个投影方向的光信号;透射成像采用的是透射式断层成像,在该系统中,实验物体与相机位置固定,实验中,使激发光按照一定的间隔扫描物体,这样激发光就可以从不同的位置照射实验物体,进而激发实验物体中的荧光分子探针产生荧光,探针产生的荧光信号经过散射后穿过生物组织,通过相机采集数据,之后,通过建立数学模型,可以逆向计算出生物组织的特征,以及荧光分子探针在实验物体内的具体分布。在两种成像方式中,通过相机镜头前的滤光片的滤波作用,去除激发光信号,以及部分自发荧光等噪声光信号,只保留荧光分子探针的激发荧光信号。根据上文介绍的主要硬件设备,实验室搭建了荧光分子成像系统的硬件系统,图2.7为系统工作示意图。图2.7 荧光分子成像系统工作示意图2.1.3 分子成像系统工作流程根据荧光分子成像系统硬件结构及荧光分子成像实验操作步骤,确定成像系统软件的工作流程设计如图2.8所示,整体上分为系统初始化、系统参数设置、采集数据、显示及数据分析,以及数据保存五个部分。图2.8成像系统工作流程软件启动时,首先完成CCD相机的初始化,并与硬件设备建立通讯,主要是转轮和平移台,实现计算机对各个硬件的控制。之后,用户可以通过软件操作实现对各个硬件的参数设置,从而满足实验需求。荧光分子成像系统的核心功能是图像的获取,在反射成像模式中,通过对光源选择平移台、光源参数选择转轮,及相机参数选择转轮的控制,实现实验参数的设置,通过相机直接获取一个投影方向的光信号,并采集图像;在透射成像模式中,激发光二维平移台按照设定的距离逐次一定,每次移动到指定的位置后,相机按照设定的binning值和曝光时间采集该位置的图像,再移动到另一个位置,进行图像采集。在protocol模块中,通过设置或载入Protocol参数,软件即可按照每个步骤设定的参数自动执行相应操作,并完成图像采集及保存工作。完成图像采集后,需对获取的图像进行显示及进一步的处理,显示可以根据选择的不同配色方案显示不同的伪彩,而图像处理模块则实现对图像的进一步的分析处理。保存模块部分主要实现对相机获取的原始数据、实验参数,以及处理后的图像等信息进行存储。2.2 用户目标在初步了解荧光分子成像系统的工作流程后,可以进行软件需求分析的下一步工作,即用户目标。用户目标指的是用户希望软件能够完成的功能,本软件的主要工作是用户在进行荧光分子成像实验时的需求及相关操作,主要有以下几点:(1)用户在开启软件时,能够实现相机的初始化,以及转轮、平移台等的归零操作,并可进行成像系统各个参数的设置。(2)用户可以通过软件设置和查看系统各个硬件设备的工作参数,可以在实验中根据实验需求方便的进行各个硬件设备的参数调整。(3)可根据实验需求,选择不同的成像模式,并可根据设置的参数自动完成Protocol等耗时的实验操作。(4)获取相机采集到图像的基本信息,并可根据需求选择不同的显示方案。(5)软件可以保存实验中设置的各个参数及实验数据,便于实验记录。2.3 系统功能需求荧光分子成像系统控制分析软件是根据成像系统的硬件结构及所需功能编写的,用于实现实验中荧光分子信号的获取及后期分析等,相对于各个硬件自带的软件,本系统实现了硬件系统与软件的良好结合,有助于实验人员更加高效地完成实验操作及数据分析。部分模块实现功能如下:(1)程序开启时根据默认参数设置初始化相机及系统其他硬件设备(2)可实时查看系统中各个设备的工作状况及其工作参数(3)通过软件操作实现对系统每个硬件的控制,以实现其功能,如相机的图像获取,转轮和平移台的运动等(4)可根据不同的成像模式改变相应硬件设备工作参数,完成图像采集(5)软件可根据设置或加载参数,自动完成多步骤、耗时的实验操作(6)软件可实现对相机获取的图像的进一步的分析处理(7)在关闭软件时关闭系统的各个硬件设备2.4 本章小结本章主要介绍了荧光分子成像系统的硬件组成及工作原理,并介绍了系统中的主要硬件设备,如相机、氙灯光源、步进电机及驱动器等,根据荧光分子成像的两种成像模式,确定了成像系统的工作流程及需求分析,并确定了用户目标和系统功能需求,并完成了软件开发的需求分析工作,为之后的软件编写工作打下了良好的基础。3 软件总体设计在完成用户目标及功能需求分析后,本章将根据系统功能需求对软件作初步的总体设计,对软件的主要模块及各个模块之间的关系做进一步的分析。3.1 系统模块划分根据软件功能需求、系统硬件组成,以及荧光分子成像实验操作要求,将系统控制分析软件分为如下模块:用户操作界面、运动控制模块、相机模块、Protocol模块、显示模块、成像模式模块、图像处理模块、存储模块,共八个部分,各个模块简介如下:(1) 用户操作界面用户操作界面采用C# winform 编写,分为主界面和各个子界面,主界面用于图像、实验参数等信息的显示,各个子界面用于实现各个模块的功能。用户操作界面用于接收用户命令并响应相关事件,设置成像系统工作参数,从而实现对系统的精确控制。(2) 运动控制模块运动控制模块主要实现系统硬件中的转轮和平移台的运动控制,包括光源选择平移台、激发光二维平移台、光源参数选择转轮、相机参数选择转轮。通过运动控制模块实现对这些硬件的控制,从而实现对这些硬件的参数设置。(3) 相机模块相机模块主要完成相机的初始化、相机参数设置,以及图像的采集等功能。相机的参数设置包括:binning值、曝光时间、触发方式、像素读取速率、图像尺寸、像素范围等,根据用户设置的参数,完成图像的采集。(4) Protocol模块Protocol模块用于实现根据设定的参数自动完成相关实验步骤操作,并获取图像。用户可以在该模块中设置每一步骤的实验参数,或通过加载xml参数文件实现参数设置,该模块就可自动地根据设定的参数设置系统硬件设备的工作参数,并控制硬件设备的运动,采集图像,并且每一步骤采集到的图像会自动的保存到指定路径下。该模块减少了重复性、耗时的实验操作,简化了用户操作。(5) 显示模块显示模块将相机模块采集到的图像显示到软件上。用户可通过不同配色方案的选择实现不同伪彩的图像显示,并可通过设置像素显示范围,用于实现在某一像素范围的图像显示。(6) 成像模式模块成像模式模块用于选择荧光分子成像系统的成像模式,包括反射成像、透射成像。根据选择的成像模式调整系统硬件设备的参数。用户可根据选择实现在不同成像模式下的图像采集。(7) 图像处理模块图像处理模块将相机获取的图像做进一步的处理分析,包括图像滤波、图像信息提取、图像直方图绘制、自发荧光扣除、感兴趣区域(ROI)选取及其信息的统计显示等。(8) 存储模块存储模块将相机采集到的原始数据、实验条件参数、图像处理信息等保存为相应文件,便于实验记录及进一步的分析处理。3.2 软件各模块关系图根据软件工作原理及流程,本小节进一步的确定了系统软件各个模块之间的关系以及每个模块的主要功能,图3.1所示为系统软件各模块之间的关系图,下面将详细介绍每个模块的主要功能。图3.1系统软件各模块关系图(1) 运动控制模块该模块主要完成的功能有:完成系统光源切换;在光源前添加滤光片等光学镜片;在相机镜头前添加滤光片、衰减片等镜片;移动激发光位置,实现激发光在实验物体上的逐点扫描。运动控制模块主要功能如图3.2所示。图3.2 运动控制模块(2) 相机模块相机模块的主要功能有:在软件启动时,完成相机初始化工作;设置相机的曝光时间、分辨率、binning等主要参数;控制相机采集图像,获取原始数据;在相机工作过程中,每隔一段时间获取相机当前的工作温度,并显示。相机模块的主要功能如图3.3所示。图3.3 相机模块(3) Protocol模块Protocol模块为了减少重复性、耗时的操作,用户可以手动设置一系列实验步骤的参数,或通过载入参数的形式设置,软件可根据设置的参数自动完成这些操作,从而简化了实验操作。该模块主要功能有:设置实验步骤参数,模块根据设置的参数自动完成系统硬件的运动控制,采集图像,并根据设置的路径按照一定规律自动保存采集到的原始数据;将实验中设置的参数保存为xml文件;加载xml参数文件,作为本次实验的实验参数。Protocol模块的主要功能如图3.4所示。图3.4 Protocol模块(4) 显示模块显示模块主要将相机获取的原始数据根据默认的配色方案显示到软件界面上,并显示图像相关信息。用户可以选择不同配色方案,从而使原始数据显示为不同的伪彩,并可实现图像的旋转、翻转等图像调整;显示系统的一些工作信息;并可选择像素显示范围,用于实现某一像素范围的图像显示。显示模块主要功能如图3.5所示。图3.5 显示模块(5) 成像模式模块成像模式模块是成像系统软件的主要功能之一,通过软件参数设置,协同控制系统硬件中的多个部分,实现这些硬件的协调工作,完成反射成像、透射成像等模式的成像:a.反射成像:通过协调控制光源选择平移台、光源参数选择转轮、相机参数选择转轮等硬件,实现反射成像,这种成像方式较为简便;b.透射成像:根据设定平移台每次移动的距离,通过激发光二维平移台的移动,激发光逐点照射到实验物体上,完成透射成像。(6) 图像处理模块图像处理模块主要对相机采集到的原始数据作进一步的分析处理,例如图像的滤波,包括高斯滤波、平均值滤波、拉普拉斯滤波、中值滤波等,以及选取图像的直方图绘制,并显示图像或ROI的统计信息,如最大值、最小值、平均值等。(7) 存储模块存储模块完成实验数据及参数的存储工作,主要包括相机采集的原始数据、图像、实验中设置的参数,以及Protocol参数等。3.3 本章小结在完成系统软件的需求分析及用户目标的基础上,本章主要分析介绍了成像系统软件的总体设计,将系统软件划分为不同的模块,明确了每个模块的具体功能,以及模块间的关系。每个模块单独完成各自的功能,软件按照模块化编写,便于之后的维护扩展,以及软件的详细设计实现工作。4 系统软件详细设计系统软件的详细设计的主要工作是实现系统功能的具体实现。在上一章的基础上,本章主要论述每个模块功能的具体实现。4.1 系统设计思想a 操作界面人性化操作界面指的是面向操作者而设计的用于操作使用及反馈信息的指令部分,广义上讲操作界面就是软件面向外界而展示其特点及功能组成部分的界面,良好的操作界面具有易用性、美观协调、规范合理等特点。良好的操作界面可以使用户快速地掌握软件操作。在系统软件界面设计过程中,参考了相机的自带软件,国外类似产品的软件,设计并优化了系统软件界面。b 代码模块化代码模块化是把一个大的代码拆分为若干个小的模块的过程,然后在其他模块中可以方便的调用这些模块化的代码。代码模块化可以使得代码的重用性更好,并且方便软件代码的管理与修改,而且在代码模块化后,代码的可读性也得到了很大的提高。在第三章中将系统软件划分为8个模块,在编写代码时,每个模块单独编写为一个类文件,这样在其他模块中调用的时候就变得较方便,且便于代码的管理与修改。c 功能全面化软件在设计时不仅考虑到其基本功能即运动控制和图像采集,同时,作为一个荧光分子成像系统的软件,还具有图像处理分析、自动执行等功能。4.2 软件操作界面设计良好的操作界面可以使用户快速的掌握软件操作,并提高实验工作效率,图4.1所示的是系统软件的操作界面工作流程图。图4.1 软件界面工作流程图使用Visual Studio 2010软件,用户可以通过拖拽的方式进行软件界面的设计,能够较快速的完成复杂的界面设计工作。操作界面的设计往往是软件编写的第一步,在界面设计过程中,需要确定菜单、工具栏内容,以及各个界面上的控件排布,界面间的数据传递等。在完成界面的设计后,需要对每个控件添加事件处理代码,从而响应用户操作,完成其特定的功能。在系统软件界面设计过程中,参考了相机自带软件以及国外类似产品PerkinElmer 公司的IVIS Lumina K及Bruker公司的Bruker MISE操作软件,图4.2是软件运行的界面,通过点击工具栏中的功能按钮弹出各个功能的子窗口,图4.3图4.7是软件各个功能模块窗口界面。1.菜单栏;2.工具栏;3.显示区域;4.状态栏;5.子窗口图4.2 软件主界面图4.3 运动控制界面图4.4 相机设置界面图4.5 图像处理界面图4.6 Protocol界面图4.7 成像模式模块窗口4.3 系统各模块的详细设计与实现系统按模块划分为:用户操作界面、运动控制模块、相机模块、Protocol模块、显示模块、成像模式模块、图像处理模块、存储模块。本小节将介绍每个模块的具体设计与实现。4.3.1 相机模块的设计与实现根据相机制造厂商提供的API函数,包括静态链接库文件.lib以及动态链接库文件.dll,以及SDK手册,可以方便地了解相机的工作流程及控制函数。(1) 相机的API函数相机厂商提供的相机软件开发工具包(Software Development Kit 3.3 ,SDK)中包含了控制相机硬件的应用程序接口文件(Application Programming Interface,API),这些文件主要是扩展C语言编写的,包括头文件、静态连接库、动态链接库等,通过调用API中的函数可实现对相机的各种功能操作。Andor Neo sCMOS相机提供的API函数可以被分为若干个部分,每个部分控制相机某个方面的控制,比如开启相机的句柄,缓冲区管理,以及获取相机的一些特征等。相机的每个特征都有指定的类型用于阐释如何控制相机的该特征,特征类型被分为六类:Integer、 Floating Point、Boolean、Enumerated、Command、String。例如,曝光时间(the Exposure Time feature)这一特征的类型为Floating Point,开始获取(the Acquisition Start)的类型为Command。API中使用的特征类型是用AT_WC类型定义的16位宽度,用于代替所有特征名称、枚举选项以及字符串类型值。例如,Integer部分的API函数有:int AT_SetInt(AT_H Hndl, AT_WC* Feature, AT_64 Value);int AT_GetInt(AT_H Hndl, AT_WC* Feature, AT_64* Value);int AT_GetIntMax(AT_H Hndl, AT_WC* Feature, AT_64* MaxValue);int AT_GetIntMin(AT_H Hndl, AT_WC* Feature, AT_64* MinValue);其中,形参Hndl为相机句柄,Feature是Integer类型的相机功能,例如FrameCount,通过这些API函数的调用,应用程序可以方便的实现对相机的这些功能的设置以及数值的查询17。(2) 封装相机常用函数相机厂商提供的文件为扩展C语言编写的,与部分C#的数据类型不匹配,需要进行数据转换,不方便C#程序的直接调用,并且每次编写相机控制部分程序都需要重复编写类似的函数,因此,为了在之后的工作中更加简便的编写相机控制部分代码以及方便的使用C#编写相机控制部分程序,将相机的部分常用函数编写为链接库文件。在编写C#相机控制部分代码之前,首先用C+编写相机控制部分中常用的函数,将相机厂商提供的SDK文件复制到C+工程目录下,并在C+工程目录下添加SDK中的导入库文件和头文件等,在程序中通过相应引用的文件,调用相机函数,并编写一系列相机控制中常用的函数,例如相机初始化、相机温度查询、相机参数设置等,之后通过编译生成动态链接库及静态链接库等文件。这样,C#程序或其他程序就可简单方便的完成对相机的控制,而不用重复的编写类似的代码,提高了代码的利用效率。图4.8所示是C+封装相机常用函数的流程示意图,图4.9所示是封装完成的函数列表。图4.8 相机函数封装流程图图4.9 封装的相机常用函数(3) 相机模块的详细设计成像系统软件中的核心部分是相机模块,相机模块代码的设计编写是软件中的重点和难点。图4.10所示是相机模块的工作流程示意图。在软件启动时,程序完成相机的初始化工作。在相机的初始化过程中,借助C#语言强大的引用功能,载入工程目录下的相机配置文件以及封装的相机常用函数文件,从而实现对相机的控制,并根据程序中设定的值对相机的binning、曝光时间等设置相机的工作参数,相机的分辨率采用其默认值,即2064*2048。相机初始化部分代码如下所示:int initialValue = 0;initialValue = CameraFuncsTest.CameraFuncs.AndorCameraInitial();if (initialValue = 1 )/binning值默认设置为1,曝光时间0.5CameraFuncsTest.CameraFuncs.AndorCameraSetBinning(1); CameraFuncsTest.CameraFuncs.AndorCameraSetExposureTime(0.5);cameraBinning = 1;cameraExposureTime = 0.5;/状态栏显示信息temperaturetoolStripStatusLabel.Text = cameraTemperature.ToString();WidthtoolStripStatusLabel.Text = “Width”+cameraImageWidth.ToString();HeighttoolStripStatusLabel.Text=”Height”+cameraImageHeight.ToString();BintoolStripStatusLabel.Text=”Binning”+cameraBinning.ToString();ExpoTimetoolStripStatusLabel.Text=”ExposureTime”+cameraExposureTime.ToString();else/提示相机初始化错误MessageBox.Show(相机初始化错误!请检查, Error!, MessageBoxButtons.OK, MessageBoxIcon.Error);图4.11是相机控制部分的界面,用户通过输入数字实现相机曝光时间的设置,并通过下拉框选择相机触发方式,并且可通过调整像素最大值、像素最小值实现显示特定像素范围的图像,相机部分其他参数的设置采用了分页的设计,采用Tab控件,将相机不同类别的参数分别放到不同的页面中,图4.12所示的是相机其他参数的设置界面,通过这些参数的设置实现对相机工作参数的控制,通过设置保存路径指定相机采集数据的保存位置。单击工具栏中的采集图像或采集视频功能按钮,相机就会进行一次图像采集,或根据Timer设置的时间间隔每隔一段时间连续采集图像,在相机采集图像过程中,使采集图像或采集视频按钮失能,表示相机正在工作中,在相机采集结束后失能这两个按钮,并将采集到的数据传递到显示模块中,用于在主界面上显示图像。图4.10 相机模块工作流程示意图图4.11 相机设置窗口图4.12 相机参数设置4.3.2 显示模块的设计与实现显示模块将相机模块采集到的原始数据根据指定的配色方案转化为图像,并显示在主界面上。相机采集到的原始数据位16位无符号整数类型,而C#中的用于颜色的Color类型是8位的,因此,从相机采集的数据到显示的图像需要一个处理的过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论