利用MATLAB实现医学图像处理与分析
利用MATLAB实现医学图像处理与分析边缘是图像最基本的特征。所谓边缘是指图像周围像素灰度有阶跃变化或屋顶状变化的像素的集合, 它存在于目标与背景、目标与目标、区域与区域、基元与基元之间。边缘具有方向和幅度两个特征, 沿边缘走向, 像素值变化比较平缓; 垂直于边缘走向, 像素值变化比较剧烈, 可能呈现阶跃状, 也可能呈现斜坡状因此, 边缘可以分为两种: 一种为阶跃性边缘, 它两边的像素灰度值有着明显的不同; 另一种为屋顶状边缘, 它位于灰度值从增加到减少的变化转折点。对于阶跃性边缘, 二阶方向导数在边缘处呈零交叉; 而对于屋顶状边缘, 二阶方向导数在边缘处取极值。第6期高向军,等:利用 MATLAB实现医学图像处理与分析1749d imw rie( modif, ank le_new series d en, n b)在 MATLA B中,笔者实现算法如下:a读入图像,预定义3.2 Levelset图像分割初始轮廓,如图3(a)所示;b定义离散化水平集函数;c)曲线在医学图像分割研究中,基于 level set技术的活动轮廓模演化,递准过程;d)求解演化后的零水平集,即为分割图像的型正引人注目。本实例在 MATLAB环境中,实现了Chm和边缘,如图3(b)所示。Ⅴese提出的无梯度的活动轮廓模型,并应用在医学图像分割之中。4结束语CⅤ分割方法的基本原理如下:没定义域为Ω的图像uo实践证明,MAT^AB软件功能强大、数据计算能力突出、被闭合边界C划分为目标O(C的内部)和背景B(C的外语言简洁易读。使用图像工具箱中的医学图像处理函数可以部)两个同质区域。两个区域的平均灰度分别为c1和c2此时方便快捷地实现医学图像的读写及简单处理功能。本文用实能量函数可看做为外部能量和内部能量之和,即例证明了在 MATLAB环境中可以方便、快速、有效地实现复杂E(cIc> C)=EinsidefC)+Eoutsidec)医学图像处理算法。同时Ⅵ ATLAR工具箱涉及的专业领域广H, m isc,(uo-Ci2dx dy+泛且功能強大。由于工具箱具有可靠性和开放性,可以方便H2IJout ie c)(o-C2)2dedy-YICI地直接加以使用,也可以将自己的代码加到工具箱中以改进函数功能。因比,在Ⅵ ATLA B(R2006b)环境下,实现医学图像的处理和分析具有很大的应用优势和价值。参考文献:1」田捷,包尚联,周明全.医学影像处理与分析[Ⅵ].北京:电子工业出版社,2003.(a)初始图像(b)分割结果「2]张尢赛,陈福民·D)IαM医学图像窗口变换的加速算法[J.计图3 Level set分割结果算机工程与应用,200339(13):218-2203]王立功,刘伟强,于甬华,等.DCOM医学图像文件格犬解析与当闭合边界C处于两个同质区域的边界时,能量达到最应用研究[J计算机工程与应用,20642(29):210212225小。为了解决曲线的拓扑变化问题,C-V分割法采用了水平[41曾筝,董芳华,陈咣,等.利用 MATLAB实现C断层图像的三维集方法,将闭合边界C嵌入高一维的曲面ψ中,根据初始闭合重建[J·CT理论与应用研究,200413(2):24-29曲线c构造一个内正外负的符号距离水平集函数中这样就5l任忠宝,李佳·基于 MATLA B的颅面三维重构技术J·计算机将关于闭合曲线C的能量函数转换为关于曲面中的能量函(6]王家文,李迎军.MAAB7.0图形图像处理(M].北京:国防数,再通过变分技术可以得到关于曲面的偏微分方程模型,即工业出版社,2006冲=1中/Yd(y中/1中1)-1(mo-c12+2(no-c2)2通(71HANT, VESE L. A ctive con bou rs w ithou t edges JI. EEE Tans过求由面的零水平集就可以得到C的位置mage Process 2001, 10(2): 266 277(上接第1740页)相比,本文算法虽然计算量有所增大,但能acam pos itc m ethod[ J]. Pattern Recogn tion 1982, 22(4: 381正确区分质量中等区域和质量较差的区域,并将背景区域和质385.量较差、后继算法无法恢复的噪声区域分割,保留质量巾等41 MEHTRE B M. F ngerp rmt m age ana ls s for autm atic ren tifica tion区域,使后续算法的处理区域更精确。I J] M achine Vis ion and App lica tons 1993, 6(2-3): 124-1395]苏彦华·Ⅴ balc++数字图像识別技术典型業例[M]·北京:人4结束语民邮电出版社,2004I6]耿茵茵,唐良瑞.指纹图像分级分割算法ⅠJ.北方工业大学学本文提出了一种改进的基于指纹灰度特性的指纹图像分200012(3):2-26割算法,克服了传统自适应阈值分割算法在指纹与背景交接区[7]甘树坤,欧宗瑛,魏鸿磊,基于灰度特性的指纹图像分割算法[J域,以及指纹内部脊线太淡或脊线粘连的区域分割不准及分割古林化工学院学报,200623(1):68-71前景边界的方坎效应问题,适用于更多类型的指纹图像,且分[8] ROSENFILD A, KAK A C. Digita I im age process ing[M].Naw割比较精确。实验结果表明,该算法的分割效果很好,对前景Yor a cadem i press 1976区和背景区的分割更加灵活准确,有效降低了指纹图像噪声的[9]G0 NAZALES R C. WOODSR E. D igital m age processing[M I影响,它不仅能分割出指纹质量较好的图像,也能有效地分割Read a add ison w esley 1992噪声干扰较大的指纹图像,经过分割后的图像指纹纹线清晰、「11田捷,杨鑫,生物特征识别技术理论与应用M],北京:子工业出版社,2005流畅,具有较强的适应性和很高的实用价值。目前该算法已被应用到成熟的指纹识别算法中。10]吴|金,朱兆达图像处理中阂值选取方法3年(192-1992)的进展(12)[J.数据采集与处狸19938(3):1920}(4):26278.参考文執I 12 BAZEN AM, GEREZ S H. Segn en tation of fingeprin t m ages[ c]//l]陆颍.指纹自动识别原理与方法综述[J]·工栏数学学报.2004Prme of the 12th Annual W orks op on C icu its Sys kms and Sign al21(6):10031010Pocess ng Neherland I s n, 2001 276-2802]硎 HANG J anwei I Heng li s udy on segm ent a lgorithm in au m a[l3]冯星奎,颜祖泉,肖兴明,等.指纹图像合成分割法[J.计算机l i fige prill ilen Lifica lion[ J. M cro oomputer Applica tons应用研究,200017(1):7G77199915(12)202214]韩思奇,王蕾·图像分割的阈值法综述丨J].系统工程与皃子技13 CMEBTREUM.C是是出m出是 lishing630 bihgts-ycscrved.htp/w. cnkinct
- 2020-12-10下载
- 积分:1
中科院高级软件工程期末题库
文档是期末考试的题库,老师出的题目都是从这里面出的。目录概念解释.二、选择题、设计题四、简答题……………23概念解释1.敏捷开发方法与 Scrum方法2.基于计划文档开发方法(Pan-and- Document based Development)3.DRY( Dont repeat yourself)尢重复代码4.MVC(软件作为服务的开发框架)5. SMART用户故事6. TDD and红绿重构7.F|RST测试原则8.代码味道及类内方法SOFA原则(说明S、O、F、A分别代表什么?违法该原则的代码的不好特征、重构和修复的方法)9.类间关系的SOLD原则(说明每个原则的意义、违法该原则的代码的不好特征、重构和修复的方法)(1)单一责任原则(2)开闭原则(3)里氏替换原则(4)依赖注入原贝(5)迪米特法则10.持续集成及开发11.文档对象模型(DoM)和 jQuery12. JavaScript函数特点13. HTML14.ruby面向对象15.ruby访问控制 public、 private和 protected16.CSs规则构成17.ruby中的数组18.Ruby哈希(Hash)19.Ruby迭代器:each和 collect20.Git工作流程、选择题21工具/语言1.下面哪个git命令用来帮助跟踪谁修改了什么文件和什么时候修改的?A. git listB. git manageC. git pushD. git blame2.如何比较两个文件或当前文件和以前版木的修订?A. git diffB. git compareglt cloneD. git checkout3.如果提小提交内容为空、不能提交,则最为合适的处理方式是a)执行 glt status查看状态,再执行 git add命令选择要提交的文件,然后提交。b)执行 glt commit- allow- empty,允许空提交。c)执行 glt commit-a,提交所有改动。d)执行 glt commit- amend进行修补提交4.如果把项目中文件hel1o.c的内容破坏了,如何使其还原至原始版本?0 git reset--hellocb) git checkout HEAD--hellocc) git revert hello.cd)git update hello.c5.修改的文栏 meeting.doc尚未提交,因为错误地执行了 glt reset-hard导致数据丢失。丢失的数据能找回么?a)不能。执行硬重置使工作区文件被覆盖,导致数据丢失无法找回。b)能。可以通过 git checkout hEAD@{1}- meeting.doc找回。c)不确定。如果在重置前执行∫ git add命令将 meeting.doc加入了暂存Ⅸ,则可以在对象厍中处于悬空状态的文件中找到d)不能。因为未提交所以无法找回。6.仅将工作区中修改的文件添加到暂有区(新增文件不添加),以备提交,用什么命令标记最快?a) git add -Ab) git add→pc git addd git add下面哪一个命令不会改变提交历史?a) git resct --hard HEAD1b) git checkout HEADc) git rebase -i HEADd) git commit --amend8.下面的描述中不属于Ruby特性的是A.Ruby是一种功能强大的面向对象的脚本语言B.Ruby遵守GPL协议并且是免费的。C.Ruy具有自动内存管理机制。D.Ruby是基于MVC架构的。9.下面的描述中不属于 Rails特性的是A. Rails是一个使用Ruby语言写的开源网络应用框架。B. Rails具有强大的反射札制与后设编程C.“不要重复自u”和“约定胜丁配置”是 Rails的设计原则。D. Rails具有实时映射技术和模板编程技术。10.Ruby提供了多种字符串的表示方法,下面哪一种是错误的?A.str=在线学习乐园”B.str-niwww.itzcn.comlC.str=%/t免费教学和视频D.str="窗内网11.在命令控制台要查看Ruby的版本应该使用命令A. rubyB. ruby versionC. ruby -hD. ruby /12.下列不属丁 Ruby Gems提供命令的是A. gem listB. gem install railsC. gemD. gem -update rails13.下面关于Ruby编译器的使用方法,错误的是A. ruby hi. rbB. ruby -e print hC. ruby -h hi. rbD. ruby -c hi. rb14.调用方法可以去除用户输入的换行符。A. chompB. trC.D. to i22需求分析15.下面哪些用户故事描述是满足的 SMART原则要求的?A.用户能用影片名查找电影信息。B.作为一个用户,我想看前10个按价格从低到高排序的影片列表,以便我买到最便宜的电景票。C. Rotten potatoes app应该有好的用户界面D. Rotten potatoes app应该有好的用户界面和快的响应时间6.下面哪个是对,就用户故事而言?()它们应该措述该应软件是如何使用的。()它们应该有业务价值。(i)它们不必要是可以测试的。它们应该在敏捷软件开发生命周期的各阶段都能实施或实现。A. ionlyB. i and iic, i and iyD, i iii, and iv7.相对强调过程的场景描述而言,声眀性场景描述特点是:A.有更复杂语句和步骤。B.个是DRY。C.史段、易理解和维护。D.关注在低层步骤上,这些步骤需要初始化设置和执行测试。8.对隐性和显性需求而言,下面哪些说法是对的?A.无论隐性和显性需求,你都不能写用户故事。B.隐性需求更简洁,而显性需求更啰嗦。C.隐性需求是显性需求的逻辑结果,通常对应于综合性测试D.显性需求通常可以用场景化过程性语言描述,而隐性需求通常用声明性语言描述。19.为什么很多软件项目失败?软件不是用户所要的。(i)延迟交付。(i)软件超出预算。(y)软件演化后容易维护和升级A. i andB. iii and iyC. i ii and iiiD. i, ii, iii, and iv20.下面哪些是表达了BDD的不足。.与客户交互沟通的成本。i.客户满意不等于该软件有一个好的架构。ⅲ编写功能代码前,先写测试代码。.缺乏相关工具。A. i and iiB. iii and ivC. ii and iiiD. i ii, iii, and iy21.需求分析最终结果是产生()A.项目开发计划B.可行性分析报告C.需求规格说明书D.设计说明书22.需求分析中,开发人员要从用户那里解决的最重要的问趣是()A.让软件做什么B.要给软件供哪些信息C.需求软件工作效率怎样D.让软件具有何种结构23.需求规格说明书的内容不应包括对()的描述。A.主要功能B.算法的详絀过程C.用户界面的运行环境D.软件性能24.软件需求分析阶段的工作,可以分成4个方面:需求获取,需求分析,编与需求规格说明书以及()A.用户B.需求评审C.总结D.都不正确25.在原型法中,开发人员根据()的需求不断修改原型,直到满足客户要求为止A.用户B.开发人员C.系统分析员D.程序员26.需求验证应该从下述几个方面进行验证:A.可靠性、可用性、易用性、重用性B.可维护性、可移植性、可重用性、可丬则试性C.一致性、现实性、完整性、有效性D.功能性、非功能性22设计27.敏捷开发者崇尚的价值点是A.过程和工具胜于个人与团队交流B.可工作的软件系统胜于全面的文档C.合同谈判胜于与客户协作D.遵循计划胜于响应需求变化28.瀑冇软件开模型与螺旋软件开发模型的区别?A.瀑布模型包括了大量的计划文档和时间跨度大的可匚作软件版本,而螺旋模型小量的计划文档和时问跨度小的可工作软件版本。B.瀑布模型从开始就写全所有的需求文档,而螺旋模型按迭代阶段写需求文档.C.瀑布模型有教长的迭代周期,而蠓旋模型有较短和快的迭代周期。D.瀑布模型的在每个阶段完成后进行保障测试,最后验证阶段包括了验收测试;而螺旋模型的侏障测试在每2个月内进行。29.哪种类型的代码是最坏的?A.遗留代码( legacy code)B.静态代码( static code)C.与期望不一致的短命代码( unexpectedly short-lived code)D.优美代码( beautiful code)30.“系统中的每一个知识(功能或特性)必须有单一的、无二义和明确的表示。”是对下面的哪条原则的表达?RESTBSAASC. SOADDRY31.如果一个项日延期后,为什么说增加人于不是一个好主意。因为:A.程序员太贵B.不能用大团队来承建SaS软件C.交流成本会下降D.让新程序员上手需要较多时间32. Model- View-Controller(Mvc)架杓/设计模式有什么好处?A.支持多用户存取和更新模型数据,对每个用户提供各自的视图。B.确保模型与视图有一对一的映射。C.为了调试日的,提供模型和控制器的调试窗口。D.像其他设计模式一样,遵循这类架构可以得到更简洼的代码。33.下面哪一ˉ种提晑软件生产效率的方法比较能体现面向服务架构的软件?A.通过简洁达到清晰( Clarity via concisenessB.代码合成( Synthesis)C.可重用( Reuse)D.自动化和工具( Automation and tools)34.一个服务直接访问另外一个服务的数据时可能出现不稳定的情况一般是以下哪一种情况的特点之A. Rails应用框架B.面向服务的架构C.面向对象编程D.敏捷开发过程35.假设有两个HTTP请求的URI是·样,但调用的方法(GET与POST)不同。对于Rails路由而言,卜面哪个说法是对的。A.两个请求可以对应不同控制器的方法,但不是必须的。
- 2020-12-08下载
- 积分:1