《医学图形图像处理识别技术与医学信息分析.pptx》由会员分享,可在线阅读,更多相关《医学图形图像处理识别技术与医学信息分析.pptx(48页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、目录内容目录内容序序序序 医学信息学简述医学信息学简述医学信息学简述医学信息学简述第一讲第一讲第一讲第一讲 医学信号处理概述医学信号处理概述医学信号处理概述医学信号处理概述第二讲第二讲第二讲第二讲 医学图形信号的采集、存储与处理医学图形信号的采集、存储与处理医学图形信号的采集、存储与处理医学图形信号的采集、存储与处理第三讲第三讲第三讲第三讲 Mathlab Mathlab 与图形信号的处理识别与图形信号的处理识别与图形信号的处理识别与图形信号的处理识别第四讲第四讲第四讲第四讲 医学图像信号的采集、存储格式、处理方法医学图像信号的采集、存储格式、处理方法医学图像信号的采集、存储格式、处理方法医学
2、图像信号的采集、存储格式、处理方法第五讲第五讲第五讲第五讲 Mathlab Mathlab、VtkVtk、MtkMtk与医学图像的处理与医学图像的处理与医学图像的处理与医学图像的处理第六讲第六讲第六讲第六讲 医学信息挖掘医学信息挖掘医学信息挖掘医学信息挖掘第七讲第七讲第七讲第七讲 用于教学的医学图片处理技术用于教学的医学图片处理技术用于教学的医学图片处理技术用于教学的医学图片处理技术作业作业第1页/共48页第三讲 Mathlab 与图形信号的处理识别MATLAB软件的使用介绍图形信号的处理与识别程序介绍临床电生理数据分析实验模拟软件介绍实验第2页/共48页一、MATLAB软件的使用介绍1.MA
3、TLAB的简介(1)MATLAB高级交互式软件包(2)MATLAB典型应用数学计算算法推导建模和仿真模拟数据分析和结果的可视化工程图形绘制应用程序开发(包括用户图形界面的建立)(3)MATLAB产生的历史背景调用EISPACK和LINPACK的FORTRAN子程序库EISPACK和LINPACK的接口程序MATLAB发展成为适合多学科,多种工作平台的功能强大的大型软件。美国MathWorks公司设计的“科学和工程计算的高级交互式软件包”Cleve Moler、New Mexico、John Little第3页/共48页MATLAB软件_续1(3)MATLAB的语言特点语言简洁紧凑,使用方便灵活
4、,库函数极其丰富。运算符丰富。MATLAB既具有结构化的控制语句,又有面向对象编程的特性。程序限制不严格,程序设计自由度大。程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。MATLAB的图形功能强大。MATLAB的缺点是程序的执行速度较慢。功能强大的工具箱。源程序的开放性。如:解方程组Ax=bx=Ab第4页/共48页MATLAB软件_续22.MATLA的安装进入MATLAB软件安装程序目录,然后单击“Setup”程序,在安装程序的引导下,逐步完成以下操作:(1)选择“Install”安装或”Updatelicense”升级许可证,单击Next;然后输入姓名、公司与序
5、列号,单击Next。(2)选择接受许可证协议,单击“Yes”单击Next,然后选择“Typical”典型安装,单击Next。(3)选择或输入安装目的路径,单击Next,后单击“Yes”(4)单击Install,系统开始安装。第5页/共48页MATLAB软件_续3(5)在提示插入第2张CD时,插入CD2,然后单击OK,接着在文件扩展名警示对话框内单击Yestoall。(6)单击Next,接着单击Finish。(7)如果在单击Finish按钮之前,选择了“Start”选项,则此时进入MATLAB工作环境。第6页/共48页MATLAB软件_续43.MATLAB启动与退出启动MATLAB,进入MATL
6、AB工作环境启动MATLAB第7页/共48页MATLAB软件_续5结束MATLAB,退出MATLAB工作环境键入exit键入quit直接关闭MATLAB的命令视窗退出MATLAB第8页/共48页MATLAB软件_续6-14.MATLAB变量与基本输入输出变量命名的规则:第一个字母必须是英文字母;字母间不可留空格;最多只能有19个字母,MATLAB会忽略多余字母。变量定义与输入输出向量与标量矩阵行和列组成的数据表行向量矩阵只有一行时,称为行向量。列向量矩阵只有一列时,称为列向量。标量矩阵只有1个元素时,称为标量。第9页/共48页MATLAB软件_续6-2变量定义var=expt;expt可以是数
7、字、变量、操作符和函数等组成。例如:X=7A=123;456;789B=11121314C=21;22;23;24D=X*B注意:用方括号“”确定的范围内逐行给定元素,相同行元素由空格“”或逗号“,”分隔,不同行数据由分号“;”或回车键分隔。语句结尾没有分号的命令在屏幕显示结果;有分号的命令只执行而不显示。第10页/共48页MATLAB软件_续75.MATLAB常用命令(1)MATLAB常用的基本数学函数abs(x):纯量的绝对值或向量的长度sqrt(x):开平方round(x):四舍五入至最近整数fix(x):无论正负,舍去小数至最近整数sign(x):符号函数(Signumfunction
8、)exp(x):自然指数pow2(x):2的指数log(x):以e为底的对数log10(x):以10为底的对数举例:4x2+58x-89=0(a=4,b=58,c=89)第11页/共48页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名正常成年男子
9、红细胞数(RBC,万/mm)的数据进行描述性统计。(x=zeros(130,1)平均、中位数、众数、标准差第12页/共48页MATLAB软件_续9适用于向量的常用函数_续prod(x):向量x的元素总乘积cumsum(x):向量x的累计元素总和cumprod(x):向量x的累计元素总乘积dot(x,y):向量x和y的内积cross(x,y):向量x和y的外积第13页/共48页MATLAB软件_续10一些常用的操作函数format语句是控制输出的显示格式,句法如下:format设置默认显示格式5位的定点数formattype设置按指定的type格式输出显示。例如:formatratRatioof
10、smallintegersformat(type)与上面语句一样,但以函数形式出现disp(x)显示矩阵函数%注释语句zeros、ones预先定义矩阵的大小。例如:h=zeros(6);%生成66的0矩阵第14页/共48页MATLAB软件_续11(3)重复命令1)for循环(for-loop),其基本形式为:for变量=矩阵;运算式;end变量值会被依次设定为矩阵的每一行,来执行for和end之间的运算式。因此,若中断情况,运算式执行的次数等于矩阵的行数。其中“;”是终结内语句的可抑制的重复显示。举例:产生一个长度为6的调和数列x=zeros(1,6);%x是一个16的矩阵fori=1:6,x
11、(i)=1/i;end第15页/共48页MATLAB软件_续122)while循环,其基本形式为:while条件式;运算式;End实现功能:只要条件成立,就会一再执行运算式。举例:用while循环产生一个长度为6的调和数列x=zeros(1,6);%x是一个16的零矩阵i=1;whilei0.5disp(Givenrandomnumberisgreaterthan0.5.);elsedisp(Givenrandomnumberislessthan0.5.);end第17页/共48页MATLAB软件_续14(5)将多个命令写入一个M文件若要一次执行大量的MATLAB命令,可将这些命令存于一个文件
12、类型为m的文件中,并在MATLAB提示号下键入此文件名即可执行。包含MATLAB命令的文件以m为扩展名,通称M文件(M-files)。举例:名为test.m的M文件有以下内容:%ThisismyfirsttestM-file.%RogerJang,March3,1997fprintf(Startoftest.m!n);fori=1:3,fprintf(i=%d-i3=%dn,i,i3);endfprintf(Endoftest.m!n);第18页/共48页MATLAB软件_续15建立test.m的M文件进入MATLAB编辑器FileNewM-File在编辑器内输入以下内容%Thisismyfi
13、rsttestM-file.%RogerJang,March3,1997fprintf(Startoftest.m!n);fori=1:3,fprintf(i=%d-i3=%dn,i,i3);endfprintf(Endoftest.m!n);保存文件到指定或默认的目录下FileSave输入文件名“test.m”第19页/共48页MATLAB软件_续16执行文件“test.m”进入文件所在目录或查看文件CDdir执行test.mtestStartoftest.m!i=1-i3=1i=2-i3=8i=3-i3=27Endoftest.m!第20页/共48页MATLAB软件_续17注意:M档案可分
14、为命令集(Scripts)及函数(Functions)。前述的test.m即为命令集,其效用和将命令逐一输入完全一样,因此在命令集直接使用工作空间的变量,则在命令集中设定的变量,可在工作空间中看得到。函数则需要用到输入参数(Inputarguments)和输出参数(Outputarguments)来传递资讯。例如:计算一个正整数的阶乘(Factorial),可以写一个如下的MATLAB函数并将之存档于fact.m:functionoutput=fact(n)%FACTCalculatefactorialofagivenpositiveinteger.output=1;fori=1:n,outp
15、ut=output*i;end其中fact是函数名,n是输入参数,output是输出参数,而i则是此函数用到的暂时变量。第21页/共48页MATLAB软件_续18要使用此函数,直接键入函数名及适当输入参数值即可。y=fact(5)y=120注意:在执行fact之前,你必须先进入fact.m所在的目录。在执行fact(5)时,MATLAB会进入一个下层的暂时工作空间(Temperaryworkspace),将变量n的值设定为5,然后进行各项函数的内部运算,所有内部运算所产生的变量都存在此暂时工作空间中。运算完毕后,MATLAB会将最后输出参数output的值设定给上层的变量y,并将清除此暂时工作
16、空间及其所含的所有变量。第22页/共48页MATLAB软件_续19(6)MATLAB的文件、目录等操作指令显示当前目录pwd显示当前工作目录s=pwd将当前工作目录赋予变量s改变工作目录cd显示当前工作目录w=cd将当前工作目录赋予wcd(directory)设置当前工作目录为directory指定的目录cd(.)将当前工作目录改为它的上级目录cddirectoryorcd.与上面两条指令等同第23页/共48页MATLAB软件_续20MATLAB的文件、目录等操作指令_续显示目录列表dir列示当前工作目录的文件dirname列示指定的文件files=dir(directory)将指定目录的文件
17、列表信息返回到files中。例如:afiles=dir(d:/work/*.*)afiles(3).nameafiles(3).date显示文件内容type(filename)typefilenamefilename是要被显示的文件的路径和名字第24页/共48页MATLAB软件_续21MATLAB的文件、目录等操作指令_续浏览或改变MATLAB目录的搜寻路径path显示当前MATLAB搜索路径。初始搜索路径由toolbox/local/pathdef.m文件定义的。path(newpath)将搜索路径改变为一个新路径,这里新路径是一个目录的字符串数组。path(path,newpath)将一个
18、新路径增加到当前的搜索路径后。path(newpath,path)将一个新路径加到当前的搜索路径前。p=path(.)将指定的路径返回到一个字符串变量。第25页/共48页MATLAB软件_续22浏览或改变MATLAB目录的搜寻路径_续举例:pathMATLABPATHd:matlab5toolboxmatlabgenerald:matlab5toolboxmatlabopsd:matlab5toolboxsimulinkdeed:matlab5toolboxlocal查询某一命令是在搜寻路径的何处,用which命令:whichtestc:datamlbooktest.m将c:datamlboo
19、k加入MATLAB的搜寻路径,用pathpath(path,c:datamlbook)第26页/共48页MATLAB软件_续23(7)资料的储存与载入_续1)将计算所得的储存倒文件的命令savesave将工作空间的所有变量储存到名为matlab.mat的二进制文件。savefilename将工作空间的所有变量储存到名为filename.mat的二进制文件。savefilenamexyz将变量x、y、z储存到名为filename.mat的二进制文件。savefilenamexascii将变量x以八位数存到名为filename的ASCII文件。savefilenamex-asciidouble将变
20、量x以十六位数存到名为filename的ASCII文件。注意:命令后不加任何选项时,save会将变量以二进制(Binary)的方式储存至扩展名为mat的文件;另一个选项是-tab,可将同一列相邻的数目以定位键(tab)隔开。第27页/共48页MATLAB软件_续24将计算所得的储存倒文件的命令save_续举例:who列出工作空间的变量Yourvariablesare:BhjyansixzsavetestBy将变数B与y储存至test.matdir列出现在目录中的文件.2plotxy.docfact.msimulink.doctest.m$1basic.doc.3plotxyz.docfirst
21、.doctemp.doctest.mat1basic.docbook.dotgo.mtemplate.doctestfile.datdeletetest.mat删除test.mat第28页/共48页MATLAB软件_续252)将文件载入储存得变量命令loadloadfilename寻找名称为filename.mat的文件,并以二进制格式载入。若找不到filename.mat,则寻找名称为filename的文件,并以ASCII格式载入。loadfilenameascii寻找名称为filename的文件,并以ASCII格式载入。若以ASCII格式载入,则变量名称即为文件名称(但不包含扩展名)。若以
22、二进制载入,则可保留原有的变量名称。举例:clearall;%清除工作空间中的变数x=1:10;savetestfile.datx-ascii%将x以ASCII格式存至testfile.dat文件loadtestfile.dat%载入testfile.datwho%列出工作空间中的变量Yourvariablesare:testfilex注意:上述过程由于是以ASCII格式储存与载入,所以产生了一个与文件名称相同的变量testfile,此变量的值和原变量x完全相同。第29页/共48页MATLAB软件_续26(8)基本xy平面绘图命令1)length获得一组数的个数或一个向量的长度x=ones(1
23、,8);n=length(x)2)linspace产生线性间隔向量y=linspace(a,b)在a,b之间产生一组100点的线性间隔的行向量。generatesarowvectoryof100pointslinearlyspacedbetweenandincludingaandb.y=linspace(a,b,n)在a,b之间产生一组n点的线性间隔的行向量。generatesarowvectoryofnpointslinearlyspacedbetweenandincludingaandb.举例:t=linspace(0.005,0.005*length(y1),length(y1);第30
24、页/共48页MATLAB软件_续27基本xy平面绘图命令_续3)plot绘制一维曲线的基本函数,使用此函数之前,需先定义曲线上每一点的x及y座标。举例:画出一条正弦曲线closeall;x=linspace(0,2*pi,100);%1产生00个点的x座标y=sin(x);%生成对应的y座标plot(x,y);关于MATLAB基本绘图函数的应用说明:绘图刻度plot:x轴和y轴均为线性刻度(Linearscale)loglog:x轴和y轴均为对数刻度(Logarithmicscale)semilogx:x轴为对数刻度,y轴为线性刻度semilogy:x轴为线性刻度,y轴为对数刻度第31页/共4
25、8页MATLAB软件_续28关于MATLAB基本绘图函数的应用说明_续画出多条曲线,只需将座标对依次放入plot函数plot(x,sin(x),x,cos(x);若要改变颜色,在座标对後面加上相关字串plot(x,sin(x),c,x,cos(x),g);若要同时改变颜色及图线型态(Linestyle),也是在座标对後面加上相关字串plot(x,sin(x),co,x,cos(x),g*);第32页/共48页MATLAB软件_续29关于MATLAB基本绘图函数的应用说明_续plot绘图函数的叁数说明在用plot(a,b,s)绘图时,可以使用各类线型、图符、颜色,这里s是由下表中的任一元素或3列
26、中所有元素组合的字符串。第33页/共48页MATLAB软件_续304)将一图形窗口划分为多个显示区,使之同时画出数个小图形於同一个视窗之中。subplot(m,n,p)实现功能:将图形窗口划分为mn矩阵的显示区,同时激活第p个显示区。举例:subplot(2,2,1);plot(x,sin(x);subplot(2,2,2);plot(x,cos(x);subplot(2,2,3);plot(x,sinh(x);subplot(2,2,4);plot(x,cosh(x);第34页/共48页MATLAB软件_续315)其他各种二维绘图函数bar长条图errorbar图形加上误差范围fplot较精
27、确的函数图形polar极座标图hist累计图rose极座标累计图stairs阶梯图stem针状图fill实心图第35页/共48页二、图形信号的处理程序介绍 1.峰值程序fori=1:length(u)ifu(i)=max(u)m=i;breakendendp_h=h(m)第36页/共48页处理程序_续1求起点和终点的程序%judge_startfori=5:(length(y2_7s)-5)ify2_7s(i-4)=0&y2_7s(i-3)=0&y2_7s(i-2)=0&y2_7s(i-1)0&y2_7s(i+1)0&y2_7s(i+2)0&y2_7s(i+3)0&y2_7s(i+4)0y2_
28、7s(i+5)0k=ibreakendend%judge_endfori=1:(length(y2_7s)-6)ify2_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)judge_startjudge_endu=y2_7s(k:j);%宫缩单波数据h=y1(k:j);%对应单波宫缩的心率数据t0=(length(u)-1)*0.005;第38页/共48页处理程序_续33.面积程序t=linspace(0.005,0.005*length(h),length(h);subplot
29、(2,1,1),plot(t,h);%心率-时间图;subplot(2,1,2),plot(t,u);%宫缩-时间图;area=0.005*sum(u)*15./1024%计算面积第39页/共48页三、临床电生理数据分析实验模拟软件介绍1.实验模拟软件简介临床电生理数据分析实验模拟软件Med.exe是用于对临床功能类的信号进行初步分析的软件,该软件是用VisualBasic程序语言来编写的。目前具有如下功能:(1)可以浏览医学仪器采集的电生理信号数据,人工干预信号截取,并以二进制格式和文本格式来保存截取的信号数据;(2)可以利用面板按扭工具,对胎心率信号、孕妇的宫缩信号进行人工干预的信号处理和
30、分析,包括:奇异点处理,平均心率、瞬时心率、宫缩峰值、宫缩时距和宫缩面积的计算;(3)可以进行信号数字平滑滤波、基线调整、自动计算部分时域参数。2.软件的使用说明第40页/共48页实验模拟软件介绍_续1(1)原始采样数据回显“临床信号截取”“选取数据源位置”确定位置后,单击OK在输入病历号的输入框内输入:A0012在选择文件框内选择项目:R0012A_5单击开始单击回放(2)进行人工干预操作在需要截波或人工分析时,单击冻结截取波形,计算时距、面积和平均心率,或去除奇异项时,要用鼠标在视图浏览区内拖出选区,然后分别单击相应的操作按钮注意:如要取消选区,可以单击浏览视图的任意位置即可。计算峰值或瞬
31、时心率时,按着Alt键,然后单击曲线的选取点,接着单击相应的操作按钮(3)结束软件使用单击窗口的关闭按钮。第41页/共48页四、实验 1均值计算2.时距计算3.峰值计算4.面积计算5.作图平均值:平均幅值 :第42页/共48页实验_续11.MatLab实验内容的介绍(1)利用matlab计算宫缩的峰值、宫缩时的平均心率,以及宫缩峰值对应的顺时心率、计算宫缩波的面积、宫缩持续时间实验步骤启动matlab;增加路径:path(path,D:matlab_dat)导入数据clearall;%清除变量心率:y1=load(r0012A0h.txt);宫缩:y2=load(r0012a0u.txt);曲
32、线作图建立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);%宫缩-时间图;第43页/共48页实验_续2宫缩局部加权平滑滤波(七点平滑)n=length(y2)fori=4:n-3y2_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(123n-2n-1n)=y2(1)
33、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_startjudge_end%运行文件judge_start.mj和judge_end.mk取宫缩单波数据以及对应单波宫缩的心率数据u=y2_7s(k:j);h=y1(k:j);第44页/共48页实验_续3计算宫缩峰值:Pu=max(u)建立时间坐标t=linspace(0.005,0.005*length(h),leng
34、th(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计算持续时间t0=(length(u)-1)*0.005;第45页/共48页实验_续4(2)单击MATLAB程序窗口左边窗格的Workspace(工作空间)卡片,浏览该卡片窗格内的所有变量,并执行以下命令:clearall然后再浏览该卡
35、片窗格内的所有变量,你有何结论?(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),length(y1);subplot(2,1,1),plot(t,y1);subplot(2,1,2),plot(t,y2);第46页/共48页实验_续52.Med.exe实验内容的简要介绍(1)启动临床电生理数据分析实验模拟软件,(2)在输入病历号的输入框内输入:A0012(3)在选择文件框内选择项目:R0012A_5(4)对回放的第一个宫缩波曲线对应的心率曲线去除奇异点,然后通过菜单命令“保存截取波形数据”将数据保存为txt类型文件。(记下你在保存文件提示 输 入 的 序 号 n,保 存 后 你 的 文 件 的 名 字 应 为R0012Anh.txt和R0012Anh.txt。)(5)再对上述选定区域的数据求取平均心率、时距、面积,然后人工选取峰值点,计算峰值和瞬时心率。(6)尝试进入MATLAB,对上面截取的数据文件重复上面实验一的操作。比较其结果。第47页/共48页谢谢您的观看!第48页/共48页