基于VB和MATLAB的医学图像处理系统设计.docx

上传人:b****2 文档编号:1162371 上传时间:2023-04-30 格式:DOCX 页数:52 大小:750.35KB
下载 相关 举报
基于VB和MATLAB的医学图像处理系统设计.docx_第1页
第1页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第2页
第2页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第3页
第3页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第4页
第4页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第5页
第5页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第6页
第6页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第7页
第7页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第8页
第8页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第9页
第9页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第10页
第10页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第11页
第11页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第12页
第12页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第13页
第13页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第14页
第14页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第15页
第15页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第16页
第16页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第17页
第17页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第18页
第18页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第19页
第19页 / 共52页
基于VB和MATLAB的医学图像处理系统设计.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于VB和MATLAB的医学图像处理系统设计.docx

《基于VB和MATLAB的医学图像处理系统设计.docx》由会员分享,可在线阅读,更多相关《基于VB和MATLAB的医学图像处理系统设计.docx(52页珍藏版)》请在冰点文库上搜索。

基于VB和MATLAB的医学图像处理系统设计.docx

基于VB和MATLAB的医学图像处理系统设计

基于VB和MATLAB的医学图像处理系统设计

摘要

介绍了VisualBasic与MATLAB混合编程方法在可靠性与维修性仿真中的应用。

此方法突破了以往利用单一语言实现系统可靠性与维修性仿真的限制,更广泛的利用了现有技术成果,降低了编程难度,加快了编程速度。

探讨了利用VB6.0和MATLAB在医学图像处理领域中进行混合编程的方法。

在分析了VB6.0和MATLAB7.0各自提供的程序接口的基础上,采用了一种通过ActiveX技术将VB和MATLAB混合编程来实现图像处理的方法,并建立了一套在Windows环境下运行的图像处理软件,该软件可以对医学图像进行一些基本的图像预处理和图像增强方面的操作,尤其在图像的灰度变换、消除噪声和边缘检测方面具有良好的效果。

通过本设计表明:

通过VB和MATLAB进行混合编程可以减少设计的时间,降低了编程难度,同时兼顾了代码安全和界面友好,适合于开发一个在Windows工作环境下运行的、具有丰富的程序接口以及图像处理能力的应用软件,且大大提高了开发效率,对予解决工程问题具有较大的参考价值。

关键词:

VB,MATLAB,混合编程,ActiveX,图像处理

THEREALIZATIONOFIMAGEPROCESSINGSYSTEM

BASEDONVBANDMATLAB

 

ABSTRACT

 

ApplicationofsystemreliabilityandmaintainabilitysimulationbasedonVisualBasicandMATLABmixedprogrammingisintroducedinthispaper.Thismethodbreaksthroughthelimitationofusingsingleprogramminglanguageinsystemreliabilityandmaintainabilitysimulationandcanbereducedandextensiveuseofexistingtechnicalaccomplishment.Withthismethod,programmingdifficultycanbereducedandprogrammingspeedcanbeaccelerated.AnalysisoftheVB6.0andMATLAB7.0eachprovidethemethodonthebasisofinterface,adatafilebyVBandMATLABwillbeconductedjointlywiththeimageprocessingmethods.Throughanexampleshowsthatthemethodofprogrammingdesignedtoreducethetimeandreducethedifficultyofprogramming,takingintoaccountthecodesecurityanduser-friendlyinterface,ItissuitableforthedevelopmentofworkintheWindowsoperatingenvironment,hasarichinterfaceandimageprocessingcapabilitiesoftheapplicationsoftwarefandgreatlyenhancedevelopmentefficiency.Itworkstosolvetheengineeringproblemwiththelargerreferencevalue.

 

KEYWORDS:

VB,MATLAB,mixedprogramming,ativeX,imageprocessing

 

前言

图像处理系统(ImageProcessingSystem),用计算机对图像进行分析,以达到所需效果的技术,又称影像处理。

图像处理一般指数字图像处理,数字图像是指用数字摄像机、扫描仪等设备经过采样和数字化得到的一个大的二维数组,该数组的元素称为像素,其值为一整数,称为灰度值。

医学图像处理系统从根本上改变了医务人员进行诊断的传统方式。

医学上的诊断很多时候需要借助对于医疗图像的判断来作为依据,比如CT、X光、B超等医学图像,但有的拍片没有达到标准要求的清晰度,往往造成重拍或诊断结果的不准确。

实践证明,充分地利用这些技术可以提高诊断的正确性和准确性,提高诊断效率,降低医疗成本,可以更加充分地发挥各种医疗设备的功能。

而且,随着数字化、智能化进程的深入,医学图像处理技术在医疗卫生领域将会有更加广阔的应用前景。

该课题拟使用VB与MATLAB调用的原理和方法,由于VB提供的计算和绘图函数有限,MATLAB创建图形用户界面的能力相对较弱,因此用VB编写界面,用MATLAB作为后台运行程序,使两者相得益彰。

通过这种方法,可使VB的可视化界面和MATLAB强大的计算及绘图功能得以实现,从而提高编程的效率,缩短软件开发的周期。

随着计算机技术的快速发展,一些图像归档和传输系统(PACS)越来越受到医疗单位的重视。

针对研究人员在研究医学图像处理算法中队获取和操作医学图像方便性的需求,以及医疗或相关单位对实现PACS系统对医学图像处理的需求,中国科学院软件研究所的王延华、洪飞、吴恩华设计了一套基于VTK库的医学图像处理子系统,该子系统能够很好地应用于各种医学图像处理中。

在医学图像消噪和图像增强的应用方面,南京航空航天大学自动化学院的陶玲,王惠南,颜廷勇采用二维小波变换原理,在图像分解的基础上,分析了二维小波变换在医学图像消噪和图像增强中的应用,同时给出应用实例。

结果表明,应用小波分析进行医学图像处理,能够有效地改善图像质量,有利于医生对病情的诊断和治疗。

由于各地区医疗卫生发展不平衡,为缩小地区间医疗水平的差距,希腊克里特大学计算机基础研究室的MariosZIKOS、EleniKALDOUDI、SteliosC.ORPHANOU建立了一套基于医学图像处理的远程医疗卫生保健信息学网络服务平台。

它可以使不同国籍不同服务网络的多个医学专家通过这个平台实现实时交互,完成对各种疾病的初步诊断,制定治疗方案等。

医学图像处理技术发展至今,各个学科的交叉渗透已是发展的必然趋势,其中还有很多亟待解决的问题。

有效地提高医学图像处理技术的水平与多学科理论的交叉融合,医务人员和理论技术人员之间的交流就显得越来越重要。

总之,医学图像作为提升现代医疗诊断水平的有力依据,使实施风险低、创伤性小的化疗、手术方案成为可能,必将在医药信息研究领域受到更多的关注。

本课题采用了VB与MATLAB的混合编程方法,探讨了VB与MATLAB的混合编程方法的几种接口技术[1]。

并针对ActiveX自动化接口技术,详细论述了如何实现VB和MATLAB的混合编程,并设计了一套医学图像处理系统软件,该软件的主要功能包括:

不同类型医学图像的读入与显示、图像的缩放与旋转、消除噪声、灰度变换、图像增强和边缘检测等。

ActiveX自动化(OLE自动化)协议是一种允许一个应用程序(控制端)去控制另一个应用程序(服务器端)的协议。

由于VB支持ActiveX自动化控制端协议,MATLAB支持ActiveX自动化服务器端协议,因此建立了一个VB应用程序和MATLAB之间的ActiveX自动化连接,那么在一个VB应用程序中就可以直接调用MATLAB的命令,利用MATLAB强大的图形处理工具箱函数,然后的将处理结果显示到VB界面上。

用VB编写美观友好的用户界面,用MATLAB作为后台运行程序处理各种操作,使两者相得益彰。

第1章系统简介

 

§1.1综述

MATLAB自1984年由美国MathWorks公司推向市场以来,已成为国际公认的最优秀的科技应用软件。

它具有强大的数值运算能力,先进的资料视觉化功能,开放及可延伸的架构,丰富的程序工具箱,在控制系统,图像处理,信号处理,神经网络等方面都有广泛的应用。

计算结果和编程可视化、语言简单,使其成为进行复杂的科学计算的标准软件。

但MATLAB的不足之处在于可视化界面功能过于简单,本身又是一个命令行式的交互系统,功能模块分散,要求使用者有较高的计算机基础,熟悉MATLAB编程和各种不同功能的工具箱函数。

Microsoft公司推出的VisualBasic(简称VB)是目前被广泛使用的,开发应用程序的可视化开发工具。

由于其简单易学且功能丰富,能够迅速有效的编制友好的可视化界面,同时避开了VC++编程过程中的过分繁琐和抽象的特点,因而一经推出就成为Windows平台上的主力编程语言之一。

然面VB语言的缺点在于运算速度慢,不适合进行大型的数值计算和图形处理,使其在一些专业领域方面不能得到充分的利用。

MATLAB也是支持ActiveX自动化技术的软件,能够被任何可作为ActiveX控件程序的MicrosoftPrograms所控制,利用这一特性,用户可以非常方便地在自已的程序中使用MATLAB,包括执行MATLAB命令,使用其功能丰富的工具箱(Toolbox),向MATLAB输入数据,获取结果(数据,图形)。

这样既能用VB编出漂亮的Windows程序,又能同时获得MATLAB在工程辅助设计、仿真等方面的功能。

本文主要介绍在VisualBasic6.0中如何调用出MATLAB程序。

 

§1.2课题背景

§1.2.1VisualBasic6.0背景

一、VisualBasic6.0概念

VisualBasic6.0是微软公司推出的主流编程语言之一,是一种新型的计算机编程语言。

它与传统的程序设计语言相比,最突出的特点是可视化、事件驱动和交互式。

VisualBasic经过微软公司长期不断的完善、第三方资源的大量加入以及广大爱好者的大力支持,VisualBasic6.0已经成长为功能强大,使用人数众多的主流编程软件。

它提供了向导自动生成代码,支持拖放技术、属性检查、实施与法检查等内置自动化技术,大大降低了编写代码的工作量,同时它还提供极丰富的控件,使得VisualBasic6.0成为最简捷、最有效开发windows应用程序工具。

二、VisualBasic具体包含以下内容:

对象:

面向对象编程(OOP),虽然VisualBasic并不是完全的面向对象编程,但也利用了对象编程技术。

对象简单地说就是大家经常看到的各种窗口、按钮、文本框甚至打印机等。

属性:

如同电视有黑白、彩色之分一样,作为对象的Windows中的窗口也是有大有小,文本框的位置不可能完全一样,菜单要显示出不同的功能,这些都是由对象的属性决定的。

属性一般决定了对象的位置、大小、显示等情况。

方法:

就是对象能够做的事,如打印机对象就有打印(Print)方法、窗口对象支持隐藏(Hide)方法、很多对象支持移动(Move)方法等。

事件:

就是对象对用户各种操作的反映情况。

如用户用鼠标按一下按钮,就会触发按钮的“按”(Click)事件。

控件:

控件就是VisualBasic提供的编程用的模块,与对象有直接的联系,如同积木的木块,使用这样的控件,就可以像拼图或堆积木一样“搭”、“拼”程序界面。

VisualBasic中使用控件,简化了Windows中的窗口、按钮等对象的编程设计。

每个控件都有各自的属性、事件及方法。

只需修改这些特征就可以随心所欲地编程了。

§1.2.2MATLAB语言背景

一、MATLAB语言概述

MATLAB是MathWorks公司开发的一种工程计算语言。

它是一个交互系统,在MATLAB中的基本数据元素是一个不要求维数的复矩阵。

用MATLAB可解决很多工程计算问题,特别是涉及到矩阵和矢量形式的问题。

MATLAB是一个高度集成的语言环境,在它的界面下可以编写程序、运行程序并可进行跟踪调试。

对于广大的工程技术人员和科学研究人员来说,MATLAB不失为一种很好的工具。

MATLAB也有局限性,一般它不能脱离MATLAB集成环境工作;而且编写界面的功能比较弱。

一般来说,MATLAB系统包括以下几个主要的组成部分:

1、开发环境

这是一些可以有助于用户方便使用MATLAB的功能和文件的工具集。

这些工具中有很多都有图形用户界面,如MATLAB工作台和命令窗口,命令历史记录,程序编辑器和调试器,帮助文件浏览器,工作环境、文件搜索路径的设置和管理工具等。

2、MATLAB数学函数库

这个函数库饮食大量的可以被调用的数值计算算法。

其中既有基础算法,比如求和(sum)、正弦函数(sin)和复数运算等,也有一些复杂算法,比如矩阵求逆、矩阵的特征值、贝塞尔函数以及快速傅里叶变换等。

3、MATLAB编程语言

这是一种高级矩阵/数组编程语言。

它包括程序流控制、函数、数据类型、输入/输出,以及支持面向对象编程技术等特点。

人们既可以利用它来快速开发一些简单的测试程序,也可以用它来开发一引起大型、复杂的实际应用程序。

4、图形技术

MATLAB有非常强大的以图形化显示矩阵和数组的能力,同时也能给这些图形增加注释并且打印这些图形。

MATLAB的图形技术既包括可以方便地产生二维、三维科技专业图形的高级绘图函数,也包括一些可以使用户灵活控制图形特点的低级绘图命令。

另外,用户还可以利用MATLAB的句柄图形技术创建图形用户界面。

二、MATLAB存在的一些问题

1、运行的速度慢。

运行速度是工程设计尤其是控制领域的命脉所在,由于MATLAB程序占用内存空间资源较大,所以其运行速度不可避免地要下降。

2、无法脱离MATLAB环境运行。

MATLAB6.x以上的版本对计算机的要求较高,且自身程序所占的空间较大,这就是得些配置较低的机器运行有困难。

§1.2.3ActiveX控件背景

一、ActiveX控件概念

ActiveX是一个Microsoft的术语,它指的是一组包括控件,DLL和ActiveX文档的组件,它通常是以动态链接库的形式存在,因此必须在一个叫容器的独立执行软件中运行。

这样的容器包括Authorware、Delphi、VisualBasic、VisualC++、InternetExplorer和Access等等。

ActiveX控件数据输入和函数功能执行都必须通过容器,因此ActiveX控件和容器都必须支持一些特定的接口协议。

根据Microsoft相应的规格标准,ActiveX控件应具备如下的性能机制。

属性和方法:

ActiveX控件必须提供属性的名称、方法的名称及参数,通过这项机制容器可以存取和改变ActiveX控件的属性参数。

事件:

ActiveX控件由这项机制通知容器在ActiveX控件中发生的事件,比如属性参数的改变,用户按下鼠标左键等。

二、VB的ActiveX控件

VB带了9个内置ActiveX控件:

ImageList、ToolBar、StatusBar、TabStrip、Slider、ProgressBar、TreeView、ListView、CoolBar。

[2]

1、RichTextBox控件:

RichTextBox控件是整个字处理的核心。

它提供了文本框的所有功能,能够将不同字体、字号和属性混在一起编辑,能够精确地控制文本边界。

在部件窗口选上MicrosoftRichTextBoxControl6.0就可把控件引入工具箱。

2、ImageList控件:

包含一组ImageList对象,要通过索引或键来引用,它作为放置其他图形控件的中央仓库。

在程序运行时,可通过Treeview1.imagelist=Imagelist1语句,将Treeview1控件与Imagelist1控件相关联,Treeview1控件就可以使用Imagelist1控件中的图片。

3、TooBar控件:

包含一组Button对象,用于生成与程序相关的工具条。

这三个控件包含在MicrosoftWindowsCommonControl6.0中,把它引入工具箱,并把这三个控件放入窗体。

§1.3本文主要研究工作

MATLAB是集数值分析、矩阵运算、信号处理和图形显示于一体的高性能数学软件,将其强大的计算功能与VB在图形用户界面开发方面的优势结合起来,实现应用系统的无缝集成,对于有效缩短开发周期、优化系统性能是十分有意义的,那将大大地提高编程者的工作效率。

本文介绍在VB6.0中利用ActiveX自动化技术使用和操作MATLAB的方法。

它以VB作为自动化控制器。

MATLAB作为自动化服务器,在使用VB进行Windows编程中,充分发挥MATLAB在图形图像处理等方面的优势。

第2章VisualBasic调用MATLAB程序的研究

 

§2.1VisualBasic调用MATLAB程序原理

§2.1.1VB调用MATLAB程序的几种实现方法

一、借助ActiveX部件[3]

Microsoft把所有以COM为基础的技术统称为ActiveX技术。

自动化是大多数ActiveX技术的基础,它可使解释性的宏语言(如VB)能够在不了解应用程序实现细节的情况下控制自动化对象。

MATLAB实现了ActiveX自动化服务支持,在VB下通过ActiveX自动化接口可将MATLAB作为VisualBasic语言的一个ActiveX部件调用。

在Windows注册表中,MATLAB的ActiveX对象名为“MATLAB.Application”。

在VB应用程序中创建ActiveX对象的具体步骤如下:

DimMATLABasObject

DimResultasString

SetMATLAB=CreateObject(“MATLAB.Application”)

在VB应用程序中创建了MATLAB的ActiveX对象以后就可以使用这个对象所包含的各种方法来实现对MATLAB的调用。

MATLAB.Application对象含有3个方法,它们是Execute,GetFullMatrix,PutFullMatrix,利用这些方法在VB应用程序内可实现任何MATLAB功能。

现简单介绍它们的用法:

1、BSTRExecute([in]BSTRCommand);执行Execute方法将调用MATLAB执行一条由Command字符串决定的MATLAB命令,同时返回一个输出字符串表示命令的执行情况,绘图命令生成的图形窗口将显示在屏幕上,为了在VB中获得MATLAB中产生的图像,可以使用以下两条命令先将MATLAB生成的图像以bitmap文件格式存人剪贴板中,然后再将图像从剪贴板中读出。

2、GetFullMatrix方法用来将MATLAB中的一个矩阵变量传送到VB程序中一个1维或2维数组中。

其中Name指定了MATLAB中的矩阵变量名,Workspace指定了该矩阵所在的MATLAB工作区,pr是指VB程序中的实部数组,pi是指VB程序中的虚部数组。

3、PutFullMatrix方法用来将VB程序中一个1维或2维数组传送到MATLAB中的一个矩阵变量中。

二、通过M文件

MATLAB产生的M文件不能直接在VB中调用,可利用mcc将M文件直接编译成.EXE文件,然后在VB中声明下面三个API函数[4],最后使用Shell命令即可实现VB与MATLAB的无缝集成。

1、用mcc生成独立的外部应用程序。

可使用如下两种命令:

mcc-pfile.m或mcc-mfile.m

2、在VB中声明调用的三个API函数:

DeclareFunctionWaitForSingleObjectLib“kernel32”(ByValhHandleAsLong,ByValdwMillisecondsAsLong)AsLong

DeclareFunctionCloseHandleLib“kernel32”(ByValhObjectAsLong)AsLong

DeclareFunctionOpenProcessLib“kernel32”(ByValdwDesiredAccessAsLong,ByValbInheritHandleAsLong,ByValdwProcessIdAsLong)AsLong

3、示例代码:

DimlTaskAsLong,lretAsLong,lHandleAsLong

’执行file.exe文件

lTask=Shell(“file.exe”,vbNormalFocus)

lHandle=OpenProcess(SYNCHRONIZE,False,lTask)

’等待进程执行完毕

lret=WaitForSingleObject(lHandle,INFINITE)

lret=CloseHandle(lHandle)

’file.exe文件执行完毕后,继续执行应用程序

通过以上编码,应用程序可以在执行过程中调用.EXE完成特定的计算或图形功能后,再继续其执行过程,从而实现MATLAB的调用。

三、采用MATLAB的COM组件[5]技术

MATLABCOMBuilder是MATLABCompiler的扩展,安装Mat1ab6.5时至少需要选择MATLAB、MATLABCompiler和MATLABCOMBuilder等选项。

在使用COMBuilder创建COM组件之前还需要对MATLABCompiler进行必要的配置,方法为:

在MATLAB命令窗口键入mbuild—setup,将出现选择编译器的提问,所列出的编译器包括计算机中已安装的各种C/C++编译器,例如MATLAB自带的c/C++编译器、BoflandC++Builder、MicrosoftVisualStudio6.0等,用户可根据需要自行选择其中一种并确认即可。

安装和配置完成之后,就可在MATLAB中创建COM组件,具体过程如下:

(1)编写M函数文件;

(2)在MATLAB指令窗口键入comtool,调出创建COM组件所需的可视化编辑环境MATLABComBuilder主窗口;

(3)选择File/Newaroject,这时会出现新工程设置对话框,键入组件名(ComponentName)和类名(ClassName)。

(4)单击“AddFile”按钮,添加已经在MATLAB环境下编译通过的M函数文件;

(5)单击“Build”按钮。

待编译完成、生成DLL文件后,选择菜单“Component/PackageComponent”,得到distrib文件夹,它包含表l所示的几个文件。

至此,用户编写的M函数文件已转换为COM组件对象。

§2.1.2MATLAB语言与ActiveX技术

VisualbasicActiveX部件是Microsoft公司提供的一种用于模块继承的新协议,它是工具箱的扩充部分。

在程序中加入ActiveX部件后,它将成为开发和运行环境的一部分,并为应用程序提供新的功能。

ActiveX部件保留了一些普通vb控件的属性、事件和方法。

ActiveX部件特有的方法和属性大大增强了程序设计者的能力和灵活性。

虽然MATLAB是一个安全独立的编程和数据运算的集成环境,使他可以方便的做很多工作。

但是,很多时候仅仅靠MATLAB环境还不能很好的完成任务。

MATLA

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2