陳紫微 易小泉 周 猛 張 威 張倚凌 傅茂龍
(華東交通大學理工學院,江西 南昌 330100)
硬幣分離總流程如圖1-1:

圖1-1 總流程圖
利用智能手機等照相設備獲取一張包含3種硬幣的圖像(圖2-1(a)),該樣本圖像選擇黑色作為背景,圖像為png格式,因為該格式圖片具有體積小、無損壓縮、照片清晰等特點,可以提高后期圖像處理的運算速度。
對物體進行顏色特征提取時常使用RGB顏色模型,但RGB顏色易受光照強度影響,所以本文采用對光照強度變化不敏感的顏色模型——HSV,HSV分別為色調(H)、飽和度(S)、明度(V),經過大量實驗并查閱相關資料得出五角硬幣HSV變化區間為[0,56,99]到[180,255,255],一元和一角的HSV變化區間為[0,0,89]到[180,51,219],將提取出的五角和一元、一角的顏色分別放置于創建的黑色背景中,如圖2-1(b)、2-1(c)所示。

圖2-1 硬幣特征的提取
由圖2可見,顏色分離后仍存在一些噪點,可利用形態學手段進行處理。本文先利用開運算去除噪點,即先腐蝕后膨脹,開運算具有能夠除去孤立的小點、毛刺和小橋,而總的位置和形狀不變,開運算后的RGB圖像如圖2-2(a)。然后采用最大類間方差法(又稱Otsu算法)對圖像閾值分割得到二值圖像如圖2-2(b)。
二值圖像中存在許多肉眼看不到的連通域,此時采取膨脹將與物體接觸的所有背景點合并到該物體上,使邊界向外部擴張,填充圖像中的小孔及邊緣處的小凹陷,從而能獲得完整的連通域。最后對連通域進行計數,連通域的個數即為五角硬幣數,如圖2-2(c)為膨脹后具有2個連通域的圖像。

圖2-2 圖像的處理
從圖2-1(c)中可以看出顏色分離后的圖像不夠平滑,存在許多凹坑,如直接對該圖像邊緣檢測會提高后期霍夫變化的計算量,所以先對圖像預處理,先開運算后膨脹。開運算時必須選擇適當的結構元素。圖3-1(a)選擇disk結構元素開運算后的二值圖像,硬幣的大致輪廓信息已經丟失,這對后期Hough變換檢測圓很不利,經過大量實驗后選取line結構元素對圖像進行開運算,結構元素se=strel(′line′,10,45)開運算后如圖3-1(b),可見圓形輪廓基本保留。

圖3-1 開運算后的二值圖像
開運算后閾值分割轉化的二值圖像不夠平滑,所以可對圖像進行膨脹,本文選擇結構元素ones(12,12)對圖像膨脹,膨脹后如圖3-2(a)所示。膨脹處理后對其進行邊緣檢測,本文利用Canny算子進行邊緣檢測,檢測結果如圖3-2(b)。

圖3-2
Hough變換實質是對圖像進行坐標變換,將圖像空間的線條變為參數空間的聚集點,從而將原始圖像中檢測給定形狀的曲線問題,變成尋找參數空間中峰點的問題。它可以檢測直線,同時也能夠很好地檢測圓和橢圓,檢測圓形的原理如下:
根據圓的平面方程(x-a)2+(y-b)2=r2,通過Hough變換將圖像空間(x,y)轉換到參數空間(a,b,r),然后對其進行累加完成檢測。但此方法的計算量很大,所以在進行Hough變換之前都需要對圖像進行邊緣提取,利用邊界像素的灰度梯度信息估計出下式中的角度θ,以此來降低計算量:

(1)
根據公式(1),需要對半徑r和角度θ進行搜索,所以這里應該首先設置半徑和角度方向的搜索步長step_r和step_angle,接著給出半徑搜索的最大和最小值,這2個數值根據經驗確定,然后就可以確定半徑和角度的最大搜索次數。最后根據式(1)計算出對應參數a和b,根據a,b的范圍確定hough空間累加器hough_adder是否自增。
由于圖像中不止一個圓,所以不能直接利用hough_adder中的最大值確定半徑,需要設置閾值thre來確定一定半徑的圓,當閾值設置合理才可找出圖像中的圓。對閾值范圍內的點進行搜索,當滿足圓周內外各5個像素點時,該點可以認為是我們搜尋圓上的點。通過Hough變換將圖像中圓檢測出來,并且可以將圓心坐標和圓半徑都顯示出來。
最后通過區分圓半徑的方法區分出一元和一角硬幣,由于這里設置搜索出來的圓半徑是逐漸遞增的,所以只需要判斷在兩個相鄰點之間圓的半徑是否存在跳變。因為如果是不同的一元硬幣,即使受拍照角度的影響,它們的半徑值也不會相差很多。由于我們只提取出一元和一角硬幣,這樣我們就可以把圓分成2類,然后在每一類中再尋找半徑相似的圓位于不同坐標的個數,也就確定了同樣面值的硬幣的個數。Hough變換圓形檢測結果如圖3-3。

圖3-3 Hough變換圓形檢測
五角硬幣分離的關鍵在于HSV參數選取,該參數會受光照強度的影響,因此需要根據不同工程應用進行適當調節,以獲取最佳識別效果。Hough變換檢測圓的關鍵在于閾值選取,如果選擇偏大,則無法將圖像中的圓都檢測出來。相反,如果偏小,那么可能檢測出圖像中其它的非目標圓。