基于ITK、VTK与MFC读取DICOM图像
基于ITK,VTK以及MFC读取DICOM图像的文献@ErtoRwww.crter.org吕哧琪,等于1K、K和MC的DCOM图像读写及显示文章是在视类的构造函数及其析构函数中实现它们的初始化及善后工作的。其次,改写视图类的虚函数Ocrea(),以下为关键代码ren Win->AddRenderer(ren);renWin->Setwindowld(m hWnd)iren->SetRenderWindow(ren Win)最后,在视图类的 OnDraw函数中添加绘制代码Render()当然窗口的尺寸也可以在这里进行调整。Figure 5 Unintegrated display effect此,可以在MFc应用稈序视图区域中实现与VTK图5未集成显示效果渲染对象的父互和鼠标响应操作,并可以利用MFC界面控件来进行参数控制,本文程序中鼠标按下会弹出一个对于VTK与MFC的集成已有相关文献介绍,分为快显示图像上象素坐标及象素值的消息框(见图7,8)借以速集成和深度集成两种集成方式。图6是作者将图5对应说明鼠标响应交互操作的实现,至此完成了TK与MFC序做了怏速集成后 DICOMA像的显示。集成过程只需的深度集成。读者也可以参考ⅤTK工具包 Examples设置 vtk RenderWindow类中的 SetParent函数为当前 GUlIn32MFC下的例程,实现更丰富的集成。该视图或对话框句柄即可,关键代码如下所示和集环覓下的面显示将结合后续DCOM文件显示tkRenderwindow部分给出。FrenWin=vtkRenderWindow: NewovtkRenderWindowlnteractoriren=vtkRenderWindowInteractor Newothis->renWin->SetParentld(this->m hWnd);this->iren->SetRenderWindow(this->renIn);Figure 7 Display effect of vik depth integration图7深度集成环境下VTK显示效果Figure 6 Display effect of fast integration图6快速集成显示效果快速集成屏蔽」MFC的鼠标响应和消息传递,不便于后续编程实现更复杂的功能。VTK与MFC集成的请为:0007000根本目的是实现更实用、更灵活的交互界面,以弥补VTK自身在该方面的缺憾,那么就要求不仅要将TK的渲染窗口嵌入于MFC应用程序视图区域,而且还要Figure 8 Display effect after flipping图8翻转后VTK显小效果使其融为一体,即拥有一个统一的具有友好交互能力的界面。在此,重点介绍下作者尝试实现VTK与MFC深度集成的另一种方法,具体步骤如下:首先,在视类中增2D|cOM图像的读写与显示加可视化管道中会用到的类,用这些类实例化对象,文章用到的对象有:渲染对象ren)、渲梨窗口( renin)、2.1DCOM图像的读写文章中的数据对象是一维交互对象(ren)、演员( BrainActor)、映射( Brain Map)等, DICOM图像。读与DCOM文件的功能使用∏TK提供的范o1994-2011ChinaAcadcmicJournalElcctronicPublishingHousc.Allrightsroscrved.http://www.cnki.nctcn.zglckf.com2418P.O. Box 1200, Shenyang 110004吕烧琪,等干K、VTK和MFC的DCOM图像读写及显示CRTOR Ww. cRTER org函功能来实现,在∏K中,DCOM的范函性由GDCM厍写DcOM文件是一件非常精密的操作,因为所要处理的提供。这个开放的源码厍由INSA_Lyon的 creats团队发是大量重要的有关患者详细而精确的数据,并且涉及到展的。实验使用: GDCMImagelO类来建立与GDCM库患者的隐私问题。所以在写的过程中,一定要核实出你的连接,实现读取 DICOM图像的功能。|TK数据处理管的代码所生成的头文件信息不会给患者的治疗和诊断道中的三种处理对象具休为:Sσurce采用带来风险,要确休沿着数据处珄管道正桷地传递DC○Mik: itklmage SeriesReader类; Filter来用了ik∷文件的细节信息,从而才能保证正确地将原D|COM文件Curvature FlowImage Filter; Mapper采用了itk:的这些信息写入新的DcOM序列图像文件。以下便是实itkImageFileWriter类。现该部分内容的主要代码:单张二维DCOM图像的读写:本部分实现单张二维首先定义图像类型,并明确所选象素类型和维度,p|c○M图象以 DICOM格式读入与以DCOM格式写入从而定义序列图像读取类型。的工作。首先声明象素类型和图像的维数,以它们作为typedef signed short PixelType模板参数来实例化读入图像的类型,用该图像类型作为const unsigned int Dimension=3;模板参数再实例化读取器 Reader的类型并创建一个typedef itk: Image< PixelType, DimensionReader,将读入图像的文件路径和文件名作为参数传给 mage Type;Reader,并为 Reader关联 GDCMImagelO对象,调用typedef itk: Image SeriesReader< Image TypeUpdate(函数更新读取过程,DcOM图像就已读入内存 ReaderType中。用 Reader的 Getoutput()方法可以获得图像数据的接下来声明并实例化实际读写DCOM图像的指针。月前的焦点是如何再一次将图像在新文件中保存k: GD CMImagelC对象和为所有切片生成文件名并排成DCOM格式。具体的,先实例化一个 Image File Writer序的tk: GDCMSeries fileNames对象,并创建相应智能类型,并创建指针 Writer,将写入的图像的文件路径和指针 gdcmIO和 names Generator。文件名作为参数传给 Writer,并为其关联ImageloType: PointerGDCM| magelo对象,这个对象是知道DCOM格式的内 gdcmIo= magelOType:New()部结构的,最后用 Update()来触发写入程序。文章在读Names Generator Type: Pointer写过稈中对图像进行了保留边缘的平滑去噪处珥,以下 names Generator= Names GeneratorType:|New()为主要代码names Generator->SetInputDirectory(argvImageloType: Pointer生成读入文件的文件名gdcmImagelo=ImageloType: NeW(const ReaderType: FileNames Containerreader->Setlmagelo(gdcmImagelO)filenames=namesGenerator->GetInput FileNames():reader> SetFileName(argv):∥参数为文件路径实例化 Reader Type对象并创建智能指针 reader,读及文件名取DcOM格式序列图像。writer->Setlmagelo(gdcmImagelO)reader->Setlmagelo(gdcmlO)rwriter->SetFileName(argv2);∥将平滑后图像以reader->SetFileNames(filenames )D|COM格式写入到参数所指定的文件中。最后用 reader的 Update()触发读取程序,最好放在try/catch问询块中,在此不再赘述。CurvatureFlowImageFilterType: Pointer至此,可以开始写数据了。首先把确定存在的输出smoother= rvatureFlowlmageFilterType:|New();∥目录传给 outputDirectory指针。实例化一个平滑滤波器的对象const char outputDirectory=argv;smoother-> SetNumberoflterations(5):W平滑滤波然后,实例化 SeriesWritertype对象并创建智能指器的迭代次数设为5针 series writer,将 reader的输出写为D|COM格式序列smoother-> SetTime Step(0.125);∥平滑滤波器的像时间步长设为0125series Writer->SetInput(reader->Getoutput()smoother->SetInput(reader->Getoutputo)series Writer->Setlmagelo(gdcmIO)writer->Setlnput(smoother->GetOutputO)现在可以设置 G DCMSeriesFileNames在至此完成DCOM单张图像的读写。outputDirectory下产生新的文件名,然后将最新生成的序列二维DCOM图像的读写:这部分}要实现以文件文件传递给 seriesWriter集的方式读取一个DCOM序列图像,并在保持头文件信namesGenerator->SetoutputDirectoryoutputDire息不变的情况下保存为另一个DCOM序列图像的工作。 ctory);/S SN 1673-8225 CN 21-1539/R CODEN: ZLKHAH2419C1994-2011ChinaAcadcmicJOurnalElcctronicPublishingHousc.Allrightsrcscrved.http://www.cnki.nct@RterwWw.crtEr. org吕晓琪,等基于1K、VK和MFC的DCOM图像读写及显示seriesWriter->SetFileNames(names Generator->GetOutputFileNames();3结论最后一步也是最关键的一步,用 reader读取MetaDataDictionary并传递给 seriesWriter。之所以关键TK是算法设计者的一个有力助手,是医学图像处是因为 Meta Data Dictionary包含」所有输入的DcoM理工作者的案例研究算法仓厍,遺憾的是不提供Ul文件的头文件。VTK软件开发包强大的图形处理和可视化功能,却缺乏seriesWriter> SetMetaData Dictionary Array( reade实用、灵活的交互界面,而MFC具有强大的U开发能力。r->GetMetaData DictionaryArray ()结合三者的特点,作者通过对DCOM医学图像的读取与末了调用 seriesWriter的 Update)触发写程序,放在显小,将TK、VTK和MFC有机的结合起来,扬长避短,try/catch问洵块中,在此不再赘述。为三者集成环境下的软件开发做了一个初步的尝试,而22DCOM图像的显示本部分主要介绍在前述方法对于在此基础之上一者更强大功能的实现(诸如医学图实现的∨TK、ITK和MFC集成环境卜DCoM图像的显示像的分割与准、三维可视化、虚拟手术导航等)有待方法。在此,将利用丨TK读取的DC○M文件用VTK显示深入探讨与研究。在MFC单文档视图区,因为旨在说明方法所以未给出复杂的交互界面。4参考文献VTK薮据处理管道中采用了vkD|cOM|mageReader:类、 teNderer类、 vtkRenderwindow类、[1 Kitware Inc. NLM Insight Segmentation and registration ToolkitEB/OL」2005.http:/www.itκOrgtkRenderwindowInteractor类、 traCtor2D类、[21 Ackerman MJ. the visible human project. Proceedings of thelEEE,1998;863):501-504.v+ < Mapper类,并实例化各个类的对象并创建相21/mD(Q小用m时应智能指针。图7为显示效果,相应关键代码如下计算机技术发,200816(4=515 NEMA. The DICOM standard. Technical report, NEMA,Brain Map->SetInput(vtkreader->Getoutput()http://medial.nemaorg,2004[61http:/www.itk.org/courseWare/training/gettIngstartedl-webpageBrainActor->SetMapper (BrainMap);ren->AddActor(BrainActor)http:ww.kitwvare.comiproducts/books/vtkquide.htmlBenoit Regrain EricBoix, Mathieu and Jean Pierre roux. the「TK所读取的图像一经VTK显示后图像发牛了翻GDCM Library. CNRS, INSERM, INSALyon, UCBLyonhttp://www-creatis.insa-lyon.fr/publIc/gdcm转,并且是上下翻转而左右并不发生翻转,原因是ITK的坐标系统和VTK的坐标系统Y轴是相反的,所以为了来自本文课题的更多信息能正确显示图像还需要将Y轴进行翻转,可见这种翻转墓金资助:国家自然科学基金资助项目(60761002)可以发生在两种情形,一种是在K读入图像的时候翻作耆贡:笫一作者进行实验设计及评估,实验实施转即改变文件的读取方式,该种方式可参考∏TK的为笫二作者,资料收集为笫三作者,第二作者成文,第FliplmageFilter类,该类可以实现翻转任何坐标轴中的作者审校并对文章负责图像,对于本文屮情形可以使用一个[0,们翻转排列,列益冲突:课题未涉及任何厂家及相关雇主或其灺经表示X轴保持不变时对Y轴进行翻转;另一种是在K图济组织直接或间接的经济或利益的赞助像薮据凵经转换为ⅥTK图像数据后将新的TK图像数本文创新性:于201101以文章关键词为检索关键词据Y轴鄱转,这也正是本文实现的图像翻转方法。相应在CNK丨欻捃库、维普中文科技期刊数据库、万方学位论关键代码:文全文数据库, ELSEVIER数据库等多个数据库中检索未flipY->SetFilteredAxis(1)见具有相同创新点文章flipY->SetInputConnection(vtkreader->Getoutput方法创新:为医学图像读写及显示后一系列的玉学Eort()像处理工作搭建了灵活实用的实验平台,进而得到相关基BrainMap->SetInput(flipY->GetOutput():金资助。以上便是集成环境下的D|COM图像显小。o1994-2011ChinaAcadcmicJournalElcctronicPublishingHousc.Allrightsroscrved.http://www.cnki.nctCn.zg/ckf.com2420P.O. Box 1200, Shenyang 110004
- 2020-12-01下载
- 积分:1
泛函分析及其在自动控制中的应用
泛函分析及其在自动控制中的应用,韩崇昭,1991控制理论所硏究的闩越,可以概括为系统分析、系统踪合建模和优化。系统分包括系统的稳定性分析能控能观性分析、鲁棒性分析等,主要是分用以描述系统行为的算子的特生。传统的分析方法是实用的但只限于某些特定的系纯类型.例如传统的枫域分忻法只阳于讨论单输入单输出约线性定常橤统,而泛函分析所提供的分析方法,有可能村包括多输入多输出线性时变系统、分和参觐线性系统,以及某忠类型的柞线性系统进行统…的处理,从而获得更加一般的论。系统的综合包插挖湖器和补偿器的设计等,使系流得以镇定或获得某种性能,这是分析的逆河题。传统的综合屴沄礻仪费时费事丶而且解决问题的范園比较狭窄:现代的综合方法倾向干构造能用计算机灾现的某些算法迭代算法或递推算法的收敏性分析,以及闭环控制的稳定性分衔等,只有借助泛图分析所提供的工其,才有可能使问题得以解决系统建撓和系统的最优控制,一般是在某些约束条件下,对某个泛函拈标进行优化的问题,这更是泛函分析研究惹围闪的问题绕上所泛函分析已渗逶到控制理论和系统科学的各个分支。“饿夯千里日,更上一层楼”,控制斑论研究者只冇掌握泛函分析这…工具,才有可能…览当令研究潮流中“群峰竞秀,万水争流"“的局面第二章代数基础鉴于工科人学亩动控制类专业研究生#不具备系统的拙象代数的知识,而泛函分析这门课程又经带涉及抽象代数的某些基本慨念,所以首先在本章对必要的代数基础知识进行简要介绍,作为学习泛函分枥的预备知识。§2.]集合与映射2.1.1集合集合是数学上最基本門概念,难以绐出确切的定义:一般说:所谓集合就是指具有其种属性的事物全体。构成集合的每个事物称为该集合的元蓊。果合也简称集,其元素也简称元集合可用列其历有元素或江明其暑性来表示如A=i1,nz,…,n},A={a:a具有属性P}如果个集合由有限多个元构成,称之为有限集;如果由无限多个元构成,称之为元限集不含汪何元素的集合称为空集记为这,只含一个元的集合称为单点集。用r∈A表示“?是4中的元”或a属于A”;用a表示a不是A中的元"哎“a不属于有两个集合A和B:若A中的所有元到为B中的元,则称为A是B的子集或A蕴含于B哎包含A,记为A≌或BA任集A必是共自身的了集,而空集又是仕意集A的子集若集A是集R的子集:而B中至少有一个元不屑于4,则称A是程的真子集,或B真包含A,记为心二BBA。若集A是集B的了集,且B也是A的子策,闻称集A与集B相等,记为A=B2这个定义也经出用作集合相等的证明方法即任取∈A,得x∈B则推知4≌B;其次任取xB证得∈小则描知B≌A;从而证明A=B。在以后的证明中,我打经常采用某些撰用符号:“"表示“所有的",“彐"表示“存在”,“→“表示“由左面的结论推出岩面的结论”“台”表示左右两面相互推出”以柴合为元素的集合秋为集类。如字={A,B,C}其中的元A,B,C均是集合,是集类。A、B两个集合的所有元素共同构成的集合称为A和B的并集,记为AUB={2:x∈A或x∈开2。1,2桌合A1,A:;…,A的并業定义为U4=A∪AU…∪4一{x:xEA,或x∈A,“x∈A}(2.1.3)A、B两个集合的公共元素构成的集合称为A和B的交集,记为A∩B={x:x∈A且芏.B〔2.I.4集合A1,A2,A的交集定义为门A=A∩A∩“∩A={x:x∈A且x∈12“且xEA}(2.!5如果集合A与集合升没有公共元家,即A∩B=C,则称A与R不相交。属于集A而不属于集B的所有元构成的集合称为A与B的差集记为AB={xgxA旦x2.⊥,5巢合A和F的对称差记为A△B-(APU(4)2.7设U是一↑特定的集合,AS;称EA为A关于U的补集.记为A此时有AUA=UA∩A=2.1蘸2..9对于集类也可以定义并、交运算。设是一个集类其元的并和交分别为U{BB∈}={z:B∈郾,使z∈B2.1.10∩{B:B∈}{x;B∈密,使r∈乃2.1.11)例211设R表示实数集,R=RXR表示实数序对(x,y)的集合,集合A={(x,g)mx;∈R固定}表示欧氏平面R2上y=m直线上的总集;所有这些集合(直线〕构成一个集类x={A:mER在此情况下,集类m的交集为∩ FRA={(0,0)},即R的坐标原点;其并集为∪v∈RA=R2{0,y):|l|>0}即除去坐标纵轴但保留坐标原点整个R2平面。前面绐出的集合运算具有如下性质〔1)幂等律:AA=A,A∩A=4;〔)交换律:AB=BJA,A∩B-B∩A;I)结合律:A∪(BU)=(4∪B)∪C,A∩(B∩C)=(A∩B)∩C;Ⅳ)分配律:4U(B∩C)=(AUB∩(AUc),A(BUC)-(Anu(A门〔V)恒等律:A∪C=A,A∩U=手AUC=[, A=另外还有一些恒等关系式Ⅵ) de morgan律:A(B)-(AB)∩AC),A(BNC)=(AB)U:A〔〕对偶律:(UAA,(∩A=UⅧ)互补律:AAU,A∩A=8下面只证明(W)和(W)其余留给读者验证W)的证明:∈A(B)∈A,(BC)∈AB且x∈C∈AB且tAr∈AB)n(4C)同理可证第二式。()的证明;*∈(∪A)=∈U,艺点UA+2A且2年A1“且卖Az∈出且x∈A」且x∈术台∈∩4:同理可证第二式渠合A和B的笛卡尔积就是由序对构成的集∈Ab∈2.1,12儿素n和b称为序对(a,b)的分量。如果两个厅对的对应分垤相等则称其相等例如,(x,y)z(n-a,且y一b般情况下,集合的笛卡尔积不叫交换次序,即AX≠xA更一般地,A1A2…**A是一组集合其笛卡尔积定义为A,=1×Azx{「rTI:AE1,2}〔2.I.132.1.2关系由集合A到集合B的一个关系配,就匙的卡尔积A×H的一个集若R=AXB.序对(a)∈R则称n与!有关系P,记为ee,关系RAX称为二元关系,周为此时其中的元由序对钩成更灬般地,若K∈]1,则称其为多元关英。例2.1.2设A一{a,b,c}B={u,b,,d,吧其笛卡尔积为AB=(,,(,b),().(,t).(bq),bb),,(冫(,),出,(qb)(qc),(,d)}如果R表示“相等关系”,则R=Yb),(c,E)}二A×F关系R4XB的定义城是A的子集,即1oia∈A:b∈,使得2..11〕其值址是郾的子集,即ange=,∈B:n∈A使得ah15倒21.3设R={(x,y):,∈R,g-2}表示一个关系,显然它是RXR的一个子粜,即面R上一条抛物线的点集。其定义域domR=R,其值域 rangeR=1={y:y:0),即l半实轴设A是灬个集台,三A×A4是某种关系下给出几种特殊二元关系的定义I)自返关系:若aA→(a,a∈R;(I)对称关系:若(,b)∈B→(b,a)EB;Ⅲ)传递关系:a,b),b)∈R=n,)∈R;Ⅳ)反对称关系:若(,b),h2n)∈→m=b;甚于以上基本的二元关系还可以定义〔V)偏序关系;若是返、传递和反对称的关系:此时称A为出R规定的编序集合;〔)全序关系:若是偏关系,H任意a,b∈A,要么(+b)∈B,要么(b,a);W)等价关系:若F是肖返、传递和对称的关系。例2.1.4设R-(,9):x,∈R,≤匚R表示平面R上包括x-9直线在内的左上半平面,它是一个二元关系:国对()!x∈R,(x,x)∈,所以R是自返的;(2)任意(,y),(,=)∈R即有“到队而有x,即:x,∈R,所以是传的(3){意(x,y),(y,)∈R,具有y,≤x,从而z=y,新以R是反称的;综合起来即证刚R是个懶序关系(即关系“≤’,或者总按偏序关系“≤”規定的R是一个偏序集合。其实,R还是一个全序关系,因为除!R编序关系外,对仁意r∈R.要么x≤,费么ysx即要么(x,y)∈界,要么(y,x)∈P例2.15设A={a,b;,d,g,R={(),(b,)仂,b),(c,q),(+b),e,c)(c,),(d,n),,n),(,4},(,b),(e,e)}4A,它是A上的一个二元关系。因为(1)!x∈A(r,x)∈R,即E是白讴的;(2)意(x,y)(y,z)∈萨即有(x,∈F即R是传递的;〔3若(x,y)(g,x)∈R,即有xy,即是反对称的;所以k是一个偏序关系。但是,为e,∈A,(e)R且(e,c)B,所以不是灬个全序关系若R实A×A是A上的一个偏序关系,则I)A的任一子集B按关系R仍是一个偏详集合,即B(BXB》∩是B上的偏序关系若B按关系R还是一个全序集合,则称其为A的个全序子集。[)设b∈4,若对x∈A均有r助,称b为A的末位元系()设a∈A若对x∈A均有Rx,称a为A的初位元Ⅳ)若b∈A对任意t∈A且l则称b为A的一个最大元素。若m∈A对任意x∈A且→=a则称a为A的一个最小元亲例2.L.6设A={7,4,23,2,5)为一有限整数粜,定义A上的一个二元关系R_{∈A,x≤y2),(4,4),(415),〔47),(4,12),(2,12)(3,3),(3,4),(35),(3;73,12),(2,2),(2,3)、(2,2(2,5),(2,7,(2,12),(5,5),(5,7〕,(苏,2)}显然,孩关系R(即“≤”),A是…个全序集合同时是A的韧位元,也是最小元:12是A的末位兀,也是最大元例2.L.725的关系星可以用图2.1.表示,共中a,即存在有向连线由x到yA的仟一子集加D一{e1b,a}按关系B仍是个偏序集合,而且此时B还是A的一个全序子集在A中按关系R,是末位元也是量大元和c均为A献最小元但A无初位元,月为e和c不存在关系R讲而,假定R是集合A上时一个编序关系,对于B4,则有M)r∈A称为由规定的B的一个上界,当且仅当图2.1.1关系R对∈B有xR。如果a是由R规定的P的一个上界,而对于由R规定的B的任意其它上界p均有aR,则称a为B的最小上界,或上确界.记为m=Lp3()a∈A称为由R规定的的一个下界,当且仅当对yr∈B有aR。如果a是由R规定的B的一个下界,而对于由R规定的B的任意其它下界A,均有山B则称t为B的最大下界或下确界,记为=infB。例2.1.8设A={z∈R:01二R为一闭区何,而B一{x∈R:.2
- 2021-05-07下载
- 积分:1