医学图形图像处理识别技术与医学信息分析.ppt

上传人:夺命阿水 文档编号:831794 上传时间:2023-12-14 格式:PPT 页数:48 大小:538KB
返回 下载 相关 举报
医学图形图像处理识别技术与医学信息分析.ppt_第1页
第1页 / 共48页
医学图形图像处理识别技术与医学信息分析.ppt_第2页
第2页 / 共48页
医学图形图像处理识别技术与医学信息分析.ppt_第3页
第3页 / 共48页
医学图形图像处理识别技术与医学信息分析.ppt_第4页
第4页 / 共48页
医学图形图像处理识别技术与医学信息分析.ppt_第5页
第5页 / 共48页
点击查看更多>>
资源描述

《医学图形图像处理识别技术与医学信息分析.ppt》由会员分享,可在线阅读,更多相关《医学图形图像处理识别技术与医学信息分析.ppt(48页珍藏版)》请在课桌文档上搜索。

1、医学图形图像处理识别技术与医学信息分析,目录内容,序 医学信息学简述第一讲 医学信号处理概述第二讲 医学图形信号的采集、存储与处理第三讲 Mathlab 与图形信号的处理识别第四讲 医学图像信号的采集、存储格式、处理方法第五讲 Mathlab、Vtk、Mtk与医学图像的处理第六讲 医学信息挖掘第七讲 用于教学的医学图片处理技术,作业,第三讲 Mathlab 与图形信号的处理识别,MATLAB软件的使用介绍图形信号的处理与识别程序介绍 临床电生理数据分析实验模拟软件介绍 实验,一、MATLAB软件的使用介绍,1.MATLAB的简介(1)MATLAB高级交互式软件包(2)MATLAB典型应用 数学

2、计算算法推导建模和仿真模拟数据分析和结果的可视化工程图形绘制应用程序开发(包括用户图形界面的建立)(3)MATLAB产生的历史背景调用EISPACK和LINPACK的FORTRAN子程序库EISPACK和LINPACK的接口程序MATLAB 发展成为适合多学科,多种工作平台的功能强大的大型软件。,美国MathWorks公司设计的“科学和工程计算的高级交互式软件包”,Cleve Moler、New Mexico、John Little,MATLAB软件_续1,(3)MATLAB的语言特点语言简洁紧凑,使用方便灵活,库函数极其丰富。运算符丰富。MATLAB既具有结构化的控制语句,又有面向对象编程的

3、特性。程序限制不严格,程序设计自由度大。程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。MATLAB的图形功能强大。MATLAB的缺点是程序的执行速度较慢。功能强大的工具箱。源程序的开放性。,如:解方程组Ax=b,x=Ab,MATLAB软件_续2,2.MATLA的安装进入MATLAB软件安装程序目录,然后单击“Setup”程序,在安装程序的引导下,逐步完成以下操作:(1)选择“Install”安装或”Update license”升级许可证,单击Next;然后输入姓名、公司与序列号,单击Next。(2)选择接受许可证协议,单击“Yes”单击Next,然后选择“Typ

4、ical”典型安装,单击Next。(3)选择或输入安装目的路径,单击Next,后单击“Yes”(4)单击Install,系统开始安装。,MATLAB软件_续3,(5)在提示插入第2张CD时,插入CD2,然后单击OK,接着在文件扩展名警示对话框内单击Yes to all。(6)单击Next,接着单击Finish。(7)如果在单击Finish按钮之前,选择了“Start”选项,则此时进入MATLAB工作环境。,MATLAB软件_续4,3.MATLAB启动与退出启动MATLAB,进入MATLAB工作环境,启动MATLAB,MATLAB软件_续5,结束MATLAB,退出MATLAB工作环境键入exit

5、 键入quit 直接关闭MATLAB的命令视窗,退出MATLAB,MATLAB软件_续6-1,4.MATLAB变量与基本输入输出变量命名的规则:第一个字母必须是英文字母;字母间不可留空格;最多只能有19个字母,MATLAB会忽略多余字母。变量定义与输入输出向量与标量矩阵行和列组成的数据表行向量矩阵只有一行时,称为行向量。列向量矩阵只有一列时,称为列向量。标量矩阵只有1个元素时,称为标量。,MATLAB软件_续6-2,变量定义var=expt;expt可以是数字、变量、操作符和函数等组成。例如:X=7A=1 2 3;4 5 6;7 8 9B=11 12 13 14C=21;22;23;24D=X

6、*B注意:用方括号“”确定的范围内逐行给定元素,相同行元素由空格“”或逗号“,”分隔,不同行数据由分号“;”或回车键分隔。语句结尾没有分号的命令在屏幕显示结果;有分号的命令只执行而不显示。,MATLAB软件_续7,5.MATLAB常用命令(1)MATLAB常用的基本数学函数abs(x):纯量的绝对值或向量的长度sqrt(x):开平方round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 sign(x):符号函数(Signum function)exp(x):自然指数 pow2(x):2的指数log(x):以e为底的对数log10(x):以10为底的对数,举例:4x2+

7、58x-89=0(a=4,b=58,c=89),MATLAB软件_续8,(2)适用于向量的常用函数min(x):向量x的元素的最小值 max(x):向量x的元素的最大值mean(x):向量x的元素的平均值 median(x):向量x的元素的中位数std(x):向量x的元素的标准差diff(x):向量x的相邻元素的差 sort(x):对向量x的元素进行排序(Sorting)length(x):向量x的元素个数sum(x):向量x的元素总和,举例:对130名正常成年男子红细胞数(RBC,万/mm)的数据进行描述性统计。(x=zeros(130,1)平均、中位数、众数、标准差,MATLAB软件_续9

8、,适用于向量的常用函数_续prod(x):向量x的元素总乘积 cumsum(x):向量x的累计元素总和 cumprod(x):向量x的累计元素总乘积 dot(x,y):向量x和y的内积 cross(x,y):向量x和y的外积,MATLAB软件_续10,一些常用的操作函数format语句是控制输出的显示格式,句法如下:format 设置默认显示格式5位的定点数format type 设置按指定的type格式输出显示。例如:format rat Ratio of small integersformat(type)与上面语句一样,但以函数形式出现disp(x)显示矩阵函数%注释语句zeros、on

9、es 预先定义矩阵的大小。例如:h=zeros(6);%生成66的0矩阵,MATLAB软件_续11,(3)重复命令1)for循环(for-loop),其基本形式为:for 变量=矩阵;运算式;end变量值会被依次设定为矩阵的每一行,来执行for和end之间的运算式。因此,若中断情况,运算式执行的次数等于矩阵的行数。其中“;”是终结内语句的可抑制的重复显示。举例:产生一个长度为6的调和数列 x=zeros(1,6);%x是一个16的矩阵 for i=1:6,x(i)=1/i;end,MATLAB软件_续12,2)while循环,其基本形式为:while 条件式;运算式;End实现功能:只要条件成

10、立,就会一再执行运算式。举例:用while循环产生一个长度为6的调和数列 x=zeros(1,6);%x是一个16的零矩阵 i=1;while i=6,x(i)=1/i;i=i+1;end format short,MATLAB软件_续13,(4)逻辑命令 if,.,end,其基本形式为:if 条件式;运算式;end实现功能:条件成立,执行运算式。举例:产生一个随机数 if rand(1,1)0.5disp(Given random number is greater than 0.5.);elsedisp(Given random number is less than 0.5.);end,

11、MATLAB软件_续14,(5)将多个命令写入一个M文件 若要一次执行大量的MATLAB命令,可将这些命令存于一个文件类型为m的文件中,并在MATLAB提示号下键入此文件名即可执行。包含MATLAB命令的文件以m为扩展名,通称M文件(M-files)。举例:名为test.m的M文件有以下内容:%This is my first test M-file.%Roger Jang,March 3,1997 fprintf(Start of test.m!n);for i=1:3,fprintf(i=%d-i3=%dn,i,i3);end fprintf(End of test.m!n);,MATLA

12、B软件_续15,建立test.m的M文件进入MATLAB编辑器FileNewM-File在编辑器内输入以下内容%This is my first test M-file.%Roger Jang,March 3,1997 fprintf(Start of test.m!n);for i=1:3,fprintf(i=%d-i3=%dn,i,i3);end fprintf(End of test.m!n);保存文件到指定或默认的目录下FileSave输入文件名“test.m”,MATLAB软件_续16,执行文件“test.m”进入文件所在目录或查看文件CD dir执行test.m testStart

13、 of test.m!i=1-i3=1i=2-i3=8i=3-i3=27End of test.m!,MATLAB软件_续17,注意:M档案可分为命令集(Scripts)及函数(Functions)。前述的test.m即为命令集,其效用和将命令逐一输入完全一样,因此在命令集直接使用工作空间的变量,则在命令集中设定的变量,可在工作空间中看得到。函数则需要用到输入参数(Input arguments)和输出参数(Output arguments)来传递资讯。例如:计算一个正整数的阶乘(Factorial),可以写一个如下的MATLAB函数并将之存档于fact.m:function output=f

14、act(n)%FACT Calculate factorial of a given positive integer.output=1;for i=1:n,output=output*i;end其中fact是函数名,n是输入参数,output是输出参数,而i则是此函数用到的暂时变量。,MATLAB软件_续18,要使用此函数,直接键入函数名及适当输入参数值即可。y=fact(5)y=120 注意:在执行fact之前,你必须先进入fact.m所在的目录。在执行fact(5)时,MATLAB会进入一个下层的暂时工作空间(Temperary workspace),将变量n的值设定为5,然后进行各项函

15、数的内部运算,所有内部运算所产生的变量都存在此暂时工作空间中。运算完毕后,MATLAB会将最后输出参数output的值设定给上层的变量y,并将清除此暂时工作空间及其所含的所有变量。,MATLAB软件_续19,(6)MATLAB的文件、目录等操作指令显示当前目录 pwd 显示当前工作目录s=pwd 将当前工作目录赋予变量s 改变工作目录 cd 显示当前工作目录w=cd 将当前工作目录赋予wcd(directory)设置当前工作目录为directory指定的目录cd(.)将当前工作目录改为它的上级目录cd directory or cd.与上面两条指令等同,MATLAB软件_续20,MATLAB的

16、文件、目录等操作指令 _续显示目录列表 dir 列示当前工作目录的文件 dir name 列示指定的文件 files=dir(directory)将指定目录的文件列表信息返回到files中。例如:afiles=dir(d:/work/*.*)afiles(3).name afiles(3).date显示文件内容 type(filename)type filenamefilename是要被显示的文件的路径和名字,MATLAB软件_续21,MATLAB的文件、目录等操作指令 _续浏览或改变MATLAB 目录的搜寻路径 path 显示当前MATLAB 搜索路径。初始搜索路径由toolbox/loca

17、l/pathdef.m文件定义的。path(newpath)将搜索路径改变为一个新路径,这里新路径是一个目录的字符串数组。path(path,newpath)将一个新路径增加到当前的搜索路径后。path(newpath,path)将一个新路径加到当前的搜索路径前。p=path(.)将指定的路径返回到一个字符串变量。,MATLAB软件_续22,浏览或改变MATLAB 目录的搜寻路径 _续举例:path MATLABPATH d:matlab5toolboxmatlabgeneral d:matlab5toolboxmatlabops d:matlab5toolboxsimulinkdee d:m

18、atlab5toolboxlocal 查询某一命令是在搜寻路径的何处,用which命令:which test c:datamlbooktest.m 将c:datamlbook加入MATLAB的搜寻路径,用pathpath(path,c:datamlbook),MATLAB软件_续23,(7)资料的储存与载入 _续1)将计算所得的储存倒文件的命令save save 将工作空间的所有变量储存到名为matlab.mat的二进制文件。save filename 将工作空间的所有变量储存到名为filename.mat的二进制文件。save filename x y z 将变量x、y、z储存到名为file

19、name.mat的二进制文件。save filename x ascii 将变量x以八位数存到名为filename的ASCII文件。save filename x-ascii double 将变量x以十六位数存到名为filename的ASCII文件。注意:命令后不加任何选项时,save会将变量以二进制(Binary)的方式储存至扩展名为mat的文件;另一个选项是-tab,可将同一列相邻的数目以定位键(tab)隔开。,MATLAB软件_续24,将计算所得的储存倒文件的命令save _续举例:who 列出工作空间的变量Your variables are:B h j y ans i x z sav

20、e test B y 将变数B与y储存至test.mat dir 列出现在目录中的文件.2plotxy.doc fact.m simulink.doc test.m$1basic.doc.3plotxyz.doc first.doc temp.doc test.mat 1basic.doc book.dot go.m template.doc testfile.dat delete test.mat 删除test.mat,MATLAB软件_续25,2)将文件载入储存得变量命令loadload filename 寻找名称为filename.mat的文件,并以二进制格式载入。若找不到filenam

21、e.mat,则寻找名称为filename的文件,并以ASCII格式载入。load filename ascii 寻找名称为filename的文件,并以ASCII格式载入。若以ASCII格式载入,则变量名称即为文件名称(但不包含扩展名)。若以二进制载入,则可保留原有的变量名称。举例:clear all;%清除工作空间中的变数 x=1:10;save testfile.dat x-ascii%将x以ASCII格式存至testfile.dat文件 load testfile.dat%载入testfile.dat who%列出工作空间中的变量 Your variables are:testfile x

22、 注意:上述过程由于是以ASCII格式储存与载入,所以产生了一个与文件名称相同的变量testfile,此变量的值和原变量x完全相同。,MATLAB软件_续26,(8)基本xy平面绘图命令 1)length 获得一组数的个数或一个向量的长度x=ones(1,8);n=length(x)2)linspace 产生线性间隔向量y=linspace(a,b)在a,b之间产生一组100点的线性间隔的行向量。generates a row vector y of 100 points linearly spaced between and including a and b.y=linspace(a,b,

23、n)在a,b之间产生一组n点的线性间隔的行向量。generates a row vector y of n points linearly spaced between and including a and b.举例:t=linspace(0.005,0.005*length(y1),length(y1);,MATLAB软件_续27,基本xy平面绘图命令_续3)plot 绘制一维曲线的基本函数,使用此函数之前,需先定义曲线上每一点的x及y座标。举例:画出一条正弦曲线 close all;x=linspace(0,2*pi,100);%1产生00个点的x座标 y=sin(x);%生成对应的y座

24、标 plot(x,y);关于MATLAB基本绘图函数的应用说明:绘图刻度plot:x轴和y轴均为线性刻度(Linear scale)loglog:x轴和y轴均为对数刻度(Logarithmic scale)semilogx:x轴为对数刻度,y轴为线性刻度semilogy:x轴为线性刻度,y轴为对数刻度,MATLAB软件_续28,关于MATLAB基本绘图函数的应用说明 _续画出多条曲线,只需将座标对依次放入plot函数 plot(x,sin(x),x,cos(x);若要改变颜色,在座标对後面加上相关字串 plot(x,sin(x),c,x,cos(x),g);若要同时改变颜色及图线型态(Line

25、 style),也是在座标对後面加上相关字串 plot(x,sin(x),co,x,cos(x),g*);,MATLAB软件_续29,关于MATLAB基本绘图函数的应用说明 _续plot绘图函数的叁数说明 在用plot(a,b,s)绘图时,可以使用各类线型、图符、颜色,这里s是由下表中的任一元素或3列中所有元素组合的字符串。,MATLAB软件_续30,4)将一图形窗口划分为多个显示区,使之同时画出数个小图形於同一个视窗之中。subplot(m,n,p)实现功能:将图形窗口划分为mn矩阵的显示区,同时激活第p个显示区。举例:subplot(2,2,1);plot(x,sin(x);subplot

26、(2,2,2);plot(x,cos(x);subplot(2,2,3);plot(x,sinh(x);subplot(2,2,4);plot(x,cosh(x);,MATLAB软件_续31,5)其他各种二维绘图函数bar 长条图 errorbar 图形加上误差范围 fplot 较精确的函数图形 polar 极座标图 hist 累计图 rose 极座标累计图 stairs 阶梯图 stem针状图 fill实心图,二、图形信号的处理程序介绍,1.峰值程序for i=1:length(u)if u(i)=max(u)m=i;break endendp_h=h(m),处理程序_续1,求起点和终点的程

27、序%judge_startfor i=5:(length(y2_7s)-5)if y2_7s(i-4)0&y2_7s(i+1)0&y2_7s(i+2)0&y2_7s(i+3)0&y2_7s(i+4)0y2_7s(i+5)0 k=i break endend%judge_endfor i=1:(length(y2_7s)-6)if y2_7s(i)0&y2_7s(i+1)=0&y2_7s(i+2)=0&y2_7s(i+3)=0&y2_7s(i+4)=0&y2_7s(i+5)=0&y2_7s(i+6)=0 j=i break endend,处理程序_续2,2.时距程序 judge_start ju

28、dge_end u=y2_7s(k:j);%宫缩单波数据 h=y1(k:j);%对应单波宫缩的心率数据t0=(length(u)-1)*0.005;,处理程序_续3,3.面积程序t=linspace(0.005,0.005*length(h),length(h);subplot(2,1,1),plot(t,h);%心率-时间图;subplot(2,1,2),plot(t,u);%宫缩-时间图;area=0.005*sum(u)*15./1024%计算面积,三、临床电生理数据分析实验模拟软件介绍,1.实验模拟软件简介临床电生理数据分析实验模拟软件Med.exe是用于对临床功能类的信号进行初步分析

29、的软件,该软件是用Visual Basic程序语言来编写的。目前具有如下功能:(1)可以浏览医学仪器采集的电生理信号数据,人工干预信号截取,并以二进制格式和文本格式来保存截取的信号数据;(2)可以利用面板按扭工具,对胎心率信号、孕妇的宫缩信号进行人工干预的信号处理和分析,包括:奇异点处理,平均心率、瞬时心率、宫缩峰值、宫缩时距和宫缩面积的计算;(3)可以进行信号数字平滑滤波、基线调整、自动计算部分时域参数。2.软件的使用说明,实验模拟软件介绍_续1,(1)原始采样数据回显“临床信号截取”“选取数据源位置”确定位置后,单击OK在输入病历号的输入框内输入:A0012在选择文件框内选择项目:R001

30、2A_5单击开始单击回放(2)进行人工干预操作在需要截波或人工分析时,单击冻结截取波形,计算时距、面积和平均心率,或去除奇异项时,要用鼠标在视图浏览区内拖出选区,然后分别单击相应的操作按钮注意:如要取消选区,可以单击浏览视图的任意位置即可。计算峰值或瞬时心率时,按着Alt键,然后单击曲线的选取点,接着单击相应的操作按钮(3)结束软件使用单击窗口的关闭按钮。,四、实验,1均值计算2.时距计算3.峰值计算4.面积计算5.作图,平均值:,平均幅值:,实验_续1,1.MatLab实验内容的介绍(1)利用matlab计算宫缩的峰值、宫缩时的平均心率,以及宫缩峰值对应的顺时心率、计算宫缩波的面积、宫缩持续

31、时间实验步骤启动matlab;增加路径:path(path,D:matlab_dat)导入数据clear all;%清除变量心率:y1=load(r0012A0h.txt);宫缩:y2=load(r0012a0u.txt);曲线作图建立XY坐标轴与绘图时间数组点t=linspace(0.005,0.005*length(y1),length(y1);绘制心率与宫缩图subplot(2,1,1),plot(t,y1);%心率-时间图;subplot(2,1,2),plot(t,y2);%宫缩-时间图;,实验_续2,宫缩局部加权平滑滤波(七点平滑)n=length(y2)for i=4:n-3 y

32、2_7s(i)=(-2*y2(i-3)+3*y2(i-2)+6*y2(i-1)+7*y2(i)-2*y2(i+3)+3*y2(i+2)+6*y2(i+1)/21;end;y2_7s(1 2 3 n-2 n-1 n)=y2(1)y2(2)y2(3)y2(n-2)y2(n-1)y2(n)再次绘制心率与宫缩图,观察曲线变化的情况subplot(2,1,1),plot(t,y1);%心率-时间图;subplot(2,1,2),plot(t,y2_7s);%宫缩-时间图;判断宫缩波的起始、终止点 judge_start judge_end%运行文件 judge_start.m j 和judge_end.

33、m k取宫缩单波数据以及对应单波宫缩的心率数据 u=y2_7s(k:j);h=y1(k:j);,实验_续3,计算宫缩峰值:Pu=max(u)建立时间坐标t=linspace(0.005,0.005*length(h),length(h);subplot(2,1,1),plot(t,h);%心率-时间图;subplot(2,1,2),plot(t,u);%宫缩-时间图;计算宫缩面积 area=0.005*sum(u)*15./1024%计算对应的平均心率mean_p=sum(h)./length(h)判断宫缩最强时对应的瞬时心率p_h%宫缩最强时的瞬时心率用p_h表示,运行文件p_h.m计算持续

34、时间t0=(length(u)-1)*0.005;,实验_续4,(2)单击MATLAB程序窗口左边窗格的Workspace(工作空间)卡片,浏览该卡片窗格内的所有变量,并执行以下命令:clear all然后再浏览该卡片窗格内的所有变量,你有何结论?(3)建立M-文件,输入以下内容,保存为“original_dat.m”文件,并执行该M-文件。观察其与前面单步执行的结果是否一致,给出你的结论。path(path,D:matlab_dat)y1=load(r0012A0h.txt);y2=load(r0012a0u.txt);t=linspace(0.005,0.005*length(y1),le

35、ngth(y1);subplot(2,1,1),plot(t,y1);subplot(2,1,2),plot(t,y2);,实验_续5,2.Med.exe实验内容的简要介绍(1)启动临床电生理数据分析实验模拟软件,(2)在输入病历号的输入框内输入:A0012(3)在选择文件框内选择项目:R0012A_5(4)对回放的第一个宫缩波曲线对应的心率曲线去除奇异点,然后通过菜单命令“保存截取波形数据”将数据保存为txt类型文件。(记下你在保存文件提示输入的序号n,保存后你的文件的名字应为R0012Anh.txt 和R0012Anh.txt。)(5)再对上述选定区域的数据求取平均心率、时距、面积,然后人工选取峰值点,计算峰值和瞬时心率。(6)尝试进入MATLAB,对上面截取的数据文件重复上面实验一的操作。比较其结果。,

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

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号