曹 妍,陳 偉
?
基于MATLAB圖像處理的藥片計數方法研究
曹 妍1,陳 偉2
(1. 鹽城工學院 信息工程學院,江蘇 鹽城 224051;2. 鹽城市第一人民醫院 信息科,江蘇 鹽城 224005)
針對傳統的用目測法對藥片進行計數,提出了一種基于MATLAB圖像處理的方法,經過灰度化、圖像濾波去噪、圖像分割等,對圖像進行二值化處理,利用連通特性,實現藥片的計數,并用實例驗證其可靠性。該方法彌補了傳統方法的不足,提高了效率和準確率,減少了對藥物的污染和損壞,并為進一步研究奠定了理論和實踐基礎,能較好地完成藥片的計數。
MATLAB;藥片計數;圖像處理
隨著國民經濟的發展和人民生活水平的提高,關乎人民健康的醫藥產業越來越受到重視。而目前我國部分藥企的自動化檢測水平有待提高,有些藥廠的藥片計數還采用人工計數,藥劑師分裝散裝藥片時也采用人工計數,費時費力。傳統接觸式自動或半自動的藥片計數器,多數采用機械式計量器 具[1]。隨著數字圖像處理技術的發展,將數字圖像處理技術應用到藥片計數上,通過獲取藥片圖像、將藥片圖像灰度化、對藥片圖像進行濾波去噪、對圖像進行分割得到二值圖像,最終通過連通圖的數目實現藥片的計數。通過數字圖像處理技術進行藥片計數,不僅能夠加快速度,而且能夠減輕醫務人員的工作量,同時也能減少對藥物的污染損壞。
常用的圖像輸入設備主要有攝像機、數碼相機、掃描儀和各種遙感圖像獲取設備(如紅外攝影設備、微波設備)等[2,3]。本文采用數碼相機,將攝取的藥片群圖像通過A/D轉換以數字格式存放起來,圖像具有清晰度較高、操作簡單、移動性強等優點。
目前比較流行的圖像處理的開發工具有Visual C++面向對象可視化集成工具,MATLAB的圖像處理工具箱和GUI開發環境,以及一些圖像應用軟件,比如Photoshop、CorelDraw、ACDSee等等。MATLAB圖像處理工具箱中提供了豐富的圖像處理函數,運用這些庫函數可以省去編寫復雜的底層算法代碼的時間,把注意力集中在圖像處理的方法上。數字圖像為二維矩陣,而MATLAB擅長矩陣運算,本文中就采用MATLAB進行藥片圖像的處理。在MATLAB中調用函數imread讀入圖像,imread的語法為imread(‘filename’);所支持的圖像文件格式有:TIFF,JPEG,GIF,BMP,PNG,XWD等,而一般數碼相機生成的圖像格式通常為JPEG格式,可以通過imread語句讀入系統。
利用數碼相機獲取的圖像通常是真彩色JPEG格式,真彩色圖像既包含亮度信息又包含色彩信息,而灰度圖像只包含亮度信息,不包含色彩信息。對于同樣一幅M×N大小的圖像來說,真彩色圖像要由3個同樣大小的表示灰度圖像的矩陣表示。所以,把真彩色圖像轉換成灰度圖像,可以大幅度減少圖像的數據量,同時保留了必要的信息,減輕后期圖像處理的工作量[4]。因此,藥片圖像預處理的第一步就是把彩色圖像轉換為灰度圖像。本文中采用RGB模型轉換算法對數碼相機獲得的真彩色圖像轉化為灰度圖像。轉換的基本公式為

其中,R、G、B為彩色圖像中某個像素的3個分量,r,g,b是強度系數。在MATLAB中調用rgb2gray函數將一幅RGB圖像轉換為一幅灰度圖像,其中,系數取值為r=0.2989,g=0.5870,b=0.1140。函數rgb2gray的語法為gray_image=rgb2gray(rgb_image)。
圖像濾波的作用是在濾除圖像中的噪聲的同時,保留圖像的邊緣信息。因為在圖像獲取的過程中,會受到多方面因素的影響,噪聲不可避免的夾雜在了獲取的圖像中,有外部噪聲也有內部噪聲。在藥片群圖像中的這些噪聲會影響到藥片的計數,所以要進行去噪處理。常用的去噪方法有鄰域平均法,中值濾波,邊界保持類濾波等。對于某一個像素而言,如果這一點的灰度值與周圍像素點相比,有明顯的不同,就認為該點被噪聲污染了。基于此分析,鄰域平均法對某一像素點鄰域內的像素取平均值的方法來代替該點的像素值,而平均是以圖像的模糊為代價換取噪聲的降低的。噪聲在圖像中屬于高頻信息,而圖像的邊緣也含有大量的高頻信息,所以在去噪的同時,平滑操作也使邊界模糊了[2,5,6]。而中值濾波在濾除噪聲的同時還能保留邊緣信息,對消除孤立點、線段脈沖干擾,圖像掃描噪聲非常有效,本文選取中值濾波去除圖像的噪聲。在MATLAB中調用函數medfilt2實現中值濾波。
對藥片圖像進行濾波去噪以后,下一步就要將圖像中的藥片從背景中分離出來,也就是將目標與背景分離。在目標與背景的對比度比較強的圖像中,應用閾值分割技術非常有效[7]。閾值處理直觀、實現簡單并且計算速度快。藥片圖像中背景暗,藥片亮,因此需要找到一個閾值T,灰度值大于T的像素點重新賦值為1,為目標藥片;小于T的像素點重新賦值為0,為背景。這樣就將目標和背景區分開了。當T是一個適用于整個圖像的常數時,稱為全局閾值方法;當T在一幅圖像上改變時,稱為局部閾值方法。由于在藥片圖像中背景灰度恒定,藥片和背景的對比度幾乎不變,因此采用全局閾值方法。全局閾值是最簡答的圖像分割方法。根據不同的目標,選用最佳的閾值。常用的確定最佳分割閾值的方法有實驗法、直方圖法、最小誤差的方法、最大類間方差法等。最大類間方差法又稱為Otsu’s method。此算法選擇的閾值使目標和背景之間的類間方差最大。而目標和背景的類間方差越大,這兩部分的差別就越大,從而據此找出最佳的閾值。該算法簡單、快速、分割精確、適用范圍廣,本文采用此種閾值分割方法[2,8,9]。

pi=ni/ N
由此可得
類間方差定義為
從而得到
MATLAB的圖像處理工具箱中提供了graythresh函數利用Otsu’s method計算全局灰度閾值。語法格式為LEVEL=graythresh(I),其中I是灰度圖像,LEVEL是返回的歸一化全局閾值,即求得的最佳閾值。然后利用im2bw函數按照閾值LEVEL把灰度圖像I轉換為二值圖像BW。語法格式為BW= im2bw(I,LEVEL)。
二值化后的圖像像素只有1和0兩種取值,分別表示目標和背景。在二值化后的藥片圖像中,像素值為1的區域是藥片區域,即目標區域,圖像上為白色區域;像素值為0的區域是背景區域,圖像上為黑色區域。由于一個藥片的圖像像素是連續的,在圖像處理中就表現為連通性,所以可利用計算連通圖的數目,也就是白色區域的數目,求出藥片的數目[10]。MATLAB中調用bwlabel函數利用4連通或者8連通準則求出連通圖的數量。
為了驗證算法的可行性,對數碼相機拍攝的藥片圖像進行分析,通過對圖像灰度化、中值濾波、圖像分割、目標標定并輸出結果實現藥片的計數。采用MATLAB實現的具體代碼如下:
I=imread('d:藥片.jpg');
imshow(I);
g=rgb2gray(I);
figure,imshow(g);
m=medfilt2(g);
figure,imshow(m);
LEVEL=graythresh(m);
display(LEVEL);
bw=im2bw(m,LEVEL);
figure,imshow(bw);
[A,m] = bwlabel(bw, 4);
display(m);

圖1 藥片圖像
圖1(a)為藥片原始圖像,圖1(b)為二值化以后的圖像。圖2為MATLAB命令窗口中顯示的圖像分割采用的全局閾值LEVEL的值以及藥片的數目m。

圖2 MATLAB命令窗口
通過以上論述以及實例分析得出:利用MATLAB圖像處理技術可以完成藥片的計數。本文通過對圖像的預處理,利用最大類間方差法對圖像進行分割,最后通過目標標定得到最終的結果。經過多次反復實驗,結果表明,在藥片沒有疊壓粘連的情況下算法的準確率可達到100%。基于MATLAB圖像處理的藥片計數方法具有準確率高、自動化、非接觸、效率高等優點,相比傳統的藥片計數方法有一定的優勢,為后續進一步研究奠定了基礎。
[1] 曹珊珊. 基于圖像處理的藥片計數算法研究[D]. 武漢: 華中科技大學, 2010.
[2] 胡學龍. 數字圖像處理(第3版)[M]. 北京: 電子工業出版社, 2014.8.
[3] 張傳棟, 徐漢飛, 陳弘毅, 等. 基于超紅圖像與輪廓曲率的蘋果目標識別與定位方法研究[J]. 軟件, 2015, 36(8): 30-35.
[4] 賈鵬, 李永奎, 趙萍. 基于Matlab圖像處理的谷物顆粒計數方法研究[J]. 農機化研究, 2009, (1): 152-153.
[5] 曹妍, 陳偉, 徐森. 圖像去噪方法研究與仿真[J]. 軟件, 2015, 36(4): 33-36.
[6] 張魯松, 張壽明. 基于ABDND算法的爐膛火焰圖像脈沖噪聲濾波研究[J]. 軟件, 2018, 39(01): 21-28.
[7] 崔佳, 汪劍鳴, 王興波, 等. 基于機器視覺技術的藥片灌裝自動計數系統的設計[J]. 天津工業大學學報, 2008, 27(1): 60-62, 66.
[8] 郭璇, 鄭菲, 趙若晗, 等. 基于閾值的醫學圖像分割技術的計算機模擬及應用[J]. 軟件, 2018, 39(3): 12-15.
[9] 楊玚, 謝華成. 基于馬爾科夫隨機場與模擬退火算法的圖像分割[J]. 軟件, 2015, 36(4): 40-43.
[10] 賈雄, 葉邦彥. 基于圖像處理的藥片計數系統設計[J]. 電子設計工程, 2013, 21(12): 67-69, 72.
Research on Tablet Counting Method Based on MATLAB Image Processing
CAO Yan1, CHEN Wei2
(1. School of Information Engineering, Yancheng Institution of Technology, Yancheng Jiangsu 224051, China; 2. Yancheng First People’s Hospital, Yancheng Jiangsu 224005, China)
Aiming at the traditional method of counting pills by visual method, a method based on MATLAB image processing is proposed. After image graying, filtering, segmentation, etc., the image is binarized and the connectivity is used to count the tablets, and the reliability is verified by an example. The method makes up for the deficiencies of the traditional methods, improves the efficiency and accuracy, reduces the pollution and damage to the drugs, and lays a theoretical and practical basis for further research, and can better complete the counting of the tablets.
MATLAB; Tablet counting; Image processing
TP391
A
10.3969/j.issn.1003-6970.2018.09.003
江蘇省科技廳科技支撐計劃項目(BY2016065-02);鹽城市科技計劃項目(DX2015-018)
曹妍(1981-),女,講師,碩士,研究方向為圖像處理;陳偉(1979-),男,碩士,工程師,研究方向為網絡與信息處理。
本文著錄格式:曹妍,陳偉. 基于MATLAB圖像處理的藥片計數方法研究[J]. 軟件,2018,39(9):13-15