柴 波 楊 琳
母乳喂養是指用母親的奶水喂養嬰兒的方式,用母乳喂養的嬰兒發育更為健康[1]。但是,不同母親的母乳之間差異很大,同一位母親在不同時期所產生的母乳相差也很大,而母乳成分檢測可以比較準確地分析出這些差異。目前市場上出現了一種用試紙來檢測母乳成分含量的產品,該產品通過將母乳滴在試紙上而產生的顏色變化,對比標準色卡得出所檢測成分的含量。試紙檢測產品比色卡的數值精確到個位,對比顏色很少,對于有些試紙反應后的顏色不能明確的在比色卡上對比找出,通常會模糊地估計母乳成分的含量,而產生的誤差使得檢測結果不夠精確。增加比色卡顏色的種類,使數值更加細化,則可以得到更精準的測量結果,但是顏色的種類繁多,逐一做比對卡,是一件復雜且浪費的事情,而細微的顏色變化對于老年人或者眼睛對顏色不敏感的人群而言辨認非常困難。
隨著智能手機、平板電腦等電子設備的普及,已經開發出越來越多的醫療健康方面的應用軟件。安卓(Android)系統是目前主流的電子設備系統,普及性非常高,且安卓電子產品可以滿足軟件開發對硬件方面的需求,因此本研究選擇Android系統的電子設備作為軟件的載體,對于電子設備而言,儲存多種顏色、制作電子的顏色比對卡是一件簡單的事情。為此,本研究設計一款基于Android平臺母乳成分多指標試紙檢測軟件,使檢測結果的顯示更加精準。
母乳喂養對嬰兒生長發育的優勢已廣為人知,其對早產嬰兒尤為重要。母乳中含有各種免疫蛋白,為嬰兒提供免疫能力。此外,可能還有一些尚不清楚的生長因子,有助于嬰兒的神經和認知發育。標準母乳的指標并不存在,人們所說的母乳營養組成,其實是大量母乳的平均組成。實際上,除了前面提到的不同母親之間、同一位母親的不同哺乳期時母乳存在差異之外,同一日的不同時候,甚至同一次喂奶的開始與結束,母乳的組成也都不相同。此外,母親的飲食構成與身體狀況,對于母乳的組成也有一定的影響。對于正常嬰兒而言,只要母親飲食正常,注意營養的全面均衡,完全沒有必要去操心母乳成分,所謂的檢測,也就無實際的意義[2-4]。
在我國,某些醫院已經開始進行母乳檢測,有的把其作為產后的一個必檢項目。對此,有專家指出,對于那些飲食正常、身體健康的普通產婦而言,完全沒有必要做這種檢測。而母乳檢測的研究對象,主要是針對那些營養不良或者患有慢性疾病的特殊產婦,而檢測的目的主要是為了獲得更廣泛的科研數據,以便為調整母親的飲食,提高母乳的質量提供科學依據,在國外,這種檢測主要針對早產嬰兒[5-8]。
基于Android平臺母乳成分多指標試紙檢測軟件,可以檢測分析母乳中蛋白質、乳糖和鈣成分的含量。該軟件有兩種可供選擇的方法,分別為提取灰度值法和提取紅綠藍(red green blue,RGB)亮度法,通過手機攝像頭拍攝的照片進行圖像處理計算,對照比值得出母乳中各成分含量[9]。因此,根據軟件要實現的功能,分別設計圖像采樣模塊、圖像處理模塊以及數據顯示模塊。
母乳的營養成分可分為蛋白質、氨基酸、乳糖、無機鹽以及微量元素等成分,對于試紙檢測而言,檢測氨基酸過于困難,且母乳中的三大主要營養成分是蛋白質、乳糖和鈣,所以此次設計只檢測蛋白質、乳糖和鈣[10]。在圖像采樣模塊中,應先選擇后期圖像處理的方法再進行圖像采樣。使用Android電子設備的拍照功能,拍攝發生反應后的試紙。在攝像頭顯示的屏幕中心設計一個與試紙長寬比相同的長方形取景框,拍攝者在拍攝照片后,需要通過裁剪將試紙部分保留下來,剔除背景區域。
此款軟件設計有兩種處理方法,分別為提取灰度值法和RGB值法。①提取灰度值法需要對標準比色卡的數據進行預處理,首先分別提取試紙現有的比色卡濃度,取得零時和最大時的灰度值,進行二元一次方程的計算,得到一個線性的方程y=ax+b,x為灰度值,y為此灰度值多對應的濃度,精確到小數點后兩位,然后進行圖像處理的軟件編寫,將經過圖像采樣處理后的圖像,提取圖片取景框內的圖片信息,然后根據軟件編程處理提取有效區域的平均灰度值,根據線性方程進行計算,從而得出相對應的濃度;②RGB值法是對RGB值的運算,需要增加標準比色卡中的顏色,這需要選擇中間的顏色。本研究需要將不同成分的標準比色卡中各個階段的顏色分別提取RGB值,根據RGB值在兩個階段中間選擇需要增加的顏色,根據線性關系確定增加顏色的含量值,一個RBG值對應一個含量值,從而生成一個新的比色卡,這種對應關系存儲在軟件中作為對照組。將經過圖像采樣處理后的圖像,根據軟件編程處理提取圖片中心點RGB值,與之前存儲在軟件中的RGB值進行對比,根據計算,選擇出最相近的RGB值,從而得出所對應的含量。
將圖像處理模塊獲得的成分含量,通過顯示程序在Android電子設備的屏幕上實現顯示。
基于Android平臺母乳成分多指標試紙檢測軟件,是一款母乳成分檢測試紙的配套軟件。Android系統的電子設備安裝此款軟件后,可以通過軟件自動啟用的拍照功能拍攝反應后的試紙,選擇所需要的處理方法對得到的圖像進行處理和數據計算,顯示最終的成分含量。軟件共設計了母乳成分的3個指標,分別為蛋白質、糖類和鈣,見圖1。

圖1 基于Android平臺母乳成分多指標試紙檢測軟件分塊設計框圖
對醫學圖像的準確采樣是圖像處理的重要前提。調用電子設備的照相機進行圖像采樣,其有兩種方法:①調用電子設備自帶的拍照軟件進行圖像拍攝;②自行設計照相機軟件。本研究的軟件選擇的第一種方法,調用電子設備自帶的拍照軟件編程較容易,且圖像處理是基于像素所設計,裁剪圖片后整個圖像的像素數恒定,可解決不同設備由于拍攝像素數不同等因素引起的拍攝圖像規格不同的問題。
Android平臺母乳成分多指標試紙檢測軟件圖像采樣時需滿足以下圖像采樣條件:①對試紙盡量垂直拍攝;②在室內光源拍攝,以達到最準確的效果;③采樣區域為整個試紙,試紙中心顯色區域要處于照相預覽框的正中間。
提取灰度值法是將采樣得到符合標準的圖像進行有效區域的灰度值提取,計算平均灰度值,記錄保存平均灰度值數據,作為實驗組數據供下一步進行計算。為了和實驗組的灰度值進行數據計算,需要提前將這種試紙的標準電子比色卡數據存入軟件,作為參照組數據使用。此款軟件可以分析蛋白質、糖類和鈣三種試紙的成分含量,本研究對這三種試紙的標準比色卡分別進行預處理[11]。
(1)蛋白質試紙:從淺到深分別為0 mg/ml、5 mg/ml、10 mg/ml、15 mg/ml及20 mg/ml濃度水平的顏色。分別提取蛋白質濃度水平為0 mg/ml時的灰度值為52,濃度水平為20 mg/ml時灰度值為106。帶入線性方程y=ax+b,計算得出系數a=0.74,b為-38.4,見圖2。

圖2 不同蛋白質濃度水平試紙的顏色變化
(2)蛋白質線性方程:density=0.74×average-38.48,average為軟件提取試紙的平均灰度值,density為所對應的蛋白質濃度。
(3)運用相同方法得出乳糖線性方程:density=2.5×average-112.5。
(4)鈣類線性方程:density=2.8×average-204.4。將得到的average平均灰度值帶入不同試紙成分的線性方程,得出density濃度值。將average平均灰度值所相對應的Zj濃度值顯示在屏幕上,濃度單位為mg/ml,精確到小數點后2位。
提取RGB法是將采樣得到符合標準的圖像,提取圖像中心點的RGB值,記錄保存數據R、G、B值在數組中,作為實驗組數據供下一步計算。
為了和實驗組的RGB值進行數據計算,必須提前將這種試紙的標準電子比色卡數據存入軟件,作為參照組數據使用。此款軟件可以分析蛋白質、糖類和鈣三種試紙的成分含量,對三種試紙的標準比色卡分別進行預處理和記錄數據。預處理分為提取標準比色卡的RGB值和增加標準比色卡的種類兩方面。
提取標準比色卡的RGB值以蛋白質成分作為舉例,首先制作電子版的標準比色卡。由于蛋白質濃度的不同,試紙有不同的顏色變化,不同的顏色對應不同的RGB值,故選擇用ColorPix軟件(可以提取圖片任意點的RGB值)任意多點多次求平均的統計方法來確定不同蛋白質濃度相對應的RGB值。根據圖2可以統計得到數據,見表1。

表1 不同蛋白質濃度對應的RGB值數據
通過對表1數據進行處理,獲得蛋白質標準比色卡數據,見表2。

表2 蛋白質標準比色卡數據(mg/ml)
試紙顏色的深淺變化和濃度大小是線性的關系,故可用求中值的方法來增加比色卡濃度的梯度,得到蛋白質濃度完整標準比色卡數據,見表3。

表3 蛋白質濃度完整標準比色卡數據(mg/ml)
標準比色卡的RiGiBi值會保存在軟件數據中,圖像采樣得到的實驗組RGB值,會分別和不同的RiGiBi值使用公式1進行方差計算,得到X1,X2,X3…Xi;
得到后的X1,X2,X3…Xi,求出最小值Xj,記錄所對應的RjGjBj值。將RjGjBj所應得的Zj值顯示在屏幕上,濃度單位為mg/ml,精確到小數點后1位,方差Xi的計算為公式1:

編寫調用相機拍攝功能的代碼,Android系統調用相機功能算法為:
private static final int PHOTO_PICKED_WITH_DATA=3021;
private static final int CAMERA_WITH_DATA=3023;
Android系統提取調用相機拍攝的圖像代碼:
intent intent=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent,CAMERA_WITH_DATA)[12-15];
在程序中定義一個二維數組,使圖像中每一個像素點都用數組表示出來。為避免越界情況的產生,不算邊界的行和列,因此在算法中行和列的范圍分別是i<width和j<height。其中i為像素點的行數,j為像素點的列數,width為圖像的寬度,height為圖像的高度。
提取灰度值方法是利用灰度計算公式pixelGray=(int)(0.3×r+0.59×g+0.11×b)計算每個像素點的灰度值,其中pixelGray為灰度值,r、g、b分別代表像素點顏色的RGB值。
提取RGB值方法是定義i為width的1/2,j為height的1/2,getPixel(i、j)為圖像中心點,利用提起RGB的公式int r=Color.red(color);int g=Color.green(color);int b=Color.blue(color),分別得到r、g、b的值。
計算母乳濃度代碼編寫分為提取灰度值與提取RGB法。提取灰度值是將提前預處理得到的線性方程保存在軟件中:蛋白質線性方程為density=0.74×average-38.48,average為軟件提取試紙的平均灰度值,density為所對應的蛋白質濃度。
乳糖線性方程為density=2.5×average-112.5;
鈣類線性方程為density=2.8×average-204.4;
軟件所提取的平均灰度值average代入相對應的線性方程得出density密度值反應濃度。
提取RGB法是將表3中的數據定義Ri、Gi、Bi、Zi、Xi保存在軟件中(i=1,2,3,4,5,6,7,8,9)。定義9行2列數組,將Xi和Zi數據相對應的保存在數組中。
方差Xi的計算是利用公式(1)計算得到X1,X2,X3…Xi,求出最小值Xj,得出相對應的濃度值。
3.5.1 軟件主界面
基于Android平臺母乳成分多指標試紙檢測分析軟件有兩種分析方法,分別為提取灰度值法和提取RGB法,使用者需自行選擇所需方法,主界面見圖3。

圖3 基于Android平臺母乳成分多指標試紙檢測軟件主界面
3.5.2 多指標成分界面
選擇處理方法后,用戶可根據所用試紙來選擇試紙的種類,軟件進入試紙種類選擇階段界面,見圖4。

圖4 試紙種類選擇階段界面
3.5.3 圖像采集界面
選擇拍照按鈕,系統相機將被調用,用戶拍照時應對試紙盡量垂直拍攝,光源最好為室內光源,以達到最準確的效果。手動調節完成裁剪,保證試紙發生顯色反應后大部分的面積都在裁剪框內,完成裁剪后,選擇處理按鈕,軟件將會根據用戶所選方法進行圖像處理和分析,見圖5。

圖5 圖像處理界面
3.5.4 數據顯示界面
根據所選擇的試紙不同,軟件分別顯示濃度,見圖6。

圖6 軟件數據顯示界面
在相同環境下,不同相機拍攝出來的照片也不盡相同,這主要有兩個原因:①相機屏幕的顯色不同;②相機攝像頭成像的不同。相機屏幕的顯色對于軟件在計算上不會產生誤差,但是攝像頭的成像則決定著軟件的最終結果[16]。攝像頭的成像不同也許會對測量結果產生較大誤差,所以決定測試兩款不同的手機,安裝此軟件后,選擇提取RGB法進行試紙的測量。在相同光線環境、相同距離垂直拍攝。測試結果見表4。

表4 相同環境下不同手機測量同一試紙的乳糖含量(mg/ml)
不同的手機的確會使測量結果產生誤差,但誤差影響并不很大。本研究表明,此種誤差可以避免,產生誤差的原因主要是制作拍攝標準比色卡時所用的相機和后期用戶的相機不符。如果在制作標準比色卡時用同一款相機進行拍照提取RGB值,將不會因為相機不同,而產生相應的誤差。
在用戶第一次使用軟件之前,可以設計一個界面讓用戶自行拍攝標準比色卡的不同顏色,輸入相對應的濃度,從而生成一個與相機相匹配的標準比色卡,解決了不同相機用同一款標準比色卡數據從而產生誤差的問題。
本項目的軟件可以幫助人類獲取試紙測量的結果,并具有結果顯示清晰,操作簡便、快捷,精度高等特點。
隨著智能手機、平板電腦等電子設備的普及,已經有越來越多的醫療健康方面的應用軟件,而科技化的產品使人類的生活更加輕松。該款軟件的設計初衷是為了幫助眼睛患有疾病、無法識別顏色和對顏色變化不敏感的人們,其使用試紙產品時不需要他人的幫助即可獨立的測量出試紙結果[17]。
本研究利用電子設備拍攝試紙圖像,用軟件進行圖像處理和數學計算,分析顯示成分濃度含量,減少了人工肉眼測量的誤差,提高了測量的準確性[18]。
目前,市面上所銷售的試紙檢測產品的比色卡的數值精確到個位,對比顏色很少,對于有些反應后的顏色不能明確的在比色卡上對比找出,通常人們模糊地估計所含含量,這會產生相應的誤差,如果增加比色卡顏色的種類,使數值更加細化,就可以得到更精準的測量結果,本研究顯示,不同濃度所對應的顏色變化不大,如果要在其中再增加顏色,會使這種變化變得非常細微,肉眼對比非常困難。但是對于電子設備來講,這種細微的顏色變化則很容易分辨,所以本研究利用電子屏幕顏色的多種多樣,增加比色卡的種類,從而提高濃度結果的精確度。
測試軟件只提取屏幕中心一個點的RGB值進行后期計算,這種單點的模式較容易產生誤差,也不夠精確。因此,再修改軟件時可以將中心點改為一個范圍的面積,提取這個面積內每個點的RGB,求取平均,從而保證軟件的準確性。
本研究設計的是一款母乳成分檢測試紙的配套軟件。Android系統的電子設備安裝此款軟件后,可以選擇提取灰度值和提取RGB值這兩種不同的方法,通過電子設備的攝像頭拍攝反應后的試紙,對得到的圖像進行裁剪,處理分析,數據計算,從而得到試紙的濃度含量。運用Java語言和Eclipse軟件完成了母乳檢測分析軟件的編程,將成分含量顯示在Android電子設備的屏幕上。此款軟件共設計了母乳成分的三個指標,分別為蛋白質,糖類和鈣。
本研究涉及的測試此款軟件編程核心算法是灰度值和RGB值兩種:灰度值根據軟件所提取的R、G、B三個數值,代入公式計算,得到一個數值。所以提取灰度值的方法,可以線性的表現出灰度值與濃度的關系,這種方法使得濃度結果的顯示變得一一對應的關系,不存在近似的關系,所以使得結果更加的準確,但目前還沒有理論可以證明濃度的變化和顏色的變化為線性一一對應的關系,為此又設計了根據RGB值計算的方法。直接通過計算最初的R、G、B值,利用方差計算,與標準比色卡進行對比,求出最相近的濃度含量。雖然這種方法的顯示結果只有預存在軟件中的數種濃度,但是此方法則更加科學,有理論依據。
由于本研究設計的測試軟件對于圖像的采樣要求非常高,所以對于拍攝時的光源要求較高。經試驗不同光線對此款項目的測量結果有一定的影響,故在用戶拍照時應基本保證拍攝環境為正常光線,如正常白熾燈的照射。