丁澤宇,弓 偉
(1.長治學院,山西 長治 046000; 2.廣州中醫(yī)藥大學,廣東 廣州 510006)
近年來,伴隨著電子技術的飛速發(fā)展,實驗室中各式各樣的電阻越來越多。尤其是在學生上完實驗課后,收集起來的大量電阻在分類時,需要人工拿著萬用表挨個測量,費時費力。圖像識別電阻的方法成為近些年來的研究方向。付秀芹在她的研究中利用了電阻色環(huán)的特性,使用圖像的方法對電阻進行了初步識別[1]。之后劉桄序又對色環(huán)的編碼規(guī)律進行了深入的研究[2]。后續(xù)大家又對不同種類的電阻做了研究并且設計了軟件系統(tǒng)使得識別電阻的工作能夠全自動完成[2-4]?;谝陨瞎ぷ鳎疚闹械幕贠penCV的攝像頭測量電阻分為軟件系統(tǒng)和算法,如圖1和圖2所示。圖1中手機端負責拍照,將圖片發(fā)送到服務器端。服務器端通過算法計算出結果,返回手機端顯示。而算法部分分為以下幾個步驟,背景去除,定位電阻位置,定位色環(huán)位置,計算結果。
圖1 攝像頭測電阻的系統(tǒng)結構
色環(huán)電阻上有四道色環(huán)或者五道色環(huán)用來表示電阻值。這樣可以從任意角度來讀取電阻的顏色信息,無論電阻怎么擺放,都可以方便地從顏色信息上讀取出該電阻的阻值,便于檢測和更換維修。本系統(tǒng)以四環(huán)電阻作為示例講解。
圖2 色環(huán)電阻的介紹
第一色環(huán)是十位數(shù),第二色環(huán)是個位數(shù),第三色環(huán)是應乘顏色次冪顏色次,第四色環(huán)是誤差率。其具體的顏色對應關系為:棕1,紅2,橙3,黃4,綠5,藍6,紫7,灰8,白9,黑0。例如:棕、紅、紅、金,其阻值為12×10^2=1.2K,誤差為±5%。圖2為一個根據(jù)色環(huán)讀取電阻的例子。
誤差表示電阻數(shù)值,在標準值1200上下波動(5%×1200)都表示此電阻是可以接受的,即在1140~1260之間都是好的電阻。
首先需要將大量的電阻放置在一張白紙上,并且保證相互之間沒有重疊,如圖3所示。由于電阻在圖像中的顏色和白紙之間的差別較大,則可以通過設定圖像的閾值將白紙和電阻分離開來。經(jīng)過大量的實驗觀察,白紙的R,G,B的標準差較小,而色環(huán)顏色的R,G,B標準差比較大。因此可以設定閾值為15來判別電阻和白紙
(1)
圖3 去除背景后的電阻圖像
在區(qū)分背景之后,需要區(qū)分開多個電阻。于是首先對圖像進行二值化,將電阻的圖像轉(zhuǎn)化為白色,背景為黑色。但是電阻還有周邊的導線以及陰影的影響,需要先進行膨脹腐蝕操作,去除干擾。在剩下的白色圖像中找到他們的最小外接矩形,該矩形要滿足:長寬比大于1.8,并且電阻圖像占矩形的面積百分比不得小于70%。如圖4所示為滿足條件的電阻圖像。
(2)
圖2中的第三個色環(huán)為紅色色環(huán),則橙色的R,G,B值為(160,85,55)則,識別橙色的閾值范圍為相對應的R,G,B值上下浮動10%,即橙色的閾值為R(144,176),G(76.5,93.5),B(49.5,60.5),其他顏色類似。則使用上述閾值檢測出來的橙色色環(huán)位置如圖5所示。其他顏色的色環(huán)的閾值對應關系如表1所示。
圖4 分割出來的電阻圖像
圖5 識別色環(huán)位置
色環(huán)顏色閾值(R,G,B)棕(210,105,30)紅(255,5,5)橙(160,85,55)黃(247,238,214)綠(5,250,5)藍(5,5,250)紫(247,238,214)灰(247,238,214)白(250,250,250)黑(5,5,5)
從圖中可以看出有很多干擾的斑點,為了找到色環(huán)的位置,同樣可以使用OpenCV找到每個白色圖像的最小外接矩形。設置長寬比限制在4以上,同時約束面積須大于20作為條件,找到色環(huán)所對應的最小外接矩形,選擇矩形中所有像素的中心點坐標作為該色環(huán)的坐標位置,如公式3所示。同理,遍歷10種顏色,如果能找到相應顏色的色環(huán),使用相同的方法計算色環(huán)的位置。
(3)
在遍歷完10種顏色之后,可以得到各個色環(huán)在電阻中的位置關系。在遍歷10種顏色之后,得到4種顏色的色環(huán)位置,其中黑色有兩個,則可以簡單通過橫坐標對其進行排序。則圖中的電阻色環(huán)從左到右依次為:黑(262,214),橙(288,252),黑(337,293),紫(383,342),黃(427,401)。根據(jù):棕1,紅2,橙3,黃4,綠5,藍6,紫7,灰8,白9,黑0的規(guī)則,第一色環(huán)為0,第二色環(huán)為3,第三色環(huán)為0,第四色環(huán)為7,第五色環(huán)為4。則其電阻的計算結果為30×107Ω,誤差為±5%。
本文介紹了一種基于OpenCV開發(fā)的攝像頭識別電阻的系統(tǒng)。系統(tǒng)由軟件系統(tǒng)和算法組成。軟件系統(tǒng)分為手機客戶端和服務器端,手機客戶端負責采集圖像發(fā)送給服務器,服務器通過算法計算出軟件阻值之后發(fā)送給手機客戶端顯示。算法部分分為去除背景,電阻定位和色環(huán)定位。通過軟硬件的結合,本系統(tǒng)能夠快速識別大量電阻阻值,省去了人工使用萬用表測量阻值的繁瑣過程。