李凌霄+趙風(fēng)霞
摘 要:產(chǎn)程中肛查及陰道檢查技術(shù)是助產(chǎn)專業(yè)人員觀察產(chǎn)程進(jìn)展的必備技能,前期發(fā)明的仿真實(shí)訓(xùn)模型及其專利產(chǎn)品(或類似產(chǎn)品)都是封閉的模型體,因而存在技能訓(xùn)練時教師不能及時發(fā)現(xiàn)并糾正學(xué)生技術(shù)操作中的錯誤、在操作考核中學(xué)生給出的宮口開大的具體數(shù)值必須通過教師的重復(fù)操作才能判斷其結(jié)果的正確性。針對這些情況,本文提出一種新的可視化產(chǎn)程觀察仿真實(shí)訓(xùn)系統(tǒng)的原理架構(gòu),設(shè)計開發(fā)了基于計算機(jī)視覺技術(shù)的仿真實(shí)訓(xùn)系統(tǒng)的軟件,以O(shè)penCV為視頻和圖像處理單元、Visual C++2010為界面開發(fā)工具,實(shí)現(xiàn)了產(chǎn)程中肛查及陰道檢查技能操作的可視化和宮頸口開大數(shù)值的自動測定,試驗(yàn)應(yīng)用效果良好。
關(guān)鍵詞:產(chǎn)程觀察 肛查及陰道檢查 仿真實(shí)訓(xùn)模型 可視化 宮頸口開大 霍夫圓變換
中圖分類號:TP39 文獻(xiàn)標(biāo)識碼:A 文章編號:1674-2117(2014)20-00-04
1 前言
我國異常偏高的剖宮產(chǎn)率已引起了世界衛(wèi)生組織的重視。要達(dá)到降低剖宮產(chǎn)率、促進(jìn)自然分娩的目的,必須提高助產(chǎn)專業(yè)人員觀察產(chǎn)程的能力。觀察產(chǎn)程進(jìn)展的常用方法是產(chǎn)程中肛門檢查和陰道檢查技術(shù)。以往這項技能的掌握需要在產(chǎn)婦身上經(jīng)過較長時間的實(shí)踐和摸索。今天,這樣的醫(yī)學(xué)教育已不現(xiàn)實(shí),而解決之道就是仿真訓(xùn)練。目前,用于產(chǎn)程觀察的仿真實(shí)訓(xùn)模型都是封閉的模型體[1-3],肛查及陰道檢查技術(shù)操作是在非直視下進(jìn)行,因而不利于即時地指導(dǎo)和糾正學(xué)生技術(shù)操作中的錯誤。本文描述我們新研制的可視化產(chǎn)程觀察仿真實(shí)訓(xùn)模型,重點(diǎn)介紹可視化仿真實(shí)訓(xùn)系統(tǒng)軟件的設(shè)計開發(fā)。
2 可視化產(chǎn)程觀察仿真實(shí)訓(xùn)模型
該模型的優(yōu)點(diǎn)在于:骨盆仿體基于人體仿真造型,模型逼真,提高了教學(xué)的真實(shí)性;模型結(jié)構(gòu)簡單,操作性較強(qiáng),手感逼真,并已實(shí)現(xiàn)了產(chǎn)業(yè)化。
然而,盡管該模型仿真度較高,在實(shí)訓(xùn)教學(xué)中也取得了良好效果[2],但是經(jīng)過多年的教學(xué)應(yīng)用,我們發(fā)現(xiàn)該模型存在兩個不足:①由于產(chǎn)程中肛查及陰道檢查技術(shù)的技能訓(xùn)練是在封閉的非直視環(huán)境下進(jìn)行,因而既不便于教師示教也不利于即時發(fā)現(xiàn)和糾正學(xué)生實(shí)訓(xùn)期間的操作錯誤;②技能操作考核時,當(dāng)學(xué)生給出了宮口開大的結(jié)論后,教師必須在模型上再重復(fù)檢查一遍來驗(yàn)證其結(jié)論,因而增加了考核的難度和時間。
鑒于此,我們對原有模型做進(jìn)一步改造:①在仿嬰兒體內(nèi)埋設(shè)微型攝像頭和微光光源,并將它們與外部電腦相連,從而解決學(xué)生在封閉模型體內(nèi)進(jìn)行肛查和陰道檢查操作時的可視化問題;②利用視頻和圖像處理技術(shù),開發(fā)電腦端的肛查和陰道檢查可視化及宮口開大程度自動測定的應(yīng)用軟件,解決學(xué)生實(shí)訓(xùn)期間操作手法的可視化并實(shí)現(xiàn)宮口開大程度的自動測定。新設(shè)計的可視化仿真實(shí)訓(xùn)模型的系統(tǒng)原理圖如圖1所示。
3 可視化和宮口開大測定軟件
應(yīng)用軟件的主要功能要求包括:①操作檢查手法的可視化;②宮口開大程度的自動測定,涉及到計算機(jī)視頻處理和圖像處理技術(shù)。目前,應(yīng)用最廣泛的視頻和圖像處理軟件包是OpenCV,它是Intel公司基于C/C++語言開發(fā)的開源計算機(jī)視覺處理函數(shù)庫,具備豐富的視頻數(shù)據(jù)處理能力和強(qiáng)大的圖像/矩陣的運(yùn)算能力,極大減少了應(yīng)用開發(fā)人員的編程工作量[676]。OpenCV的設(shè)計目標(biāo)是執(zhí)行速度盡量快,主要關(guān)注實(shí)時應(yīng)用,采用優(yōu)化C代碼編寫,能夠充分利用多核處理器的優(yōu)勢,可以運(yùn)行在各種主流操作系統(tǒng)上。然而,OpenCV提供的圖形用戶界面的設(shè)計能力相對較弱[8-10]。為增強(qiáng)系統(tǒng)人機(jī)界面的友好性,我們采用OpenCV為視頻圖像處理單元、Windows7為系統(tǒng)平臺、Visual C++2010為人機(jī)界面工具來構(gòu)建應(yīng)用程序系統(tǒng)。整個系統(tǒng)被設(shè)計成Visual C++2010 MFC對話框應(yīng)用程序,通過MFC按鈕控件來實(shí)現(xiàn)系統(tǒng)功能導(dǎo)航,系統(tǒng)顯示界面設(shè)計成兩個畫面窗口:一個窗口畫面顯示可視化產(chǎn)程觀察的視頻,另一個窗口顯示宮口開大程度的圖片。
3.1 可視化產(chǎn)程觀察
可視化產(chǎn)程觀察部分的程序功能要求系統(tǒng)實(shí)時地將攝像頭捕獲的視頻數(shù)據(jù)顯示到視頻窗口?;赩isual C++ 2010和OpenCV的視頻捕獲、處理和顯示主要由四個步驟組成:
第一步,初始化攝像頭:在MFC對話框的初始化方法定義并初始化相關(guān)變量的基礎(chǔ)上,在“檢查可視化”按鈕的消息處理函數(shù)中通過調(diào)用OpenCV的庫函數(shù)CvCapture*cvCreateCameraCapture(int index)對攝像頭分配視頻圖像數(shù)據(jù)流并初始化視頻數(shù)據(jù)結(jié)構(gòu)CvCapture,然后通過OpenCV庫的cvSetCaptureProperty()函數(shù)來設(shè)置頻數(shù)據(jù)結(jié)CvCapture中的相關(guān)參數(shù)。
第二步,開啟定時器:攝像頭初始化成功后,通過MFC中類CWnd的SetTimer(1,50,NULL)方法啟動系統(tǒng)定時器,其中參數(shù)“50”表示該定時器每隔50毫秒觸發(fā)一個WM_TIMER消息,然后由CWnd::OnTimer()方法處理該消息以便完成攝像頭視頻數(shù)據(jù)流中幀數(shù)據(jù)的獲取和轉(zhuǎn)換處理。
第三步,視頻數(shù)據(jù)的獲取和處理:CWnd:OnTimer()方法及時響應(yīng)定時器的WM_TIMER消息并進(jìn)行處理。它首先調(diào)用OpenCV庫函數(shù)int cvGrabFrame(CvCapture*capture)實(shí)時采集攝像頭的視頻流中的數(shù)據(jù)并快速抓取一幀圖像,然后把這幀圖像數(shù)據(jù)存入系統(tǒng)緩存中,接著調(diào)用OpenCV庫函數(shù)CvRetrieveFrame()將剛剛抓取的幀數(shù)據(jù)從內(nèi)部緩存區(qū)重新讀取出來并在OpenCV內(nèi)部完成多步復(fù)雜的處理工作,最后將該幀圖像數(shù)據(jù)送到顯示設(shè)備上下文以便顯示出來。當(dāng)然,OpenCV也可以用函數(shù)CvQueryFrame()直接從攝像頭讀取視頻幀并存入內(nèi)存,我們即采用此種方法來獲取視頻幀數(shù)據(jù)以便加速后續(xù)的視頻顯示。
第四步,視頻數(shù)據(jù)顯示:首先,對話框面板在設(shè)計期間已經(jīng)被放置了一個其Modal Frame屬性被設(shè)置為TRUE的Picture Control控件,該控件就是視頻數(shù)據(jù)顯示區(qū)。在程序的初始化階段,該視頻顯示區(qū)的窗口指針和顯示區(qū)坐標(biāo)就被捆綁在一起,然后通過CWnd類的GetDC()方法獲取了與該窗口相關(guān)聯(lián)的顯示設(shè)備上下文指針,并進(jìn)而通過該指針調(diào)用CDC類的GetSafeHdc()方法就可獲得顯示設(shè)備上下文的安全句柄。其次,視頻數(shù)據(jù)的實(shí)時顯示是在CWnd:OnTimer()方法中通過前述的安全句柄來調(diào)用CDC類的StretchBlt()方法將第三步中獲得的視頻幀數(shù)據(jù)縮放復(fù)制到顯示設(shè)備上下文以完成視頻圖像的顯示??傊?,視頻處理及其顯示的過程如圖2所示。endprint
3.2 宮口開大程度的測定
宮口開大程度測定部分的程序功能要求系統(tǒng)及時捕獲攝像頭視頻數(shù)據(jù)流中的一幀圖像、處理該圖像以測定宮口開大的具體尺寸(以厘米為單位)、顯示結(jié)果到圖片窗口。因此,宮口開大測定實(shí)際上是一個基于圖像處理的幾何量測量問題,其算法流程如圖3所示。
鑒于宮口開大程度的圖像數(shù)據(jù)采集和最終結(jié)果的顯示方法與圖2中視頻采集與顯示類似,不再贅述。基于圖像處理的幾何量測量技術(shù)的核心是根據(jù)待測對象的幾何特征提取其幾何參數(shù)(直線的斜率和截距、圓的圓心坐標(biāo)和半徑、三角形的三頂點(diǎn)坐標(biāo)、矩形的長寬與左上角的頂點(diǎn)坐標(biāo),等等)。當(dāng)然,為成功提取待測對象的幾何特征,必須對采集的圖像進(jìn)行預(yù)處理以滿足特征提取算法的要求,也必須對特征提取算法返回的結(jié)果進(jìn)行校正計算以獲得期望的正確結(jié)果。下面分別描述。
首先,宮頸口在生產(chǎn)過程中的生理變化基本呈現(xiàn)出圓環(huán)或類似特征,宮口開大的具體數(shù)值范圍從0到10(單位為厘米)。然而,要在所采集的圖像中
圖3 宮口開大程度測定流程
提取到圓的特征參數(shù),圖像處理中的常
用算法是霍夫圓變換。在OpenCV中,為解決三維累加器(圓心坐標(biāo)X、Y和半徑R)所導(dǎo)致的效率問題(相比霍夫直線變換,時空開銷太大),霍夫圓變換采用所謂的霍夫梯度法,其原理是:①對圖像應(yīng)用cvCanny( )函數(shù)進(jìn)行邊緣檢測得到邊緣圖像;②對邊緣圖像中的每一個非0點(diǎn)應(yīng)用cvSobel( )函數(shù)計算X和Y方向上的Sobel一階導(dǎo)數(shù)得到其局部梯度;③利用得到的梯度,由斜率指定的直線上的每個點(diǎn)都在累加器(二維的圖像)中被累加,同時標(biāo)記邊緣圖像中每一個非0像素的位置,然后從累加器中的這些點(diǎn)中選擇候選的圓心(這些圓心都大于給定閥值且大于其所有鄰近值);④對每一個圓心,考慮所有的非0像素:這些像素按其與圓心的距離排序,從而得到一條半徑。因此,在OpenCV中,霍夫圓變換函數(shù)格式為:
CvSeq* CvHoughCircles(
CvArr*src_Imag, //輸入的源灰度圖像
void* circle_storage, //內(nèi)存存儲器(用于存放找到的圓)
CV_HOUGH_GRADIENT, //霍夫梯度法
double dp, //累加器圖像的分辨率
double min_distance, //算法能區(qū)分的兩個不同的圓之間的最小距離
double edge_thresh, //邊沿閥值(cvCanny( )函數(shù)用)
double accumulator_thresh, //累加器閥值
double min_radius, //找到的圓半徑最小值
double max_radius, //找到的圓半徑最大值
);
其中9個參數(shù)的格式如上,其含義已以程序注釋的形式給出?;舴驁A變換函數(shù)的返回值是一個指向CvSeq序列結(jié)構(gòu)的指針,其后需要用命令float* p = (float*)cvGetSeqElem(circle,i)從序列中提取出各個圓(圓心坐標(biāo)X、Y和半徑R)。
其次,由于從攝像頭采集的圖像是彩色圖像,但霍夫圓變換函數(shù)需要的輸入圖像必須是灰度圖像,因此,必須對采集圖像進(jìn)行預(yù)處理。主要采用cvCvtColor()函數(shù)將彩色圖像轉(zhuǎn)換成灰度圖像,然后用cvSmooth()函數(shù)進(jìn)行高斯平滑以便少噪聲的影響。當(dāng)然,對于因采用短焦攝像鏡頭而造成的圖像畸變也一并進(jìn)行處理,以提高宮口開大的測定精度。
第三,前述的霍夫圓變換所找到的圓半徑的單位是像素,但宮口開大程度的測定單位是厘米,因而必須進(jìn)行轉(zhuǎn)換計算。由于空間物體表面某點(diǎn)的三維幾何位置與其在圖像中對應(yīng)點(diǎn)的相互關(guān)系是由攝像機(jī)成像的幾何模型決定的,這些幾何模型參數(shù)就是攝像機(jī)參數(shù),而獲取這些參數(shù)的過程稱為攝像機(jī)標(biāo)定[6]。鑒于宮口開大測定時攝像機(jī)使用環(huán)境的相對固定性(焦距不變、物距變化小),攝像機(jī)標(biāo)定采用OpenCV提供的算法和過程預(yù)先一次性完成,然后在轉(zhuǎn)換計算宮口開大的數(shù)值時利用已獲得的攝像機(jī)參數(shù)進(jìn)行校正計算。
4 系統(tǒng)實(shí)現(xiàn)
軟件系統(tǒng)的實(shí)現(xiàn)基于Windows7操作系統(tǒng)平臺、采用Visual C++2010作為軟件工具開發(fā)人機(jī)交互的圖形界面、采用OpenCV作為視頻和圖像處理單元。整個系統(tǒng)被設(shè)計成Visual C++2010 MFC對話框應(yīng)用程序。系統(tǒng)啟動后的初始界面如圖4(已轉(zhuǎn)為灰度圖像,下同),其中最上面一行是導(dǎo)航欄,有四個功能導(dǎo)航按鈕:檢查可視化、關(guān)閉檢查可視化、拍照并判斷開口大小、退出。
圖4 系統(tǒng)啟動后界面
導(dǎo)航欄下左邊是視頻顯示窗口及視頻參數(shù)(寬度和高度);導(dǎo)航欄下的右邊是宮口開大圖片顯示窗口及軟件測定的宮口開大數(shù)值結(jié)果。
圖5 可視化檢查
當(dāng)用戶按下“檢查可視化”按鈕后,系統(tǒng)運(yùn)行狀態(tài)如圖5,其中視頻顯示窗口實(shí)時呈現(xiàn)學(xué)生實(shí)訓(xùn)操作(或教師示教操作)的實(shí)際操作畫面,教師可借此判斷其操作手法是否正確。
當(dāng)學(xué)生完成實(shí)訓(xùn)操作并給出當(dāng)前宮頸口狀態(tài)下自己對于具體開大程度的判斷后,教師可按下導(dǎo)航按鈕“拍照并測定開口大小”,此時,系統(tǒng)首先抓取該視頻幀的圖像數(shù)據(jù)、然后進(jìn)行宮口開大程度的自動測定并顯示結(jié)果、最后將該幀圖像保存為圖片文件,這非常便于操作考核。圖6是宮口開大狀態(tài)為2厘米時操作檢查的視頻和開大程度測定的圖片與結(jié)果。
圖6 宮口開大2厘米
類似地,圖7則是宮口開大狀態(tài)為4厘米時操作檢查的視頻和開大程度測定的圖片與結(jié)果。
5 結(jié)語
作為一門實(shí)踐性很強(qiáng)的學(xué)科,助產(chǎn)
圖7 宮口開大4厘米
專業(yè)學(xué)生只有通過足夠的仿真實(shí)訓(xùn)訓(xùn)練和臨床實(shí)踐,才能獲得必要的臨床工作
技能。采用信息技術(shù)推進(jìn)醫(yī)學(xué)實(shí)訓(xùn)教學(xué)資源,尤其是虛擬仿真實(shí)訓(xùn)教學(xué)平臺的開發(fā)建設(shè)和實(shí)訓(xùn)應(yīng)用,對提高助產(chǎn)專業(yè)學(xué)生臨床操作技能具有重要意義。
(寧波衛(wèi)生職業(yè)技術(shù)學(xué)院,浙江 寧波 315100)
參考文獻(xiàn):
[1]趙風(fēng)霞.一種用于產(chǎn)程中肛門和陰道檢查的仿真教學(xué)模型:中國,CN201336100[P].2009(10).
[2]趙風(fēng)霞,李美珍,常金蘭.產(chǎn)程中肛查及陰道檢查仿真實(shí)訓(xùn)的效果觀察[J].護(hù)理學(xué)報,2012,19(5):35—37.
[3]薛艷,李雪蘭,康健.SimMom全身互動型分娩模擬人用于產(chǎn)科“正常分娩機(jī)制”教學(xué)初探[J].中國醫(yī)學(xué)教育技術(shù),2014,28(1):60—62.endprint
3.2 宮口開大程度的測定
宮口開大程度測定部分的程序功能要求系統(tǒng)及時捕獲攝像頭視頻數(shù)據(jù)流中的一幀圖像、處理該圖像以測定宮口開大的具體尺寸(以厘米為單位)、顯示結(jié)果到圖片窗口。因此,宮口開大測定實(shí)際上是一個基于圖像處理的幾何量測量問題,其算法流程如圖3所示。
鑒于宮口開大程度的圖像數(shù)據(jù)采集和最終結(jié)果的顯示方法與圖2中視頻采集與顯示類似,不再贅述?;趫D像處理的幾何量測量技術(shù)的核心是根據(jù)待測對象的幾何特征提取其幾何參數(shù)(直線的斜率和截距、圓的圓心坐標(biāo)和半徑、三角形的三頂點(diǎn)坐標(biāo)、矩形的長寬與左上角的頂點(diǎn)坐標(biāo),等等)。當(dāng)然,為成功提取待測對象的幾何特征,必須對采集的圖像進(jìn)行預(yù)處理以滿足特征提取算法的要求,也必須對特征提取算法返回的結(jié)果進(jìn)行校正計算以獲得期望的正確結(jié)果。下面分別描述。
首先,宮頸口在生產(chǎn)過程中的生理變化基本呈現(xiàn)出圓環(huán)或類似特征,宮口開大的具體數(shù)值范圍從0到10(單位為厘米)。然而,要在所采集的圖像中
圖3 宮口開大程度測定流程
提取到圓的特征參數(shù),圖像處理中的常
用算法是霍夫圓變換。在OpenCV中,為解決三維累加器(圓心坐標(biāo)X、Y和半徑R)所導(dǎo)致的效率問題(相比霍夫直線變換,時空開銷太大),霍夫圓變換采用所謂的霍夫梯度法,其原理是:①對圖像應(yīng)用cvCanny( )函數(shù)進(jìn)行邊緣檢測得到邊緣圖像;②對邊緣圖像中的每一個非0點(diǎn)應(yīng)用cvSobel( )函數(shù)計算X和Y方向上的Sobel一階導(dǎo)數(shù)得到其局部梯度;③利用得到的梯度,由斜率指定的直線上的每個點(diǎn)都在累加器(二維的圖像)中被累加,同時標(biāo)記邊緣圖像中每一個非0像素的位置,然后從累加器中的這些點(diǎn)中選擇候選的圓心(這些圓心都大于給定閥值且大于其所有鄰近值);④對每一個圓心,考慮所有的非0像素:這些像素按其與圓心的距離排序,從而得到一條半徑。因此,在OpenCV中,霍夫圓變換函數(shù)格式為:
CvSeq* CvHoughCircles(
CvArr*src_Imag, //輸入的源灰度圖像
void* circle_storage, //內(nèi)存存儲器(用于存放找到的圓)
CV_HOUGH_GRADIENT, //霍夫梯度法
double dp, //累加器圖像的分辨率
double min_distance, //算法能區(qū)分的兩個不同的圓之間的最小距離
double edge_thresh, //邊沿閥值(cvCanny( )函數(shù)用)
double accumulator_thresh, //累加器閥值
double min_radius, //找到的圓半徑最小值
double max_radius, //找到的圓半徑最大值
);
其中9個參數(shù)的格式如上,其含義已以程序注釋的形式給出?;舴驁A變換函數(shù)的返回值是一個指向CvSeq序列結(jié)構(gòu)的指針,其后需要用命令float* p = (float*)cvGetSeqElem(circle,i)從序列中提取出各個圓(圓心坐標(biāo)X、Y和半徑R)。
其次,由于從攝像頭采集的圖像是彩色圖像,但霍夫圓變換函數(shù)需要的輸入圖像必須是灰度圖像,因此,必須對采集圖像進(jìn)行預(yù)處理。主要采用cvCvtColor()函數(shù)將彩色圖像轉(zhuǎn)換成灰度圖像,然后用cvSmooth()函數(shù)進(jìn)行高斯平滑以便少噪聲的影響。當(dāng)然,對于因采用短焦攝像鏡頭而造成的圖像畸變也一并進(jìn)行處理,以提高宮口開大的測定精度。
第三,前述的霍夫圓變換所找到的圓半徑的單位是像素,但宮口開大程度的測定單位是厘米,因而必須進(jìn)行轉(zhuǎn)換計算。由于空間物體表面某點(diǎn)的三維幾何位置與其在圖像中對應(yīng)點(diǎn)的相互關(guān)系是由攝像機(jī)成像的幾何模型決定的,這些幾何模型參數(shù)就是攝像機(jī)參數(shù),而獲取這些參數(shù)的過程稱為攝像機(jī)標(biāo)定[6]。鑒于宮口開大測定時攝像機(jī)使用環(huán)境的相對固定性(焦距不變、物距變化?。瑪z像機(jī)標(biāo)定采用OpenCV提供的算法和過程預(yù)先一次性完成,然后在轉(zhuǎn)換計算宮口開大的數(shù)值時利用已獲得的攝像機(jī)參數(shù)進(jìn)行校正計算。
4 系統(tǒng)實(shí)現(xiàn)
軟件系統(tǒng)的實(shí)現(xiàn)基于Windows7操作系統(tǒng)平臺、采用Visual C++2010作為軟件工具開發(fā)人機(jī)交互的圖形界面、采用OpenCV作為視頻和圖像處理單元。整個系統(tǒng)被設(shè)計成Visual C++2010 MFC對話框應(yīng)用程序。系統(tǒng)啟動后的初始界面如圖4(已轉(zhuǎn)為灰度圖像,下同),其中最上面一行是導(dǎo)航欄,有四個功能導(dǎo)航按鈕:檢查可視化、關(guān)閉檢查可視化、拍照并判斷開口大小、退出。
圖4 系統(tǒng)啟動后界面
導(dǎo)航欄下左邊是視頻顯示窗口及視頻參數(shù)(寬度和高度);導(dǎo)航欄下的右邊是宮口開大圖片顯示窗口及軟件測定的宮口開大數(shù)值結(jié)果。
圖5 可視化檢查
當(dāng)用戶按下“檢查可視化”按鈕后,系統(tǒng)運(yùn)行狀態(tài)如圖5,其中視頻顯示窗口實(shí)時呈現(xiàn)學(xué)生實(shí)訓(xùn)操作(或教師示教操作)的實(shí)際操作畫面,教師可借此判斷其操作手法是否正確。
當(dāng)學(xué)生完成實(shí)訓(xùn)操作并給出當(dāng)前宮頸口狀態(tài)下自己對于具體開大程度的判斷后,教師可按下導(dǎo)航按鈕“拍照并測定開口大小”,此時,系統(tǒng)首先抓取該視頻幀的圖像數(shù)據(jù)、然后進(jìn)行宮口開大程度的自動測定并顯示結(jié)果、最后將該幀圖像保存為圖片文件,這非常便于操作考核。圖6是宮口開大狀態(tài)為2厘米時操作檢查的視頻和開大程度測定的圖片與結(jié)果。
圖6 宮口開大2厘米
類似地,圖7則是宮口開大狀態(tài)為4厘米時操作檢查的視頻和開大程度測定的圖片與結(jié)果。
5 結(jié)語
作為一門實(shí)踐性很強(qiáng)的學(xué)科,助產(chǎn)
圖7 宮口開大4厘米
專業(yè)學(xué)生只有通過足夠的仿真實(shí)訓(xùn)訓(xùn)練和臨床實(shí)踐,才能獲得必要的臨床工作
技能。采用信息技術(shù)推進(jìn)醫(yī)學(xué)實(shí)訓(xùn)教學(xué)資源,尤其是虛擬仿真實(shí)訓(xùn)教學(xué)平臺的開發(fā)建設(shè)和實(shí)訓(xùn)應(yīng)用,對提高助產(chǎn)專業(yè)學(xué)生臨床操作技能具有重要意義。
(寧波衛(wèi)生職業(yè)技術(shù)學(xué)院,浙江 寧波 315100)
參考文獻(xiàn):
[1]趙風(fēng)霞.一種用于產(chǎn)程中肛門和陰道檢查的仿真教學(xué)模型:中國,CN201336100[P].2009(10).
[2]趙風(fēng)霞,李美珍,常金蘭.產(chǎn)程中肛查及陰道檢查仿真實(shí)訓(xùn)的效果觀察[J].護(hù)理學(xué)報,2012,19(5):35—37.
[3]薛艷,李雪蘭,康健.SimMom全身互動型分娩模擬人用于產(chǎn)科“正常分娩機(jī)制”教學(xué)初探[J].中國醫(yī)學(xué)教育技術(shù),2014,28(1):60—62.endprint
3.2 宮口開大程度的測定
宮口開大程度測定部分的程序功能要求系統(tǒng)及時捕獲攝像頭視頻數(shù)據(jù)流中的一幀圖像、處理該圖像以測定宮口開大的具體尺寸(以厘米為單位)、顯示結(jié)果到圖片窗口。因此,宮口開大測定實(shí)際上是一個基于圖像處理的幾何量測量問題,其算法流程如圖3所示。
鑒于宮口開大程度的圖像數(shù)據(jù)采集和最終結(jié)果的顯示方法與圖2中視頻采集與顯示類似,不再贅述?;趫D像處理的幾何量測量技術(shù)的核心是根據(jù)待測對象的幾何特征提取其幾何參數(shù)(直線的斜率和截距、圓的圓心坐標(biāo)和半徑、三角形的三頂點(diǎn)坐標(biāo)、矩形的長寬與左上角的頂點(diǎn)坐標(biāo),等等)。當(dāng)然,為成功提取待測對象的幾何特征,必須對采集的圖像進(jìn)行預(yù)處理以滿足特征提取算法的要求,也必須對特征提取算法返回的結(jié)果進(jìn)行校正計算以獲得期望的正確結(jié)果。下面分別描述。
首先,宮頸口在生產(chǎn)過程中的生理變化基本呈現(xiàn)出圓環(huán)或類似特征,宮口開大的具體數(shù)值范圍從0到10(單位為厘米)。然而,要在所采集的圖像中
圖3 宮口開大程度測定流程
提取到圓的特征參數(shù),圖像處理中的常
用算法是霍夫圓變換。在OpenCV中,為解決三維累加器(圓心坐標(biāo)X、Y和半徑R)所導(dǎo)致的效率問題(相比霍夫直線變換,時空開銷太大),霍夫圓變換采用所謂的霍夫梯度法,其原理是:①對圖像應(yīng)用cvCanny( )函數(shù)進(jìn)行邊緣檢測得到邊緣圖像;②對邊緣圖像中的每一個非0點(diǎn)應(yīng)用cvSobel( )函數(shù)計算X和Y方向上的Sobel一階導(dǎo)數(shù)得到其局部梯度;③利用得到的梯度,由斜率指定的直線上的每個點(diǎn)都在累加器(二維的圖像)中被累加,同時標(biāo)記邊緣圖像中每一個非0像素的位置,然后從累加器中的這些點(diǎn)中選擇候選的圓心(這些圓心都大于給定閥值且大于其所有鄰近值);④對每一個圓心,考慮所有的非0像素:這些像素按其與圓心的距離排序,從而得到一條半徑。因此,在OpenCV中,霍夫圓變換函數(shù)格式為:
CvSeq* CvHoughCircles(
CvArr*src_Imag, //輸入的源灰度圖像
void* circle_storage, //內(nèi)存存儲器(用于存放找到的圓)
CV_HOUGH_GRADIENT, //霍夫梯度法
double dp, //累加器圖像的分辨率
double min_distance, //算法能區(qū)分的兩個不同的圓之間的最小距離
double edge_thresh, //邊沿閥值(cvCanny( )函數(shù)用)
double accumulator_thresh, //累加器閥值
double min_radius, //找到的圓半徑最小值
double max_radius, //找到的圓半徑最大值
);
其中9個參數(shù)的格式如上,其含義已以程序注釋的形式給出?;舴驁A變換函數(shù)的返回值是一個指向CvSeq序列結(jié)構(gòu)的指針,其后需要用命令float* p = (float*)cvGetSeqElem(circle,i)從序列中提取出各個圓(圓心坐標(biāo)X、Y和半徑R)。
其次,由于從攝像頭采集的圖像是彩色圖像,但霍夫圓變換函數(shù)需要的輸入圖像必須是灰度圖像,因此,必須對采集圖像進(jìn)行預(yù)處理。主要采用cvCvtColor()函數(shù)將彩色圖像轉(zhuǎn)換成灰度圖像,然后用cvSmooth()函數(shù)進(jìn)行高斯平滑以便少噪聲的影響。當(dāng)然,對于因采用短焦攝像鏡頭而造成的圖像畸變也一并進(jìn)行處理,以提高宮口開大的測定精度。
第三,前述的霍夫圓變換所找到的圓半徑的單位是像素,但宮口開大程度的測定單位是厘米,因而必須進(jìn)行轉(zhuǎn)換計算。由于空間物體表面某點(diǎn)的三維幾何位置與其在圖像中對應(yīng)點(diǎn)的相互關(guān)系是由攝像機(jī)成像的幾何模型決定的,這些幾何模型參數(shù)就是攝像機(jī)參數(shù),而獲取這些參數(shù)的過程稱為攝像機(jī)標(biāo)定[6]。鑒于宮口開大測定時攝像機(jī)使用環(huán)境的相對固定性(焦距不變、物距變化小),攝像機(jī)標(biāo)定采用OpenCV提供的算法和過程預(yù)先一次性完成,然后在轉(zhuǎn)換計算宮口開大的數(shù)值時利用已獲得的攝像機(jī)參數(shù)進(jìn)行校正計算。
4 系統(tǒng)實(shí)現(xiàn)
軟件系統(tǒng)的實(shí)現(xiàn)基于Windows7操作系統(tǒng)平臺、采用Visual C++2010作為軟件工具開發(fā)人機(jī)交互的圖形界面、采用OpenCV作為視頻和圖像處理單元。整個系統(tǒng)被設(shè)計成Visual C++2010 MFC對話框應(yīng)用程序。系統(tǒng)啟動后的初始界面如圖4(已轉(zhuǎn)為灰度圖像,下同),其中最上面一行是導(dǎo)航欄,有四個功能導(dǎo)航按鈕:檢查可視化、關(guān)閉檢查可視化、拍照并判斷開口大小、退出。
圖4 系統(tǒng)啟動后界面
導(dǎo)航欄下左邊是視頻顯示窗口及視頻參數(shù)(寬度和高度);導(dǎo)航欄下的右邊是宮口開大圖片顯示窗口及軟件測定的宮口開大數(shù)值結(jié)果。
圖5 可視化檢查
當(dāng)用戶按下“檢查可視化”按鈕后,系統(tǒng)運(yùn)行狀態(tài)如圖5,其中視頻顯示窗口實(shí)時呈現(xiàn)學(xué)生實(shí)訓(xùn)操作(或教師示教操作)的實(shí)際操作畫面,教師可借此判斷其操作手法是否正確。
當(dāng)學(xué)生完成實(shí)訓(xùn)操作并給出當(dāng)前宮頸口狀態(tài)下自己對于具體開大程度的判斷后,教師可按下導(dǎo)航按鈕“拍照并測定開口大小”,此時,系統(tǒng)首先抓取該視頻幀的圖像數(shù)據(jù)、然后進(jìn)行宮口開大程度的自動測定并顯示結(jié)果、最后將該幀圖像保存為圖片文件,這非常便于操作考核。圖6是宮口開大狀態(tài)為2厘米時操作檢查的視頻和開大程度測定的圖片與結(jié)果。
圖6 宮口開大2厘米
類似地,圖7則是宮口開大狀態(tài)為4厘米時操作檢查的視頻和開大程度測定的圖片與結(jié)果。
5 結(jié)語
作為一門實(shí)踐性很強(qiáng)的學(xué)科,助產(chǎn)
圖7 宮口開大4厘米
專業(yè)學(xué)生只有通過足夠的仿真實(shí)訓(xùn)訓(xùn)練和臨床實(shí)踐,才能獲得必要的臨床工作
技能。采用信息技術(shù)推進(jìn)醫(yī)學(xué)實(shí)訓(xùn)教學(xué)資源,尤其是虛擬仿真實(shí)訓(xùn)教學(xué)平臺的開發(fā)建設(shè)和實(shí)訓(xùn)應(yīng)用,對提高助產(chǎn)專業(yè)學(xué)生臨床操作技能具有重要意義。
(寧波衛(wèi)生職業(yè)技術(shù)學(xué)院,浙江 寧波 315100)
參考文獻(xiàn):
[1]趙風(fēng)霞.一種用于產(chǎn)程中肛門和陰道檢查的仿真教學(xué)模型:中國,CN201336100[P].2009(10).
[2]趙風(fēng)霞,李美珍,常金蘭.產(chǎn)程中肛查及陰道檢查仿真實(shí)訓(xùn)的效果觀察[J].護(hù)理學(xué)報,2012,19(5):35—37.
[3]薛艷,李雪蘭,康健.SimMom全身互動型分娩模擬人用于產(chǎn)科“正常分娩機(jī)制”教學(xué)初探[J].中國醫(yī)學(xué)教育技術(shù),2014,28(1):60—62.endprint