基于Matlab与Excel的实验数据自动处理_第1页
基于Matlab与Excel的实验数据自动处理_第2页
基于Matlab与Excel的实验数据自动处理_第3页
基于Matlab与Excel的实验数据自动处理_第4页
基于Matlab与Excel的实验数据自动处理_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、 279基于 Matlab 与 Excel 的实验数据自动处理陈艳红 1,付海鸿 2,赵媛媛 1,孟 薇 2,叶德荣 1(1. 首都医科大学生物医学工程学院,北京 100069; 2. 中国医学科学院北京协和医院放射科,北京 100730摘 要:实验数据的有效处理是科研中经常面临的问题。该实验在对 DICOM 图像进行局部增强算法研究的测试阶段,采用 DDE 技术实 现了 Matlab 与 Excel 的数据交换,充分利用二者的优势,完成实验数据的自动处理。该法简单易行,对算法的研究与改进提供了有力的支 持,缩短了实验周期,提高了研究效率。 关键词:DICOM ; DDE ;数据自动处理Aut

2、omatic Processing of Experimental DataBased on Matlab and ExcelCHEN Yan-hong1, FU Hai-hong2, ZHAO Yuan-yuan1, MENG Wei2, YE De-rong1(1. Biomedical Engineering College, Capital University of Medical Sciences, Beijing 100069;2. Department of Radiology, Peking Union Medical College Hospital, Chinese Ac

3、ademy of Medical Sciences, Beijing 100730【 Abstract 】 The effective processing of experimental data is one of the common problems in scientific research. The paper presents an approach toautomatic data processing in the test of enhancement algorithm for DICOM-based image. The test system realizes da

4、ta exchange implement betweenMatlab and Excel by using DDE technique and makes full use of their advantages to realize the automatic data processing. The method is simpleand practical. It shortens the research period and gives powerful support to algorithm improvement. 【 Key words】 DICOM; DDE; autom

5、atic data processing计 算 机 工 程 Computer Engineering第 33卷 第 23期Vol.33 No.23 2007年 12月December 2007·开发研究与设计技术 ·文章编号:1000 3428(200723 0279 02文献标识码:A中图分类号:TN911.73对科学实验数据进行有效处理, 获取有价值的实验结果,并在此基础上,改进研究方法有着广泛应用和重要意义。在 医学图像处理领域, 算法测试的过程中将产生大量实验数据, 如何将实验数据有效地记录,进行友好显示和结果分析,是 个经常面临的问题。该项目对取自北京协和医院放射

6、科的磁共振 DICOM 图 像数据文件,进行局部增强算法的测试。算法采用数学形态 学方法, 应用 Matlab 进行程序设计。 Matlab 具有强大的工程 计算与图像处理功能,程序设计起点高,贴近用户,因此, 在算法研究上具有很大优势;而且, Matlab 提供专门的函数 读取 DICOM 文件,克服了 DICOM 文件信息获取的困难。在算法测试过程中,需对图像相关参数及测试结果进行 记录。 由于数据量大, 参测人员的计算机应用水平参差不齐, 且数据记录要利于管理和日后的统计分析,因此选择一个合 适的数据管理工具非常重要。电子表格 Excel 具备基本的数 据库管理功能,操作简便,界面友好,

7、提供常用的数学函数, 非常符合实验要求。因此,该研究采用 Excel 进行记录。然 而, 在测试的过程中, 面对由 Matlab 程序获取的大量 DICOM 图像参数及测试结果,需花费很多时间在 Excel 中进行人工 记录。如果在 Matlab 程序中加入自动处理实验数据的功能, 则可减轻测试人员的工作量,缩短测试时间,还可提高记录 的准确性和规范性。因此,实验最终采用 Matlab 与 Excel 软 件结合来完成数据记录和自动处理的功能。1 方法该实验的主要工作包括:(1在 Matlab 中,依据测试的 DICOM 文件名规律,将所 有的 DICOM 图像相关参数一次性按指定位置批量自动

8、写入 Excel , 例如各图像文件的 Filename,FileModDate,Manufacturer 等。这样,研究人员就从逐个图像进行记录的繁琐工作中解 放出来。(2在 Matlab 中, 将本研究算法与同类算法对各图像局部 增强后的对比测试结果,对应上面 (1中的 DICOM 图像文件 名逐条写入 Excel ,例如运行时间、是否失真、及具体失真现 象等。用统一规范的语言描述实验记录,使观察结果规范易 统计。(3根据实验要求,利用 Excel 提供的工具对写入的数据 进行分析、统计。这样, Matlab 和 Excel 的数据交换就成为问题的关键。2 动态数据交换 DDE要实现 Ma

9、tlab 与 Excel 的数据交换,就要建立二者的连 接。在建立 Matlab 和 Excel 连接的过程中,如果用 fprintf 函 数,则很难区分 Excel 中的行和列。如果采用 Excel Link宏 这个工具, Excel 和 Matlab 之间建立连接后, Excel 成了数据 处理和应用开发的前台程序, Matlab 成为支持 Excel Link宏 的后台软件,所有用到 Excel Link宏的开发都只能在 Excel 的窗口下操作, 关于数据的所有情况都要在 Matlab Command Window 的窗口下察看,增加了操作的复杂性。总之,以上基金项目:北京市自然科学基

10、金资助项目 (3053016作者简介:陈艳红 (1977- ,女,讲师、硕士,主研方向:医学图 像处理,管理信息系统;付海鸿,高级工程师;赵媛媛,讲师、硕 士;孟 薇,工程师;叶德荣,副教授各种连接方式虽然都能够在 Excel 中某个单元格写入信息, 但是离期望还有很大差距, 笔者期望在 Matlab 中能够自动地 向 Excel 批量写入或逐行逐列写入信息,这些方法完成起来 均存在相应的困难。通过多次尝试,最终采用动态数据交换 (dynamic data exchange, DDE技术来完成 Matlab 和 Excel 之 间的数据交换。DDE 是基于 Windows 的消息机制, 2个

11、Windows 应用 程序通过相互之间传递消息进行 “对话” , 这 2个程序分别被 称为“服务器”和“客户” 。同一个 Windows 应用程序既可 以是一个程序的客户,也可以是另一个程序的服务器,这需 要 2种不同的对话。 DDE 对话是由客户程序发动的。客户程 序将一条称为 WM_DDE_INITIATE的消息发给当前运行的 所有 Windows 程序, 这条信息不但指明了所需要的数据类型, 而且包括它所需要的服务器名和主题。其中服务器名标识了 客户程序希望建立对话的对象,例如 Microsoft Excel的服务 器名为 Excel ,而 Matlab 的服务器名为 Matlab 。而

12、上述提到 的 Excel link宏实际上将 Matlab 作为 DDE 服务器程序来进行 访问,但不能完成本实验的要求,最终实验采用将 Matlab 作 为 DDE 客户端程序。 表 1列出了 Matlab 中的 DDE 客户端模 块包含的一系列函数 1。表 1 DDE客户端函数函数名 功能ddeadv 在 Matlab 同 DDE 服务器应用程序之间建立一个顾问连接 ddeexec 向 DDE 服务器应用程序发送用于执行的命令ddeinit 初始化 Matlab 同另一个应用程序间的 DDE 对话ddepoke 从 Matlab 向 DDE 服务器应用程序发送数据ddereq 从 DDE

13、服务器应用程序请求数据ddeterm 终止 DDE 服务器应用程序与 Matlab 间的 DDE 对话ddeunadv 释放 Matlab 同 DDE 服务器应用程序之间建立的顾问连接 3 关键技术实验中采用 DDE 技术实现 Matlab 与 Excel 数据交换, 其关键技术如下:(1Matlab中 DICOM 图像数据文件的读写。 Matlab 中 DICOM 图像数据文件的读写与常用的 JPEG, TIF, BMP等图 像 文 件 的 读 写 稍 有 区 别 , Matlab 用 函 数 dicominfo(获 取 DICOM 图像参数, 函数 dicomread(读入 DICOM 文

14、件, 函数 dicomwrite(输出 DICOM 文件。(2在 Excel 中 按 列 写 入 图 像 参 数 标 题 , 并 逐 行 写 入 DICOM 图像相关参数记录。 首先在 Matlab 中用函数 ddeinit(初始化 Matlab 与 Excel 之间的 DDE 对话,然后用函数 ddepoke(向 Excel 中写入信息 23。部分程序代码如下:%建立 Matlab 与 Excel 的连接channel=ddeinit('Excel','result.xls'%在 Excel 中的指定位置写入图像参数标题range='r1c3:r1c3

15、'rc = ddepoke(channel,range,'FileModDate '%在 Excel 中逐行写入 DICOM 图像相关参数记录range='r' num2str(i 'c' num2str(k+14 ':' 'r' num2str(i 'c' num2str(k+14;rc = ddepoke(channel,range,answer1(k;(3在 Matlab 中批量存放 DICOM 图像参数。在 Matlab 中用函数 dicominfo(获得的 DICOM 图像参数有

16、2种数据类 型:数值型和字符型。 对于批量的字符型参数, 用函数 char(将 其 创 建 于 同 一 个 字 符 数 组 中 , 例 如 图 像 参 数 中 的 FileModDate 。对于批量的数值型参数,将其存放于同一矩阵 中,例如图像参数中的 RepetitionTime 。(4向 Excel 中批量写入 DICOM 图像参数。利用函数 ddepoke(能够将存放在矩阵中的图像参数写入 Excel ;但是 对 于 存 放 在 字 符 数 组 中 的 图 像 参 数 , 如 果 直 接 利 用 函 数 ddepoke(只能逐个字符读取,不能完整获得一个字符串并将 其写入 Excel ,

17、因此,先利用函数 cellstr(将字符数组转换成 元胞数组后使用。参数的批量写入主要通过程序的循环结构 控制写入位置来实现。部分程序代码如下:For i=2:n%将矩阵写入 ExcelrangeRT=r num2str(i c8 : r num2str(i c8;rc = ddepoke(channel,rangeRT,RT1(i;%将元胞数组写入 ExcelrangeFMD=r num2str(i c3 : r num2str(i c3;rc = ddepoke(channel,rangeFMD,FMD1i;End(5在 Excel 文件中查找信息。只有从 Excel 文件中能够 正确读取

18、信息,才能够在 Excel 文件中查找信息。利用函数 ddereq(能够从 Excel 中正确读取矩阵信息,却无法正确读取 已经存入的字符串参数信息,因此,采用函数 xlsread(从 Excel 中读取信息 4。函数 xlsread 的语法格式为:N , T = xlsread('filename',其中矩阵 N 中返回的是数值型数据,元 胞数组 T 中返回的是字符串数据。4 结束语DDE 技术是基于 Windows 的进程通信机制之一, 它的功 能没有 ActiveX 那样强大,不过相对于 ActiveX 来说,它比 较容易实现。 Matlab 在工程计算领域有着强大的优势, Excel 能够方便地实现对大量实验数据的记录与管理,以及进行基 本的统计分析。实验采用 DDE 技术实现了 Matlab 与 Excel 的数据交换,对采用 DDE 技术遇到的诸多关键问

温馨提示

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

最新文档

评论

0/150

提交评论