为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 生物医学工程

生物医学工程

2010-01-26 48页 ppt 464KB 26阅读

用户头像

is_976840

暂无简介

举报
生物医学工程null医学图形图像处理识别技术与医学信息分析医学图形图像处理识别技术与医学信息分析刘燕 E-Mail: lyan@mail.sysu.edu.cn Phone No. 87331856-811目录内容目录内容 序 医学信息学简述 第一讲 医学信号处理概述 第二讲 医学图形信号的采集、存储与处理 第三讲 Mathlab 与图形信号的处理识别 第四讲 医学图像信号的采集、存储格式、处理方法 第五讲 Mathlab 、Vtk、Mtk与医学图像的处理 第六讲 医学信息挖掘 第七讲 用于教学的医学图片处理技术作业第三讲...
生物医学工程
null医学图形图像处理识别技术与医学信息分析医学图形图像处理识别技术与医学信息分析刘燕 E-Mail: lyan@mail.sysu.edu.cn Phone No. 87331856-811内容目录内容 序 医学信息学简述 第一讲 医学信号处理概述 第二讲 医学图形信号的采集、存储与处理 第三讲 Mathlab 与图形信号的处理识别 第四讲 医学图像信号的采集、存储、处理 第五讲 Mathlab 、Vtk、Mtk与医学图像的处理 第六讲 医学信息挖掘 第七讲 用于教学的医学图片处理技术作业第三讲 Mathlab 与图形信号的处理识别第三讲 Mathlab 与图形信号的处理识别MATLAB软件的使用介绍 图形信号的处理与识别程序介绍 临床电生理数据分析实验模拟软件介绍 实验 一、MATLAB软件的使用介绍一、MATLAB软件的使用介绍1. MATLAB的简介 (1)什么是MATLAB? MATLAB是由美国的MathWorks公司推出的一个为科学和工程计算而专门设计的高级交互式软件包。 MATLAB典型应用 数学计算 算法推导 建模和仿真模拟 数据分析和结果的可视化 工程图形的绘制应用程序开发,包括用户图形界面的建立 (2) MATLAB产生的历史背景MATLAB软件_续1MATLAB软件_续1(3) MATLAB的语言特点 语言简洁紧凑,使用方便灵活,库函数极其丰富。 运算符丰富。 MATLAB既具有结构化的控制语句,又有面向对象编程的特性。 程序限制不严格,程序设计自由度大。 程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。 MATLAB的图形功能强大。 MATLAB的缺点是程序的执行速度较慢。 功能强大的工具箱。 源程序的开放性。 MATLAB软件_续2MATLAB软件_续22. MATLA的安装 进入MATLAB软件安装程序目录,然后单击“Setup”程序,在安装程序的引导下,逐步完成以下操作: (1)选择“Install”安装或”Update license…”升级许可证,单击[Next];然后输入姓名、公司与序列号,单击[Next]。 (2)选择接受许可证,单击“Yes”→单击[Next],然后选择“Typical”典型安装,单击[Next]。 (3)选择或输入安装目的路径,单击[Next],后单击“Yes” (4)单击[Install],系统开始安装。MATLAB软件_续3MATLAB软件_续3(5)在提示插入第2张CD时,插入CD2,然后单击[OK],接着在文件扩展名警示对话框内单击[Yes to all]。 (6)单击[Next],接着单击[Finish]。 (7)如果在单击[Finish]按钮之前,选择了“Start”选项,则此时进入MATLAB工作环境。 MATLAB软件_续4MATLAB软件_续43. MATLAB启动与退出 启动MATLAB,进入MATLAB工作环境启动MATLABMATLAB软件_续5MATLAB软件_续5结束MATLAB,退出MATLAB工作环境 键入exit 键入quit 直接关闭MATLAB的命令视窗退出MATLABMATLAB软件_续6-1MATLAB软件_续6-14. MATLAB变量与基本输入输出 变量命名的规则:①第一个字母必须是英文字母;②字母间不可留空格;③最多只能有19个字母,MATLAB会忽略多余字母。 变量定义与输入输出 向量与标量 矩阵——行和列组成的数据表 行向量——矩阵只有一行时,称为行向量。 列向量——矩阵只有一列时,称为列向量。 标量——矩阵只有1个元素时,称为标量。MATLAB软件_续6-2MATLAB软件_续6-2变量定义 var=expt; expt可以是数字、变量、操作符和函数等组成。 例如: X=7 A=[1 2 3; 4 5 6; 7 8 9] B=[11 12 13 14] C=[21;22;23;24] D=X*B 注意: 用方括号“[ ]” 确定的范围内逐行给定元素,相同行元素由空格“ ”或逗号“,”分隔,列由分号“;”或回车键分隔。 语句结尾没有分号的命令在屏幕显示结果;有分号的命令只执行而不显示。MATLAB软件_续7MATLAB软件_续75. 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为底的对数MATLAB软件_续8MATLAB软件_续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的元素总和 MATLAB软件_续9MATLAB软件_续9适用于向量的常用函数_续 prod(x): 向量x的元素总乘积 cumsum(x): 向量x的累计元素总和 cumprod(x): 向量x的累计元素总乘积 dot(x, y): 向量x和y的内积 cross(x, y): 向量x和y的外积 MATLAB软件_续10MATLAB软件_续10一些常用的操作函数 format语句是控制输出的显示格式,句法如下: format 设置默认显示格式5位的定点数 format type 设置按指定的type格式输出显示。 例如:format rat Ratio of small integers format('type') 与上面语句一样,但以函数形式出现 disp(x) 显示矩阵函数 % 注释语句 zeros、ones 预先定义矩阵的大小。 例如:h = zeros(6); %生成6×6的0矩阵 MATLAB软件_续11MATLAB软件_续11(3) 重复命令 1)for循环(for-loop),其基本形式为: for 变量 = 矩阵; 运算式; end 变量值会被依次设定为矩阵的每一行,来执行for和end之间的运算式。因此,若中断情况,运算式执行的次数等于矩阵的行数。其中“;”是终结内语句的可抑制的重复显示。 举例:产生一个长度为6的调和数列 x = zeros(1,6); % x是一个1×6的矩阵 for i = 1:6, x(i) = 1/i; end MATLAB软件_续12MATLAB软件_续122)while循环,其基本形式为: while 条件式; 运算式; End 实现功能:只要条件成立,就会一再执行运算式。 举例:用while循环产生一个长度为6的调和数列 x = zeros(1,6); % x是一个1×6的零矩阵 i = 1; while i <= 6, x(i) = 1/i; i = i+1; end format short MATLAB软件_续13MATLAB软件_续13(4)逻辑命令 if, ..., end,其基本形式为: if 条件式; 运算式; end 实现功能:条件成立,执行运算式。 举例:产生一个随机数 if rand(1,1) > 0.5 disp('Given random number is greater than 0.5.'); else disp('Given random number is less than 0.5.'); end MATLAB软件_续14MATLAB软件_续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 ---> i^3 = %d\n', i, i^3); end fprintf('End of test.m!\n');MATLAB软件_续15MATLAB软件_续15①建立test.m的M文件 进入MATLAB编辑器 File→New→M-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 ---> i^3 = %d\n', i, i^3); end fprintf('End of test.m!\n'); 保存文件到指定或默认的目录下 File→Save→输入文件名“test.m”MATLAB软件_续16MATLAB软件_续16②执行文件“test.m” 进入文件所在目录或查看文件 >>CD >> dir 执行test.m >> test Start of test.m! i = 1 ---> i^3 = 1 i = 2 ---> i^3 = 8 i = 3 ---> i^3 = 27 End of test.m! >> MATLAB软件_续17MATLAB软件_续17注意:M档案可分为命令集(Scripts)及函数(Functions)。前述的test.m即为命令集,其效用和将命令逐一输入完全一样,因此在命令集直接使用工作空间的变量,则在命令集中设定的变量,可在工作空间中看得到。函数则需要用到输入参数(Input arguments)和输出参数(Output arguments)来传递资讯。 例如:计算一个正整数的阶乘(Factorial),可以写一个如下的MATLAB函数并将之存档于fact.m: function output = fact(n) % FACT Calculate factorial of a given positive integer. output = 1; for i = 1:n, output = output*i; end 其中fact是函数名,n是输入参数,output是输出参数,而i则是此函数用到的暂时变量。MATLAB软件_续18MATLAB软件_续18要使用此函数,直接键入函数名及适当输入参数值即可。 >>y = fact(5) y = 120 注意: 在执行fact之前,你必须先进入fact.m所在的目录。 在执行fact(5)时,MATLAB会进入一个下层的暂时工作空间(Temperary workspace),将变量n的值设定为5,然后进行各项函数的内部运算,所有内部运算所产生的变量都存在此暂时工作空间中。运算完毕后,MATLAB会将最后输出参数output的值设定给上层的变量y,并将清除此暂时工作空间及其所含的所有变量。MATLAB软件_续19MATLAB软件_续19(6)MATLAB的文件、目录等操作指令 显示当前目录 pwd 显示当前工作目录 s = pwd 将当前工作目录赋予变量s 改变工作目录 cd 显示当前工作目录 w = cd 将当前工作目录赋予w cd('directory') 设置当前工作目录为directory指定的目录 cd('..') 将当前工作目录改为它的上级目录 cd directory or cd .. 与上面两条指令等同 MATLAB软件_续20MATLAB软件_续20MATLAB的文件、目录等操作指令 _续 显示目录列表 dir 列示当前工作目录的文件 dir name 列示指定的文件 files = dir('directory') 将指定目录的文件列表信息返回到files中。 例如: >>afiles=dir(‘d:/work/*.*') >> afiles(3).name >> afiles(3).date 显示文件内容 type ('filename') type filename filename是要被显示的文件的路径和名字 MATLAB软件_续21MATLAB软件_续21MATLAB的文件、目录等操作指令 _续 浏览或改变MATLAB 目录的搜寻路径 path 显示当前MATLAB 搜索路径。 初始搜索路径由toolbox/local/pathdef.m文件定义的。 path('newpath') 将搜索路径改变为一个新路径,这里新路径是一个目录的字符串数组。 path(path,'newpath') 将一个新路径增加到当前的搜索路径后。 path('newpath',path) 将一个新路径加到当前的搜索路径前。 p = path(...) 将指定的路径返回到一个字符串变量。MATLAB软件_续22MATLAB软件_续22浏览或改变MATLAB 目录的搜寻路径 _续 举例: >> path MATLABPATH d:\matlab5\toolbox\matlab\general d:\matlab5\toolbox\matlab\ops ┋ d:\matlab5\toolbox\simulink\dee d:\matlab5\toolbox\local 查询某一命令是在搜寻路径的何处,用which命令: >>which test c:\data\mlbook\test.m 将c:\data\mlbook加入MATLAB的搜寻路径,用path >>path(path, 'c:\data\mlbook') MATLAB软件_续23MATLAB软件_续23(7)资料的储存与载入 _续 1) 将计算所得的储存倒文件的命令save save 将工作空间的所有变量储存到名为matlab.mat的二进制文件。 save filename 将工作空间的所有变量储存到名为filename.mat的二进制文件。 save filename x y z 将变量x、y、z储存到名为filename.mat的二进制文件。 save filename x –ascii 将变量x以八位数存到名为filename的ASCII文件。 save filename x -ascii –double 将变量x以十六位数存到名为filename的ASCII文件。 注意:①命令后不加任何选项时,save会将变量以二进制(Binary)的方式储存至扩展名为mat的文件 ;②另一个选项是-tab,可将同一列相邻的数目以定位键(tab)隔开。 MATLAB软件_续24MATLAB软件_续24将计算所得的储存倒文件的命令save _续 举例: >>who 列出工作空间的变量 Your variables are: B h j y ans i x z >>save 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软件_续25MATLAB软件_续252)将文件载入储存得变量命令load load filename 寻找名称为filename.mat的文件,并以二进制格式载入。若找不到filename.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 注意:上述过程由于是以ASCII格式储存与载入,所以产生了一个与文件名称相同的变量testfile,此变量的值和原变量x完全相同。MATLAB软件_续26MATLAB软件_续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,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软件_续27MATLAB软件_续27基本xy平面绘图命令_续 3)plot 绘制一维曲线的基本函数,使用此函数之前,需先定义曲线上每一点的x及y座标。 举例:画出一条正弦曲线 >>close all; >>x=linspace(0, 2*pi, 100); % 1产生00个点的x座标 >> y=sin(x); %生成对应的y座标 >> plot(x,y); 关于MATLAB基本绘图函数的应用说明 : 绘图刻度 plot: x轴和y轴均为线性刻度(Linear scale) loglog: x轴和y轴均为对数刻度(Logarithmic scale) semilogx: x轴为对数刻度,y轴为线性刻度 semilogy: x轴为线性刻度,y轴为对数刻度 MATLAB软件_续28MATLAB软件_续28关于MATLAB基本绘图函数的应用说明 _续 画出多条曲线,只需将座标对依次放入plot函数 plot(x, sin(x), x, cos(x)); 若要改变颜色,在座标对後面加上相关字串 plot(x, sin(x), 'c', x, cos(x), 'g'); 若要同时改变颜色及图线型态(Line style),也是在座标对後面加上相关字串 plot(x, sin(x), 'co', x, cos(x), 'g*'); MATLAB软件_续29MATLAB软件_续29关于MATLAB基本绘图函数的应用说明 _续 plot绘图函数的叁数说明 在用plot(a,b,s)绘图时,可以使用各类线型、图符、颜色,这里s是由下表中的任一元素或3列中所有元素组合的字符串。MATLAB软件_续30MATLAB软件_续304) 将一图形窗口划分为多个显示区,使之同时画出数个小图形於同一个视窗之中。 subplot(m,n,p) 实现功能:将图形窗口划分为m×n矩阵的显示区,同时激活第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)); MATLAB软件_续31MATLAB软件_续315) 其他各种二维绘图函数 bar 长条图 errorbar 图形加上误差范围 fplot 较精确的函数图形 polar 极座标图 hist 累计图 rose 极座标累计图 stairs 阶梯图 stem  针状图 fill  实心图 二、图形信号的处理程序介绍 二、图形信号的处理程序介绍 1. 峰值程序 for i=1:length(u) if u(i)==max(u) m=i; break end end p_h=h(m) 处理程序_续1处理程序_续1求起点和终点的程序 %judge_start for i=5:(length(y2_7s)-5) if y2_7s(i-4)<=0&y2_7s(i-3)<=0&y2_7s(i-2)<=0&y2_7s(i-1)<=0&y2_7s(i)>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 end end %judge_end for 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 end end处理程序_续2处理程序_续22. 时距程序 >> judge_start >> judge_end >> u=y2_7s(k:j); %宫缩单波数据 >> h=y1(k:j); %对应单波宫缩的心率数据 >>t0=(length(u)-1)*0.005; 处理程序_续3处理程序_续33. 面积程序 >>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是用于对临床功能类的信号进行初步分析的软件,该软件是用Visual Basic程序语言来编写的。目前具有如下功能: (1)可以浏览医学仪器采集的电生理信号数据,人工干预信号截取,并以二进制格式和文本格式来保存截取的信号数据; (2)可以利用面板按扭工具,对胎心率信号、孕妇的宫缩信号进行人工干预的信号处理和分析,包括:奇异点处理,平均心率、瞬时心率、宫缩峰值、宫缩时距和宫缩面积的计算; (3)可以进行信号数字平滑滤波、基线调整、自动计算部分时域参数。 2. 软件的使用说明实验模拟软件介绍_续1实验模拟软件介绍_续1(1)原始采样数据回显 ①“临床信号截取”→“选取数据源位置”→确定位置后,单击[OK] ②在输入病历号的输入框内输入:A0012 ③在选择文件框内选择项目:R0012A_5 ④单击[开始]→单击[回放] (2)进行人工干预操作 ①在需要截波或人工分析时,单击[冻结] ②截取波形,计算时距、面积和平均心率,或去除奇异项时,要用鼠标在视图浏览区内拖出选区,然后分别单击相应的操作按钮 注意:如要取消选区,可以单击浏览视图的任意位置即可。 ③计算峰值或瞬时心率时,按着[Alt]键,然后单击曲线的选取点,接着单击相应的操作按钮 (3)结束软件使用 单击窗口的关闭按钮。四、实验 四、实验 1.均值计算 2. 时距计算 3. 峰值计算 4. 面积计算 5. 作图平均值 :平均幅值 :实验_续1实验_续11. MatLab实验内容的介绍 (1)利用matlab计算宫缩的峰值、宫缩时的平均心率,以及宫缩峰值对应的顺时心率、计算宫缩波的面积、宫缩持续时间 实验步骤 ①启动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实验_续2宫缩局部加权平滑滤波(七点平滑) >> n=length(y2) for i=4:n-3 y2_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.m k ⑥取宫缩单波数据以及对应单波宫缩的心率数据 >> u=y2_7s(k:j); >> h=y1(k:j);实验_续3实验_续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 计算持续时间 >>t0=(length(u)-1)*0.005; 实验_续4实验_续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),length(y1)); subplot(2,1,1),plot(t,y1); subplot(2,1,2),plot(t,y2);实验_续5实验_续52. Med.exe实验内容的简要介绍 (1)启动临床电生理数据分析实验模拟软件, (2)在输入病历号的输入框内输入:A0012 (3)在选择文件框内选择项目:R0012A_5 (4)对回放的第一个宫缩波曲线对应的心率曲线去除奇异点,然后通过菜单命令“保存截取波形数据”将数据保存为txt类型文件。(记下你在保存文件提示输入的序号n,保存后你的文件的名字应为R0012Anh.txt 和R0012Anh.txt。) (5)再对上述选定区域的数据求取平均心率、时距、面积,然后人工选取峰值点,计算峰值和瞬时心率。 (6)尝试进入MATLAB,对上面截取的数据文件重复上面实验一的操作。比较其结果。
/
本文档为【生物医学工程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索