国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于C語言和MATLAB的混合編程在醫(yī)學(xué)圖像處理課程中的應(yīng)用

2018-11-17 01:06趙若晗
軟件 2018年10期
關(guān)鍵詞:牡丹江C語言醫(yī)學(xué)影像

韓 婷,劉 暢,趙若晗,董 默,劉 欣

?

基于C語言和MATLAB的混合編程在醫(yī)學(xué)圖像處理課程中的應(yīng)用

韓 婷,劉 暢*,趙若晗,董 默,劉 欣

(牡丹江醫(yī)學(xué)院,黑龍江 牡丹江 157000)

利用計算機(jī)語言編程完成圖像處理教學(xué)任務(wù)是目前國內(nèi)關(guān)于《醫(yī)學(xué)圖像處理》課程的主要的教學(xué)方法,而應(yīng)用計算機(jī)語言混合編程完成課程學(xué)習(xí)對學(xué)生學(xué)好這門課程乃至今后的就業(yè)及工作有著重要的意義。本文針對學(xué)生學(xué)習(xí)醫(yī)學(xué)圖像處理本科教學(xué)內(nèi)容提出了一種新的混合編程教學(xué)方法,針對不同專業(yè)不同教學(xué)內(nèi)容采用以C語言和MATLAB混合編程的方式進(jìn)行圖像處理實踐教學(xué),收到了良好的效果。

醫(yī)學(xué)圖像處理;MATLAB;軟件實踐教學(xué);C語言

0 引言

醫(yī)學(xué)圖像處理是一門綜合了數(shù)學(xué)、計算機(jī)科學(xué)和醫(yī)學(xué)影像學(xué)等學(xué)科的交叉科學(xué)[1]。其在醫(yī)學(xué)院校中尤其針對影像、影技、生物醫(yī)學(xué)工程專業(yè)屬于重點學(xué)習(xí)內(nèi)容,是必修的專業(yè)課之一,學(xué)習(xí)本課程對學(xué)生今后就業(yè)從事工作打下一定的基礎(chǔ)。除此之外隨著計算機(jī)技術(shù)不斷的發(fā)展進(jìn)步,醫(yī)學(xué)成像及圖像處理在生命科學(xué)研究、醫(yī)學(xué)診斷及臨床治療等方面起著越來越重要的作用。醫(yī)學(xué)影像圖片的質(zhì)量高低直接影響著醫(yī)生對疾病的診斷能力[6]。醫(yī)學(xué)圖像處理技術(shù)已在現(xiàn)代醫(yī)學(xué)中占有了舉足輕重的地位[1]。

我校目前招收醫(yī)學(xué)影像學(xué)、醫(yī)學(xué)影像技術(shù)及生物醫(yī)學(xué)工程專業(yè)的學(xué)生,以上三個專業(yè)學(xué)生均在大學(xué)三年級學(xué)習(xí)《醫(yī)學(xué)圖像處理》課程,由于醫(yī)學(xué)圖像處理課程需要一定的數(shù)學(xué)基礎(chǔ),因此學(xué)生在學(xué)習(xí)的過程中會出現(xiàn)“跟不上,聽不懂,學(xué)不會”的情況,由于醫(yī)學(xué)院校中針對5年制醫(yī)學(xué)影像學(xué)專業(yè)數(shù)學(xué)學(xué)習(xí)內(nèi)容較潛,因此在理論課學(xué)習(xí)中在圖像處理的算法方面并未做重點講解,而作為工科的生物醫(yī)學(xué)工程和理科專業(yè)醫(yī)學(xué)影像技術(shù)專業(yè)數(shù)學(xué)學(xué)習(xí)深入,因此如何區(qū)分的針對不同專業(yè)開展醫(yī)學(xué)圖像處理課程一直是一個難點,在以往的教學(xué)經(jīng)驗中,針對不同專業(yè)我院采用,不同學(xué)時、不同授課內(nèi)容、不同實驗操作及不同考核內(nèi)容的“四不同”原則進(jìn)行,但由于授課老師均為同一批教師,因此在講課中難免會出現(xiàn)對不同專業(yè)講課出現(xiàn)重復(fù)甚至超出講課范圍的現(xiàn)象。除此受限數(shù)學(xué)基礎(chǔ)之外,醫(yī)學(xué)圖像處理課程還要求學(xué)生有一定的計算機(jī)基礎(chǔ),包括計算機(jī)語言和操作,醫(yī)學(xué)影像學(xué)、醫(yī)學(xué)影像技術(shù)專業(yè)在C語言學(xué)習(xí)中較比生物醫(yī)學(xué)工程專業(yè)學(xué)習(xí)計算機(jī)語言內(nèi)容較少,這又是一個如何區(qū)專業(yè)而合理安排授課內(nèi)容的一大難點。在2017年下半年,我院以2015級學(xué)生展開試點教學(xué),針對醫(yī)學(xué)影像學(xué)、醫(yī)學(xué)影像技術(shù)及生物醫(yī)學(xué)工程專業(yè)的醫(yī)學(xué)圖像處理課程采用了新的教學(xué)模式,即聯(lián)合C語言及MATLAB語言的混合編程方式,將其在醫(yī)學(xué)圖像處理實踐課程中加以應(yīng)用,同時結(jié)合圖像處理實驗箱,以軟硬件相結(jié)合的方式完成醫(yī)學(xué)圖像處理實踐教學(xué)環(huán)節(jié),本篇文章將以實完成教學(xué)改革內(nèi)容的介紹。

1 教學(xué)環(huán)節(jié)介紹

1.1 計算機(jī)語言的學(xué)習(xí)

(1)C語言的學(xué)習(xí)

在試點教學(xué)改革中,學(xué)生在大二上學(xué)期完成C語言的學(xué)習(xí)任務(wù),尤其針對醫(yī)學(xué)影像學(xué)專業(yè),要求學(xué)生以VC++6.0或者QT為學(xué)習(xí)平臺,由于C語言語法繁瑣,學(xué)習(xí)困難,要求學(xué)生以看懂代碼為主要學(xué)習(xí)目標(biāo),無需編程技巧。

(2)MATLAB學(xué)習(xí)

在試點教學(xué)改革中,學(xué)生在大二下學(xué)期完成MATLAB語言的學(xué)習(xí)任務(wù),其中生物醫(yī)學(xué)工程專業(yè)和醫(yī)學(xué)影像技術(shù)專業(yè)以30學(xué)時的必修課課程學(xué)習(xí)作為基礎(chǔ),醫(yī)學(xué)影像學(xué)專業(yè)學(xué)生以20學(xué)時選修課課程學(xué)習(xí)作為基礎(chǔ),無論課時多少,一定要保證學(xué)生對MATLAB軟件操作熟悉,能夠使用MATLAB完成簡單的編程及功能實現(xiàn),不同于C語言的學(xué)習(xí),要求所有學(xué)生均可實現(xiàn)簡單編程。(20學(xué)時的學(xué)習(xí)可以滿足此要求)

1.2 醫(yī)學(xué)圖像處理理論基礎(chǔ)學(xué)習(xí)

關(guān)于醫(yī)學(xué)院校的圖像處理與工科院校的圖像處理課程最大的區(qū)別在于,第一,醫(yī)學(xué)圖像處理不過分要求學(xué)生掌握算法技巧,往往更注重獲取圖像處理結(jié)果及通過操作獲取結(jié)果的方法;第二,醫(yī)學(xué)圖像處理需要學(xué)生針對醫(yī)學(xué)圖像有一定的了解,大型醫(yī)療設(shè)備如CT、MRI等獲取的圖片可以完成基本圖像的閱讀工作,這樣才能完成后續(xù)的處理任務(wù)。

我院在醫(yī)學(xué)圖像處理的理論學(xué)習(xí)中以以下幾個方面進(jìn)行展開:

(1)醫(yī)學(xué)圖像處理基本概念及基礎(chǔ)(4學(xué)時)

(2)人眼的視覺基礎(chǔ)及圖像處理前的準(zhǔn)備(6學(xué)時)

(3)圖像處理的基本運算、變換、融合、分割及重建可視化(20學(xué)時)

1.3 醫(yī)學(xué)圖像處理實踐內(nèi)容學(xué)習(xí)

學(xué)生在有了上述數(shù)學(xué)、計算機(jī)語言及圖像處理理論基礎(chǔ)的前提下,可以開展本篇文章所涉及的基于C語言和MATLAB混合編程的實踐教學(xué)方法,首先整理可以使用此種方法的實踐教學(xué)內(nèi)容,根據(jù)理論學(xué)習(xí)的內(nèi)容不同,具體實踐內(nèi)容如表1所示。

表1 不同專業(yè)下醫(yī)學(xué)圖像處理實驗內(nèi)容編程開展情況

Tab.1 Content programming of medical image processing experiments under different professions

從表1中可以看出,除了較為復(fù)雜的三維重建沒有使用C語言編程外,其他醫(yī)學(xué)圖像處理功能全部使用兩種編程語言完成。

2 基于C語言和MATLAB混合編程的實現(xiàn)

下面將針對具體實例完成醫(yī)學(xué)圖像的處理,以對比兩種處理方式的應(yīng)用。

針對醫(yī)學(xué)圖像的邊緣檢測(Sobel)我們分別采用兩種方式進(jìn)行處理。

2.1 C語言的醫(yī)學(xué)圖像邊緣檢測

程序核心代碼:

for(i=0;i>1;i++)

{

for(j=0;j>1;j++)

{

/*屏幕上奇數(shù)行進(jìn)行處理*/

d1 = (*(Uint8 *)(tempSrcYbuffer + (288+i)*numPixels + (j-1))) +

2*(*(Uint8 *)(tempSrcYbuffer + (288+i)*numPixels + j)) +

(*(Uint8 *)(tempSrcYbuffer + (288+i)*numPixels + (j+1))) -

(*(Uint8 *)(tempSrcYbuffer + (288+i-1)*numPixels + (j-1))) -

2*(*(Uint8 *)(tempSrcYbuffer + (288+i-1)*numPixels + j)) -

(*(Uint8 *)(tempSrcYbuffer + (288+i-1)*numPixels + (j+1)));

d2 = (*(Uint8 *)(tempSrcYbuffer + (288+i)*numPixels + (j+1))) -

(*(Uint8 *)(tempSrcYbuffer + (288+i)*numPixels + (j-1))) +

2*(*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j+1))) -

2*(*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j-1))) +

(*(Uint8 *)(tempSrcYbuffer + (288+i-1)*numPixels + (j+1))) -

(*(Uint8 *)(tempSrcYbuffer + (288+i-1)*numPixels + (j-1)));

intTemp = d1>d2?d1:d2;

if(intTemp<0)

{

intTemp = 0;

}

if(intTemp>255)

{

intTemp = 255;

}

//屏幕上奇數(shù)行進(jìn)行處理

*(Uint8 *)(tempDisYbuffer + i*numPixels + j) = intTemp;

/*屏幕上偶數(shù)行進(jìn)行處理*/

d1 = (*(Uint8 *)(tempSrcYbuffer + (i+1)*numPixels + (j-1))) +

2*(*(Uint8 *)(tempSrcYbuffer + (i+1)*numPixels + j)) +

(*(Uint8 *)(tempSrcYbuffer + (i+1)*numPixels + (j+1))) -

(*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j-1))) -

2*(*(Uint8 *)(tempSrcYbuffer + i*numPixels + j)) -

(*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j+1)));

d2 = (*(Uint8 *)(tempSrcYbuffer + (i+1)*numPixels + (j+1))) -

(*(Uint8 *)(tempSrcYbuffer + (i+1)*numPixels + (j-1))) +

2*(*(Uint8 *)(tempSrcYbuffer + (i+288)*numPixels + (j+1))) -

2*(*(Uint8 *)(tempSrcYbuffer + (i+288)*numPixels + (j-1))) +

(*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j+1))) -

(*(Uint8 *)(tempSrcYbuffer + i*numPixels + (j-1)));

intTemp = d1>d2?d1:d2;

if(intTemp<0)

{

intTemp = 0;

}

if(intTemp>255)

{

intTemp = 255;

}

//屏幕上偶數(shù)行進(jìn)行處理

*(Uint8 *)(tempDisYbuffer + (i+288)*numPixels + j) = intTemp;

}

}

處理效果如圖1所示。

2.2 MATLAB的醫(yī)學(xué)圖像邊緣檢測

程序核心代碼:

I=imread('CT.png');

BW1 = edge(I,'sobel');

Figure;

imshow(BW1);

處理效果如圖2所示。

圖2 MATLAB處理效果

2.3 兩種方式的對比說明

從代碼的復(fù)雜程度上看C語言遠(yuǎn)超出MATLAB語言,這也是預(yù)期的效果,MATLAB作為高級語言及集成的環(huán)境很好的將代碼簡化,從實際處理的效果看并沒有太大的區(qū)別。但是,在C語言的處理過程中,學(xué)生充分的掌握了Sobel算子下的邊緣檢測是通過何種方式實現(xiàn)的,結(jié)合理論知識可以更好的掌握該種圖像處理方法,而MATLAB是無法實現(xiàn)的,只能查看處理結(jié)果。

3 結(jié)論

本文對比了MATLAB和C語言在醫(yī)學(xué)圖像處理實踐中的應(yīng)用,目前為止采用C語言和MATLAB結(jié)合的實踐教學(xué)方式已經(jīng)針對一屆學(xué)生全面展開,此種混合編程的方式主要有以下優(yōu)點:

(1)可以根據(jù)圖像處理的需求采用不同的方式處理,若只關(guān)注處理結(jié)果我們可以使用MATLAB,其編程簡單高效,處理圖像速度較快,更容易使學(xué)生接受;若需要了解處理過程的詳細(xì)內(nèi)容,應(yīng)使用C語言的處理方式,C代碼更復(fù)雜且詳細(xì)概況了處理內(nèi)部的實際方式,可以讓學(xué)生透徹的了解圖像處理原理,更深刻的學(xué)透處理方法。

(2)根據(jù)課程安排內(nèi)容可以看出,不同專業(yè)不同實驗內(nèi)容采用的方式是不同的,我們可以根據(jù)學(xué)生學(xué)習(xí)的實際情況做調(diào)整,這種方式可以更靈活的為不同層次的學(xué)生提供最好的學(xué)習(xí)方式。

在一學(xué)期的實驗教學(xué)過程中,通過課堂演示及學(xué)生上機(jī)實驗情況來看,使用混合編程的教學(xué)方式不僅極大的增加對醫(yī)學(xué)圖像處理課程學(xué)習(xí)產(chǎn)生了興趣,同時也對計算機(jī)、數(shù)學(xué)等相關(guān)學(xué)科有了更深入的學(xué)習(xí),為學(xué)生就業(yè)考研提供了更深層次的基礎(chǔ)。

在接下來的教學(xué)改革中,我們將繼續(xù)使用新的軟件配合C語言和MATLAB,目前的研究中正在探索使用醫(yī)學(xué)圖像處理專用軟件Mimics,這也是未來我們針對醫(yī)學(xué)圖像處理教學(xué)改革的主要方向。結(jié)合多種語言和軟件混合編程的方式多樣化,立體化,具有較強的實用和推廣價值。

[1] 董默, 蘇奎, 周志尊等. 生物醫(yī)學(xué)工程專業(yè)《醫(yī)學(xué)圖像處理》實踐教學(xué)的改革[J]. 軟件, 2017, 38(2): 37-41.

[2] 鄧華. 淺談Matlab在數(shù)字圖像處理中的應(yīng)用[J]. 科技資訊. 2006(8): 128-129.

[3] 周志尊, 孫璐等. CT與MRI融合技術(shù)的顱內(nèi)腫瘤應(yīng)用研究[J]. 軟件, 2017, 38(5): 34-38.

[4] 陳廣新等. 股骨3D模型構(gòu)建在股骨頭置換手術(shù)中的應(yīng)用研究[J]. 軟件, 2017, 38(12): 75-80.

[5] 康曉東. 醫(yī)學(xué)影像圖像處理[M]. 北京:人民衛(wèi)生出版社, 2009.

[6] 聶東升、邱劍鋒、鄭建立. 醫(yī)學(xué)圖像處理[M]. 上海:復(fù)旦大學(xué)出版社, 2014.

[7] 章毓晉. 圖像處理和分析[M]. 北京:清華大學(xué)出版社, 2001.

[8] 高向軍, 田聯(lián)房, 王立非等. 利用MATLAB實現(xiàn)醫(yī)學(xué)圖像處理與分析[J]. 計算機(jī)應(yīng)用, 2008, 25(6): 1.

[9] 董默, 韓婷等. MATLAB在數(shù)字圖像處理中的應(yīng)用[J]. 科技創(chuàng)新導(dǎo)報, 2016, (12): 75/115.

[10] 董默, 趙若晗等. 醫(yī)學(xué)圖像三維重建系統(tǒng)設(shè)計與應(yīng)用[J]. 軟件, 2018, 39(1): 87-90.

Application of Mixed Programming Based on C Language and MATLAB in Medical Image Processing Course

HANG Ting, LIU Chang*, ZHAO Ruo-han, DONG Mo, LIU Xin

(Mudanjiang Medical University, Mudanjiang City, Heilongjiang 157000, China)

Using computer language programming to complete the teaching task of image processing is the main teaching method of medical image processing. The application of computer language mixed programming to complete the course of learning has great significance for students to learn this course and even for future employment and work.In this paper, a new mixed programming teaching method is proposed for the undergraduate course of medical image processing.According to the different teaching contents of different majors, the image processing practice teaching is carried out by using the mixed programming method of C language and MATLAB which has recieved good results.

Medical image processing; MATLAB; Software practice teaching; C language

G434

A

10.3969/j.issn.1003-6970.2018.10.006

2017年牡丹江醫(yī)學(xué)院教育教學(xué)改革研究項目(編號:MYYB20170007);2016年牡丹江醫(yī)學(xué)院教育教學(xué)改革研究項目(編號:JY2016051);黑龍江省省屬高等學(xué)?;究蒲袠I(yè)務(wù)費科研項目(編號:2017-KYYWF-0632);2018黑龍江省大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(編號:201810229025);牡丹江醫(yī)學(xué)院第八屆大學(xué)生科研立項(編號:201802)

韓婷(1983-),女,牡丹江醫(yī)學(xué)院現(xiàn)代教育技術(shù)中心,計算機(jī)技術(shù)工程碩士,講師,主要研究方向:計算機(jī)編程與網(wǎng)絡(luò)信息安全;趙若晗(1990-),女,牡丹江醫(yī)學(xué)院,第一臨床醫(yī)學(xué)院;劉欣(1997-),女,牡丹江醫(yī)學(xué)院,醫(yī)學(xué)影像學(xué)院,本科在讀學(xué)生。

劉暢(1982-),女,牡丹江醫(yī)學(xué)院現(xiàn)代教育技術(shù)中心,計算機(jī)專業(yè)碩士,講師,主要研究方向:計算機(jī)編程與多媒體設(shè)計。

韓婷,劉暢,趙若晗,等. 基于C語言和MATLAB的混合編程在醫(yī)學(xué)圖像處理課程中的應(yīng)用[J]. 軟件,2018,39(10):26-29

猜你喜歡
牡丹江C語言醫(yī)學(xué)影像
論遲子建小說的人文情懷
醫(yī)學(xué)影像技術(shù)在醫(yī)學(xué)影像診斷中的合理運用
《當(dāng)代醫(yī)學(xué)影像誤診學(xué)》出版
《當(dāng)代醫(yī)學(xué)影像誤診學(xué)》正式出版
基于Visual Studio Code的C語言程序設(shè)計實踐教學(xué)探索
貢獻(xiàn)更多“牡丹江力量” 書寫更精彩的“牡丹江篇章”
基于C語言的計算機(jī)軟件編程
牡丹江流域自然地理敏感區(qū)劃分研究
高職高專院校C語言程序設(shè)計教學(xué)改革探索
論子函數(shù)在C語言數(shù)據(jù)格式輸出中的應(yīng)用
巍山| 泽州县| 彭山县| 浦北县| 原阳县| 枞阳县| 德江县| 东光县| 鲁甸县| 秀山| 泰州市| 和静县| 姚安县| 巫山县| 平阳县| 清苑县| 雷州市| 廊坊市| 双辽市| 台州市| 承德市| 都兰县| 澎湖县| 西充县| 景德镇市| 利津县| 盐城市| 游戏| 马尔康县| 谷城县| 西乌珠穆沁旗| 延寿县| 家居| 三门峡市| 金昌市| 凤台县| 玉屏| 临江市| 静乐县| 白银市| 新源县|