• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于圖像分割的網(wǎng)絡(luò)API設(shè)計與實(shí)現(xiàn)

      2016-12-23 11:18:52馮春雨
      電子設(shè)計工程 2016年24期
      關(guān)鍵詞:編譯器調(diào)用石家莊

      馮春雨,趙 建,趙 耀

      (1.河北省科學(xué)院應(yīng)用數(shù)學(xué)研究所 河北 石家莊050081;2.河北師范大學(xué) 河北 石家莊050024;3.中國人民銀行石家莊中心支行 河北 石家莊050000)

      基于圖像分割的網(wǎng)絡(luò)API設(shè)計與實(shí)現(xiàn)

      馮春雨1,趙 建2,趙 耀3

      (1.河北省科學(xué)院應(yīng)用數(shù)學(xué)研究所 河北 石家莊050081;2.河北師范大學(xué) 河北 石家莊050024;3.中國人民銀行石家莊中心支行 河北 石家莊050000)

      通過圖像分割算法在腦圖像中自動分割出腦室并計算腦室面積,可以彌補(bǔ)人工診斷的主觀性和局限性,為臨床診療提供了更加客觀、全面的決策支持。另外,通過網(wǎng)絡(luò)API的形式提供服務(wù),復(fù)雜的算法運(yùn)算在服務(wù)器端完成,使用者只需在瀏覽器中進(jìn)行簡單的操作就可獲得想要的結(jié)果。此方法不僅方便快捷,同時還大大降低對硬件資源的要求。

      圖像分割;網(wǎng)絡(luò)API;輔助診斷;JAVA本地接口

      近年來,腦部疾病以其高發(fā)病率、高死亡率、高致殘率、高復(fù)發(fā)率及多并發(fā)癥等特點(diǎn)成為威脅人類健康的重要因素。據(jù)報道,我國每年有超過200多萬人發(fā)生腦疾,其中我國每年死于腦疾病患者約有100萬以上,腦疾病病死率約為45%。因而,如何借助于醫(yī)學(xué)影像檢查,定性和定量地分析腦組織,進(jìn)而分析與腦疾病的關(guān)系已經(jīng)成為當(dāng)前的研究熱點(diǎn)。

      核磁共振成像(MRI)是對腦部疾病進(jìn)行診斷的重要手段[1]。由于大腦結(jié)構(gòu)的復(fù)雜性和個體差異性,準(zhǔn)確地在MRI顱腦圖像中測量感興趣的腦組織是一項極為復(fù)雜和困難的任務(wù)。過去,定量化的測量腦組織尚不精確,病情診斷方面往往依賴醫(yī)生的經(jīng)驗。隨著計算機(jī)的應(yīng)用與發(fā)展,醫(yī)院管理信息化和智能化水平的不斷提高,醫(yī)院信息系統(tǒng)在醫(yī)學(xué)圖像的管理、分析和輔助醫(yī)生診斷中發(fā)揮著不可替代的作用[2]。

      本論文中通過前期改良的圖像分割算法在腦圖像中自動分割出腦室并計算腦室面積,可以彌補(bǔ)人工診斷的主觀性和局限性,為臨床診療提供了更加客觀、全面的決策支持。另外,通過網(wǎng)絡(luò)API的形式提供服務(wù),復(fù)雜的算法運(yùn)算在服務(wù)器端完成,使用者只需在瀏覽器中進(jìn)行簡單的操作就可獲得想要的結(jié)果。此方法不僅方便快捷,同時還大大降低對硬件資源的要求。

      1 總體設(shè)計思路

      因圖像分割算法涉及許多復(fù)雜的數(shù)學(xué)運(yùn)算[3-7],如果采用常用的編程語言(C/C++、Java等)實(shí)現(xiàn)的話編程工作量將非常巨大。Matlab是面向科學(xué)計算的常用軟件,具有高效的數(shù)值計算及符號計算功能,且語法特征與C++語言極為相似,簡單易用[8]。使用Matlab可以輕松完成一些繁雜的數(shù)學(xué)運(yùn)算,因此對于一些復(fù)雜的算法可以先通過Matlab實(shí)現(xiàn),然后被其它編程語言調(diào)用。在C程序中調(diào)用Matlab程序有兩種方式[9-10]。第一種是C程序直接調(diào)用Matlab引擎,第二種是將Matlab程序打包成動態(tài)鏈接庫文件(DLL)在C語言環(huán)境下調(diào)用。兩種方式各有優(yōu)缺點(diǎn),本文中采用第二種方式。首先利用Matlab實(shí)現(xiàn)圖像分割算法[11-12],然后將Matlab程序編譯成C可調(diào)用的Dll,編寫C接口及數(shù)據(jù)轉(zhuǎn)換程序并打包成DLL,最后通過JNI調(diào)用C編譯生成的DLL完成網(wǎng)絡(luò)API的設(shè)計[13]。

      2 前期準(zhǔn)備

      文中實(shí)驗中使用的計算機(jī)主要配置為 intel i7-3770 CPU,內(nèi)存大小4G,硬盤空間500G。操作系統(tǒng)為Window XP,C編譯器使用VC++6.0,Matlab使用 Matlab9.0 32位版本,Java環(huán)境使用 JDK 1.7.0_67版本,Web應(yīng)用服務(wù)器使用Tomcat 7.0.61版本。C編譯器和Matlab選取時只要在Matlab中能夠找到C編譯器就行,一般來說只要C編譯器的版本不高于 Matlab版本就能達(dá)到此要求。如 Matlab2012b和VS2010/VS2012,Matlab2014和 VS2010/2012等等。 利用Matlab編寫改進(jìn)后的圖像分割算法,文中算法主程序為Demo_LGD.m文件。

      3 Matlab編譯器設(shè)置

      1)在Matlab的command window里面輸入mex–setup,Matlab詢問是否定位計算機(jī)上安裝的編譯器,輸入y,Matlab會列出所有電腦上所有的編譯器,這里選擇2,即VC++6.0,如圖1所示。

      圖1 選擇編譯器

      2)選擇build工具。完成以上步驟后,輸入mbuild-setup,選擇build工具,過程跟上一步類似,結(jié)果見圖2。

      圖2 選擇build工具

      4 M文件編譯

      在Matlab的command window里面敲入命令:mcc-W cpplib:LGD-T link:lib Demo_LGD,其中,mcc是Matlab提供的編譯命令,-W是控制編譯之后的封裝格式,cpplib是指編譯成C++的lib,cpplib冒號后面指定編譯后庫的名字,-T表示目標(biāo),link:lib表示要連接到一個庫文件的目標(biāo),目標(biāo)的名字是后面的Demo_LGD,即你寫的m函數(shù)的名字。詳細(xì)說明可在Matlab命令窗口敲入help mcc或mcc-?查看幫助。

      Matlab完成指令運(yùn)行后,在Matlab工程目錄下面會出現(xiàn)多個文件,其中對我們來說有用的是LGD.cpp,LGD.dll,LGD.h和LGD.lib這4個文件。LGD.dll是編譯好的動態(tài)鏈接庫,實(shí)現(xiàn)圖像分割的函數(shù)封裝在個文件里面,LGD.h是對應(yīng)的頭文件,在C里面調(diào)用這個函數(shù)的時候,需要include這個頭文件,在這個頭文件的最后,你可以看到下面的內(nèi)容:

      這就是Demo_LGD的C函數(shù)的聲明。nargout表示輸出變量的個數(shù)area1,area2,infile,outfile,X,Y,InforDef,Compress對應(yīng)m函數(shù)的幾個變量。注意,除nargout外其它變量的類型都是mwArray。mwArray是一個類,是Matlab提供的一個特殊的變量類型。C程序調(diào)用Matlab程序時需進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換,這些內(nèi)容會在第6節(jié)中提到。

      5 VC環(huán)境設(shè)置

      為了在C程序能夠調(diào)用上一節(jié)生成的dll和lib文件,支持Java編譯(JNI用到),需對VC環(huán)境進(jìn)行設(shè)置,具體步驟如下:

      1)打開VC程序并建立一個動態(tài)鏈接庫工程,這里起名為MRISegment,將上面生成的LGD.cpp,LGD.dll,LGD.h和LGD.lib 4個文件拷貝到工程目錄下。

      2)在tool-option-directory里面設(shè)置include頭文件和lib的路徑。首先是include中添加Matlab和JAVA頭文件的路徑,如圖3最下面3行所示,根據(jù)具體情況選擇Matlab和JDK軟件的安裝目錄。

      圖3 添加頭文件路徑

      然后添加lib的位置,不僅需要添加Matlab靜態(tài)庫的位置,而且也要把剛編譯生成的lib位置添加進(jìn)來,如圖4最后兩行所示。

      圖4 添加鏈接庫文件路徑

      3)添加所需lib文件。路徑設(shè)置好后,在project Settinglink-Object/library modules里面加入 mclmcrrt.lib、libmx.lib、libmat.lib、mclmcr.lib和LGD.lib 4個文件,文件名之間用空格隔開,如圖5所示。

      圖5 添加鏈接庫文件

      6 JNI及C接口程序編寫

      如果網(wǎng)站管理后臺采用C語言編寫,可以直接調(diào)用Matlab打包生成的DLL。如果使用Java語言編寫,則無法直接調(diào)用Matlab打包生成的DLL,可以采用JNI(Java Native Interface)形式快速有效的完成程序間的調(diào)用[14-15]。本節(jié)簡單介紹通過JNI調(diào)用算法DLL的流程。

      1)新建一個txt文件,起名為MRISegment,將后綴名改為java,該文件主要定義一個java類實(shí)現(xiàn)對調(diào)用函數(shù)的封裝。內(nèi)容如下:

      2)生成class文件。調(diào)出命令行程序,將路徑設(shè)置為上面所建java文件所在路徑(或者下一步j(luò)avac命令中文件帶有絕對路徑)[16],輸入javac MRISegment.java,生成MRISegment. class文件。

      3)生成h文件。將路徑設(shè)置為MRISegment.class文件所在路徑(或者下一步j(luò)avah命令中文件帶有絕對路徑),輸入javah-jni MRISegment,生成MRISegment.h文件,并將該文件拷貝到MRISegment工程目錄下。

      4)編譯生成C動態(tài)鏈接庫。首先在MRISegment工程中新建cpp文件。該cpp主要實(shí)現(xiàn)Java和C之間、C和Matlab之間數(shù)據(jù)格式的轉(zhuǎn)換以及MRISegment.h文件中定義的函數(shù)[17]。編譯工程生成MRISegment.dll。

      7 API調(diào)用頁面顯示

      前臺頁面主要負(fù)責(zé)圖像的顯示以及坐標(biāo)點(diǎn)、參數(shù)的輸入以及處理后圖像的呈現(xiàn),數(shù)據(jù)提交到后臺調(diào)用第六節(jié)中生成的MRISegment.dll。圖像處理完畢后將結(jié)果返回給前臺頁面。圖6~8為實(shí)現(xiàn)過程的頁面截圖。

      圖6 加載圖像

      圖7 選擇目標(biāo)區(qū)域

      圖8 結(jié)果顯示

      8 結(jié) 論

      文中通過計算機(jī)自動分割出腦室并計算腦室面積,一定程度上彌補(bǔ)了人工診斷的主觀性和局限性。另外,以網(wǎng)絡(luò)API的形式為醫(yī)務(wù)人員提供服務(wù),使用人員不需購置昂貴的設(shè)備,可以通過任何一個帶有網(wǎng)絡(luò)的普通PC或者移動設(shè)備隨時隨地獲取服務(wù),既方便快捷又大大節(jié)省了使用方的費(fèi)用。因此,該方式具有較高的商業(yè)價值,可在縣級以上醫(yī)療機(jī)構(gòu)大面積推廣,產(chǎn)生較好的經(jīng)濟(jì)效益。

      [1]陳武凡,康立麗.MRI原理與技術(shù)[M].北京:科學(xué)出版社,2012.

      [2]章毓晉.圖像工程[M].第2版.北京:清華大學(xué)出版社,2007.

      [3]Song Z,Tustison N,Avants B,et al.Integrated graph cuts for brain MRI segmentation.Proceedings of Medical Image[J]. Computing and Computer Aided Intervention,2006:831-838.

      [4]Kapur T,Grimson W E,Wells W M,et al.Segmentation of brain tissue from magnetic resonance images [J].Medical Image Analysis,1996,1(2):109-127.

      [5]Piovano J,Rousson M,Papadopoula T.Efficient segmentation of piecewise smooth image[J].SSVM,2007:709-720.

      [6]Shi F,F(xiàn)an Y,Tang S,et al.Neonatal brain image segmentation in longitudinal MRl studies[J].Neurvlmage,2010,49(1):391-400.

      [7]陳志彬,邱天爽,Ruan S,一種基于FCM和Level Set的MRI醫(yī)學(xué)圖像分割方法[J].電子學(xué)報,2008,36(9):1733-1736.

      [8]楊丹,趙海濱,龍哲.MATLAB圖像處理實(shí)例詳解 [M].北京:清華大學(xué)出版社,2013.

      [9]劉維.精通Matlab與C/C++混合程序設(shè)計[M].第4版.北京:北京航空航天大學(xué)出版社,2015.

      [10]明日科技.Visual C++從入門到精通[M].第3版.北京:清華大學(xué)出版社,2012.

      [11]Wang L,Li C,Sun Q,et al,Active contours driven by local and global intensity fitting energy with application to brain MR images segmentation[J].Computerized Medical Imaging and Graphics,October 2009,33(7):520-531.

      [12]Wang L,Chen Y,Pan X,et al.Level set segmentation of brain magnetic resonance images based on local Gaussian distribution fitting energy [J].Journal of Neuroscience Methods,2010,188(2):316-325.

      [13]霍斯特曼,科內(nèi)爾.Java核心技術(shù) 卷II高級特性[M].陳昊鵬,譯.北京:機(jī)械工業(yè)出版社,2014.

      [14]李東博.HTML5+CSS3從入門到精通[M].北京:清華大學(xué)出版社,2013.

      [15]李寧,劉巖,張國平.Java Web編程實(shí)戰(zhàn)寶典:JSP+Servlet +Struts 2+Hibernate+Spring+Ajax[M].北京:清華大學(xué)出版社,2014.

      [16]王坤.基于SVPWM的STATCOM設(shè)計及實(shí)現(xiàn)[J].陜西電力,2011(1):11-15.

      [17]朱向東,呼延霄,劉軼,等.基于Matlab/dSPACE的無刷直流電機(jī)雙閉環(huán)控制實(shí)時仿真[J].火箭推進(jìn),2015(1):117.

      Design and implementation of network API based on image segmentation

      FENG Chun-yu1,ZHAO Jian2,ZHAO Yao3
      (1.Applied Mathematics Research Institute of Hebei Academy of Science,Shijiazhuang 050081,China;2.Hebei Normal University,Shijiazhuang 050024,China;3.The People’s Bank of China Shijiazhuang Central Sub-Branch,Shijiazhuang 050000,China)

      Auto-segment of ventricle through image segmentation algorithm and calculating its area,which can make up the subjectivity and limitation of artificial diagnosis and provide move objective and comprehensive decision support for clinic treatment.Besides,through network API,the complicate algorithm can be run on server,and the user can get what they want by simple operation in web browser.So,this way is not only convenient and efficient,but also low hardware resource requirement.

      image segmentation;network API;auxiliary diagnosis;JNI

      TN919.8

      A

      1674-6236(2016)24-0169-04

      2015-11-16 稿件編號:201512179

      馮春雨(1982—),男,河北邢臺人,碩士,助理研究員。研究方向:機(jī)器學(xué)習(xí),信息安全及圖像處理。

      猜你喜歡
      編譯器調(diào)用石家莊
      石家莊曉進(jìn)機(jī)械制造科技有限公司
      肉類研究(2022年7期)2022-08-05 04:47:20
      基于相異編譯器的安全計算機(jī)平臺交叉編譯環(huán)境設(shè)計
      核電項目物項調(diào)用管理的應(yīng)用研究
      LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
      基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
      人民幣緣何誕生在石家莊
      通用NC代碼編譯器的設(shè)計與實(shí)現(xiàn)
      利用RFC技術(shù)實(shí)現(xiàn)SAP系統(tǒng)接口通信
      編譯器無關(guān)性編碼在微控制器中的優(yōu)勢
      石家莊衡水商會
      通渭县| 沈丘县| 吉水县| 海安县| 房产| 诸城市| 永康市| 皮山县| 郸城县| 桂平市| 宁德市| 武强县| 四川省| 铅山县| 天等县| 莱阳市| 泰和县| 利川市| 文山县| 穆棱市| 南澳县| 苍梧县| 枣阳市| 仙游县| 文水县| 揭东县| 北海市| 都安| 盘锦市| 渭源县| 潜江市| 贵州省| 托克托县| 阿瓦提县| 宜阳县| 海淀区| 石首市| 乐至县| 阳高县| 连云港市| 临清市|