高 鵬 廖琪梅*
外傷傷口面積計(jì)算和存儲(chǔ)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
高 鵬① 廖琪梅①*
目的:設(shè)計(jì)外傷傷口面積的計(jì)算和存儲(chǔ)面積值系統(tǒng)。方法:在visual c++ 6.0開(kāi)發(fā)平臺(tái)下運(yùn)用圖像處理的相關(guān)技術(shù)計(jì)算得到傷口的面積;采用ADO方式訪問(wèn)Access 2003數(shù)據(jù)庫(kù),將面積數(shù)據(jù)存入數(shù)據(jù)庫(kù),應(yīng)用SQL語(yǔ)言對(duì)庫(kù)中信息進(jìn)行檢索。結(jié)果:由動(dòng)物模型測(cè)量及保存的結(jié)果表明,系統(tǒng)達(dá)到了預(yù)期效果,實(shí)現(xiàn)了快速計(jì)算傷口面積并保存檢索面積等信息的功能。結(jié)論:該系統(tǒng)完全適合計(jì)算和保存?zhèn)诿娣e值,并可以對(duì)面積信息進(jìn)行檢索,能夠?yàn)獒t(yī)生的診療提供有效數(shù)據(jù),為患者就醫(yī)帶來(lái)方便。
圖像;傷口面積;ADO;查詢
[First-author’s address]Department of Biomedical Engineering, The Fourth Military Medical Universityl, Beijing 100039, China.
表面創(chuàng)傷是一種常見(jiàn)的外傷,創(chuàng)傷的愈合情況受到醫(yī)生和患者的高度關(guān)注。表面創(chuàng)傷的治療需要根據(jù)傷口愈合情況制定治療方案和手術(shù)計(jì)劃,患者了解傷口愈合情況后有效地配合治療。傷口面積在一定程度上可以反映傷口的愈合程度,但僅憑醫(yī)生肉眼觀察或經(jīng)驗(yàn)估算傷口的面積,其結(jié)果不準(zhǔn)確。現(xiàn)有的計(jì)算機(jī)輔助測(cè)量方法是在傷口旁貼一張標(biāo)準(zhǔn)面積貼,通過(guò)對(duì)比標(biāo)準(zhǔn)面積計(jì)算出傷口面積,而該方法會(huì)增加患者的感染概率[1]。為此,本研究設(shè)計(jì)出一種傷口面積計(jì)算方法和儲(chǔ)存系統(tǒng),能夠在不接觸患者皮膚、傷口的情況下方便地測(cè)量和計(jì)算出傷口的面積,同時(shí)將患者的相關(guān)信息存儲(chǔ)到數(shù)據(jù)庫(kù)中,方便醫(yī)生查詢,并能夠連續(xù)記錄多次測(cè)量結(jié)果,以便醫(yī)生對(duì)傷口愈合情況進(jìn)行比對(duì),觀察治療效果,有針對(duì)性地實(shí)施治療。
傷口面積計(jì)算方法和儲(chǔ)存系統(tǒng)設(shè)計(jì)主要分為兩大模塊:圖像處理模塊和數(shù)據(jù)管理模塊。圖像處理模塊主要是完成圖像格式的轉(zhuǎn)換和測(cè)量面積;數(shù)據(jù)管理模塊實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)、查詢等功能。該系統(tǒng)框架如圖1所示。
圖1 傷口面積計(jì)算方法和儲(chǔ)存系統(tǒng)框架圖
1.1 圖像處理模塊
(1)24位彩色圖像轉(zhuǎn)灰度圖像。由于目前多數(shù)照相機(jī)所得圖像是24位彩色,為方便后續(xù)閾值分割以及面積計(jì)算,先將其轉(zhuǎn)化為灰度圖像。彩色圖像每個(gè)像素的R、G、B3個(gè)基色分量各不相同,對(duì)于所有像素點(diǎn)按照紅色0.299、綠色0.587、藍(lán)色0.114的比例得到新的像素值,將原彩色圖像對(duì)應(yīng)點(diǎn)像素值用計(jì)算得到的像素值替換即可得到相應(yīng)的灰度圖像[2]。
(2)閾值分割[3]。為計(jì)算傷口面積而在圖像上將傷口組織與正常組織區(qū)分開(kāi)。由于傷口組織和正常組織在顏色上具有很大區(qū)別,其灰度圖像的灰度值存在較大差異。利用這一差異設(shè)定合理的閾值便可將二者區(qū)分。在軟件實(shí)際操作時(shí)為減少輸入閾值之繁瑣,采用滑塊控件,滑塊調(diào)節(jié)范圍設(shè)置為0~255,同時(shí)將滑塊的位置即閾值顯示至編輯框中,用戶在使用時(shí)可通過(guò)調(diào)節(jié)滑塊實(shí)時(shí)觀察圖像分割的情況,直至得到滿意的圖像[4]。
(3)計(jì)算面積。通過(guò)圖像計(jì)算傷口面積的原理:在已知一個(gè)像素點(diǎn)所對(duì)應(yīng)的圖像實(shí)際大小為s,傷口面積由n個(gè)像素點(diǎn)組成的情況下,計(jì)算傷口面積S=s×n。具體操作如下:在得到分割后的圖像之后,輸入拍攝圖像時(shí)照相機(jī)至物體的距離后點(diǎn)擊傷口區(qū)域,系統(tǒng)由根據(jù)區(qū)域生長(zhǎng)算法便能計(jì)算出傷口面積并將其顯示于編輯框中。根據(jù)實(shí)際情況,從距傷口6~46 cm的范圍內(nèi)拍攝數(shù)張照片,計(jì)算出相應(yīng)距離下的每個(gè)像素對(duì)應(yīng)的實(shí)際大小,并擬合出一條距離像素大小關(guān)系曲線,然后將其數(shù)據(jù)存放在ruler.dat文件中,系統(tǒng)會(huì)自動(dòng)計(jì)算出相對(duì)應(yīng)的像素,進(jìn)而計(jì)算出傷口面積。
區(qū)域生長(zhǎng)算法的主要原理[5]:將具有相似性質(zhì)的像素集合起來(lái)構(gòu)成區(qū)域。指定一個(gè)或數(shù)個(gè)種子點(diǎn)作為生長(zhǎng)的起點(diǎn),然后依據(jù)一定的生長(zhǎng)規(guī)則將種子像素周圍符合生長(zhǎng)規(guī)則的像素點(diǎn)劃分至種子點(diǎn)所在的區(qū)域中重復(fù)操作而得到一個(gè)連通的區(qū)域。為驗(yàn)證本研究計(jì)算傷口面積方法的可行性,采用參考物法進(jìn)行檢驗(yàn)。在實(shí)驗(yàn)動(dòng)物的傷口旁放置一個(gè)帶有規(guī)則圖形(1 cm×1 cm的正方形)的布條,采用計(jì)算傷口面積的方法通過(guò)軟件計(jì)算出圖形的面積,與實(shí)際面積比對(duì)后發(fā)現(xiàn)二者誤差≤2%,對(duì)該方法的臨床應(yīng)用無(wú)影響(如圖2所示)。
圖2 實(shí)驗(yàn)動(dòng)物與標(biāo)準(zhǔn)圖形
(4)測(cè)試像素點(diǎn)大小。通過(guò)此項(xiàng)功能可檢測(cè)ruler. dat是否在當(dāng)前目錄下。在程序內(nèi)部設(shè)定照相機(jī)至傷口的距離為25 cm,調(diào)用void CReadView:OnZtest()函數(shù)。如果能夠得到正確的像素點(diǎn)值,則表明其功能完整。系統(tǒng)界面中工具欄第2欄上從左至右依次是滑塊控件、閾值選擇編輯框、距離編輯框、面積顯示編輯框和存入數(shù)據(jù)庫(kù)按鈕。左側(cè)是ruler.dat中的距離與像素大小的關(guān)系數(shù)據(jù)。右側(cè)用來(lái)顯示處理后的圖像。操作流程:讀入彩色圖像→進(jìn)行灰度轉(zhuǎn)換→閾值分割→輸入照相機(jī)到傷口距離→點(diǎn)擊傷口區(qū)域得到處理后圖像并顯示傷口的面積(如圖3所示)。
圖3 系統(tǒng)界面及處理后的圖像
1.2 數(shù)據(jù)庫(kù)管理模塊
(1)數(shù)據(jù)庫(kù)的選擇與連接。Microsoft Access 2003是目前多數(shù)電腦中微軟操作系統(tǒng)下所安裝的數(shù)據(jù)庫(kù),根據(jù)本系統(tǒng)中數(shù)據(jù)庫(kù)記錄和字段的特點(diǎn),采用Access 2003作為后臺(tái)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)設(shè)有ID,姓名,年齡,性別,傷口面積和檢測(cè)時(shí)間等字段[6]。
本程序采用以ADO方式連接數(shù)據(jù)庫(kù),通過(guò)在控制面板中手動(dòng)創(chuàng)建ODBC數(shù)據(jù)源,調(diào)用_ConnectionPtr對(duì)象打開(kāi)數(shù)據(jù)庫(kù)連接,再調(diào)用_RecordsetPtr對(duì)象獲取記錄集的方式連接數(shù)據(jù)庫(kù)[7]。由于ADO是一組動(dòng)態(tài)鏈接庫(kù),因此在使用前應(yīng)先導(dǎo)入ADO并初始化。在工程的頭文件中使用導(dǎo)入符號(hào)#import導(dǎo)入ADO庫(kù)件,使用如下代碼:
#import"C:program filescommon files systemadomsado15.dll" no_namespace rename ("EOF","adoEOF")。
初始化的操作是在程序應(yīng)用類的InitInstance()之中使用代碼AfxOleInit()對(duì)COM庫(kù)初始化[8]。
(2)數(shù)據(jù)庫(kù)的數(shù)據(jù)添加、刪除操作。在向數(shù)據(jù)庫(kù)中添加患者的傷口面積和相關(guān)信息時(shí)設(shè)計(jì)了兩種方式:①通過(guò)點(diǎn)擊“添加、刪除”菜單響應(yīng),但該方式需要醫(yī)生輸入傷口面積,存在輸入錯(cuò)誤的可能;②點(diǎn)擊主界面“存入數(shù)據(jù)庫(kù)”按鈕,該方式簡(jiǎn)單、快捷,且不存在將傷口面積數(shù)值填錯(cuò)的可能。與添加記錄伴隨的是刪除記錄的功能,用戶只要選擇相應(yīng)的記錄然后點(diǎn)擊刪除記錄即可?!坝涗泴?dǎo)航”提供了訪問(wèn)查看當(dāng)前記錄的方法,用戶可查看第1條、上一條、下一條及最后一條記錄。
(3)數(shù)據(jù)庫(kù)的數(shù)據(jù)查詢、修改操作。數(shù)據(jù)庫(kù)系統(tǒng)的查詢是不可缺少的功能。醫(yī)生可通過(guò)查詢患者多次檢查的記錄判斷傷口的愈合情況,因此本系統(tǒng)查詢功能的實(shí)現(xiàn)對(duì)醫(yī)生診斷有重要意義。針對(duì)查詢的特點(diǎn),本系統(tǒng)采用精確查詢和模糊查詢兼?zhèn)涞牟樵兎绞?。在軟件設(shè)計(jì)過(guò)程中設(shè)置了多種查詢關(guān)鍵字:ID、姓名、年齡范圍、傷口面積范圍及測(cè)量時(shí)間范圍等,提高了查詢成功的速度和概率。用戶若要跟蹤某個(gè)患者的傷口修復(fù)情況,只需按照姓名查詢即可看到該患者的所有記錄。通過(guò)模糊查詢的方式,只需要輸入患者的部分信息,即可將滿足條件的記錄顯示出來(lái),縮小了查找范圍。
在選擇ADO Datagrid控件進(jìn)行顯示記錄時(shí),默認(rèn)情況下其表格寬度較大,導(dǎo)致數(shù)個(gè)字段不能同時(shí)顯示在表格中,需要調(diào)整其寬度。為了減少操作的復(fù)雜性,在對(duì)話框初始化時(shí)根據(jù)字段的長(zhǎng)度將表格寬度進(jìn)行調(diào)整:Column.SetWidth(40)[11]。ADO Datagrid不僅可以顯示所查詢的數(shù)據(jù)記錄,且在數(shù)據(jù)修改方面為用戶提供了方便。
該系統(tǒng)的初始版本自2011年9月開(kāi)發(fā)完畢并投入使用。閾值選擇的默認(rèn)值為70,圖像坐標(biāo)的顯示以及攝像機(jī)至傷口的距離等細(xì)節(jié)均根據(jù)在使用中的實(shí)際情況進(jìn)行默認(rèn)設(shè)置,提高了醫(yī)生的工作效率[12]。在數(shù)據(jù)庫(kù)的設(shè)計(jì)上,在精確查詢的基礎(chǔ)上增加了模糊查詢,完善了可供查詢的項(xiàng)目,加快了查詢速度。盡管在使用過(guò)程中需要根據(jù)實(shí)際情況進(jìn)行部分設(shè)置和修改,但是本系統(tǒng)注重模塊化設(shè)計(jì),在許多可能修改的地方均設(shè)置默認(rèn)值,因此修改過(guò)程十分方便,且不會(huì)影響整體的功能。
計(jì)算機(jī)技術(shù)與臨床應(yīng)用相結(jié)合極大改進(jìn)了臨床研究的手段,提高了臨床研究的效率。本研究設(shè)計(jì)的傷口面積計(jì)算和存儲(chǔ)系統(tǒng)為醫(yī)生的診斷治療提供了數(shù)字化的手段,提高了計(jì)算的速度和準(zhǔn)確性,方便醫(yī)生處理和匯總大量患者診療信息。
[1]趙飛,屈景輝,李飛江,等.適用于創(chuàng)傷修復(fù)研究的傷口面積測(cè)量系統(tǒng)設(shè)計(jì)[J].醫(yī)療衛(wèi)生裝備,2007,28(11):28-29.
[2]楊淑瑩.VC++圖像處理程序設(shè)計(jì)[M].2版.北京:清華大學(xué)出版社,北京交通大學(xué)出版社,2005:288.
[3]沈圓,李國(guó)勇.圖像的閾值分割法設(shè)計(jì)[J].機(jī)械工程與自動(dòng)化,2012,41(5):45-47.
[4]張軍.Visual C++實(shí)例精通[M].北京:機(jī)械工業(yè)出版社,2009:27-28.
[5]謝鳳英,趙丹培.Visual C++數(shù)字圖像處理[M].北京:電子工業(yè)出版社,2008:317.
[6]孫晶晶,吳效明.基于Access數(shù)據(jù)庫(kù)的家庭健康監(jiān)護(hù)系統(tǒng)設(shè)計(jì)[J].醫(yī)療衛(wèi)生裝備,2012,33(3):22-23.
[7]王斌.基于VC的數(shù)據(jù)庫(kù)編程設(shè)計(jì)與實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2012,18(10):21-23.
[8]李震,魏銘,楊剛.VC++下基于ADO與DataGrid控件的數(shù)據(jù)庫(kù)開(kāi)發(fā)[J].石油儀器,2012,26(11):81-84.
[9]孫皓.VisualC++范例大全[M].北京:機(jī)械工業(yè)出版社,2009:519-523.
[10]魏林,陳磊.Datagrid控件在系統(tǒng)開(kāi)發(fā)中的應(yīng)用[J].電腦編程技巧與維護(hù),2008,14(11):47-49.
[11]王守強(qiáng),朱大銘.在VC中使用DataGrid控件[J].電腦編程技巧與維護(hù),2002,8(1):47.
[12]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2006:269.
Research on the design and accomplishment of the system of computing and storing wound area
/GAO Peng, LIAO Qi-mei// China Medical Equipment,2014,11(1):39-41.
Objective:To design a system of computing and storing wound area.Methods:Visual C++6.0 platform has been used to develop the application.With image processing and by means of ADO, the wound area can be calculated and stored in the Access 2003 databse.Results:The system has achieved the expected effect which can be proved by measuring animal model and saving reaults. It can calculate the wound area and save the relative information fast.Conclusion:This system is qualified for computing and storing wound area and can search the information stored as well. Not only can it provide doctors with accurate information,but also bring patients convenience.
Image; Wound area; ADO; Query
10.3969/J.ISSN.1672-8270.2014.01.014
1672-8270(2014)01-0039-03
R197.324
A
2013-08-29
①第四軍醫(yī)大學(xué)生物醫(yī)學(xué)工程系 陜西 西安 710032
*通訊作者:maydlee@163.com
高鵬,男,(1990- ),本科學(xué)歷,助教。第四軍醫(yī)大學(xué)生物醫(yī)學(xué)工程系,從事生物醫(yī)學(xué)圖像處理工作,研究方向:生物醫(yī)學(xué)工程。