李杰
(承德石油高等??茖W校 熱能工程系,河北 承德067000)
通常,由CCD 攝像頭拍攝到的指針表圖像是低質量的,存在的噪聲較多,如:光源照射強弱、指針表表盤干凈程度以及CCD 攝像頭的移動速度等因素等會影響圖像的質量。圖像預處理為的是盡可能去除噪聲,加強前景和背景的對比度。一幅理想的指針表表盤圖像是一幅二值化的黑白圖像,但想得到理想圖像卻并不容易。預處理后得到一幅清晰基本上無粘連無斷裂且盡可能存在少量或不存在偽特征點的指針圖像,供自動計算讀數(shù),尤為重要。自動識別系統(tǒng)預處理算法設計的好壞不僅影響圖像處理后的效果,而且還直接影響到指針表自動識別的準確度、速度及其穩(wěn)定性。為此,提出了改進歸一化算法、圖像增強算法及數(shù)學形態(tài)學表盤圖像預處理等算法,極大地降低了自動讀數(shù)的誤差,提高識別準確性;另一方面縮短了表盤圖像預處理所用時間,從而提高系統(tǒng)的實時性。
采用CCD 攝像頭作為傳感器,攝取到指針表表盤圖像后,把其轉換為指針表表盤灰度圖像,經歸一化處理、圖像增強、二值化、二值化濾波去噪、數(shù)學形態(tài)學處理及細化等處理流程,最后進行指針識別與自動讀數(shù)[4]。指針表圖像自動識別系統(tǒng)流程框圖如下圖1 所示。
圖1 指針表圖像自動識別系統(tǒng)流程圖
一般情況下我們采集到的指針表表盤圖象質量不會很高,有著很多地干擾等噪聲。所以,必須對采到的表盤灰度圖像時行預處理(歸一化,圖像分割處理,圖象增強處理,二值算法與細化處理等),就可將具有較多噪聲干擾的初始指針表表盤灰度圖像處理成一幅刻度線基本沒有粘連、沒有斷裂的二值化黑白相間的指針表表盤圖像。
歸一化算法是把原始指針表表盤圖角上的每一個像素點加工處理,進行灰度值改變,清除指針表表盤表面的殘留噪聲以及光源光照強度對表盤圖像的影響。通常把圖象進行w×w(16×16)分割為小的子塊,對子塊分別求其灰度均值Mi 和灰度方差Vi。那么,按如下公式求取子塊的灰度均值與方差:
其中I(x,y)是子塊中像素(x,y)的灰度值,其進行歸一化算法處理的目的是使其方差均值能夠調整到可控的預期范圍,如以G(i,j)表示像素點(x,y)經過歸一算法化處理后的值,那么第I 個子塊運行歸一化算法處理后所得到的灰度值按如下所示:
經過歸一化處理以后的指針表表盤圖象,我們使用平均法對它進一步平滑處理。圖像進行讀取的時候由于隨機噪聲等各個方面的干擾破壞了原來圖像的真實性,因此利用另外一種方法平滑濾波就能夠極大的降低隨機噪聲的干擾,從而大大地提高了識別的準確性、可靠性。濾波后要想得到更加清晰的圖象,并且有均勻可靠的對比度,通過利用3×3 模板進行平滑處理。原圖中每個象素點的灰度值是這樣處理的,把它與周邊緊密相接鄰的8 個象素點的灰度值進行相加處理,從而得出新的圖象,新圖中其像素的灰度值用這種方法得得出的平均值來替代。公式如下:
其中:G(i,j)用來代表原來圖象第i 行第j 列,那么這樣的象素點運用歸一化處理后的象素值NewG(i,j)來表示。運用平滑模板對圖2 進行處理濾波可獲得如圖3 所示的指針表表盤圖象。
其中:G(i,j)i 行第j 列,那么這樣的象素點運用歸一化處理后的象素值NewG(i,j)來表示。運用平滑模板對圖2 進行處理濾波可獲得如圖3 所示的指針表表盤圖象。
圖2 原始表盤灰度圖像
圖3 歸一化處理后表盤圖像
要想獲得圖像中有價值的那部分,還得進行分割處理,所謂的分割處理就是把它的前景、背景分開,從而把想要的圖象有效部分和不想要的無效圖象部分進行明確分開。通過灰度門限設置域值法可將表盤圖象進行很好的二值化分割。從而準確地確定出有效區(qū)域圖象。圖4 運行二值化處理后可得到如圖5所示的圖象。
圖4 平滑后指針表表盤圖像
圖5 二值化后指針表表盤圖像
數(shù)學形態(tài)學(Mathematical Morphology),它是建立在嚴格數(shù)學理論基礎上的一門學科,它運用一種集合論方法,從而可以定性定量的描述出目標幾何結構的學科。膨脹(或擴張)、腐蝕(或侵蝕)、開啟與閉合是數(shù)學形態(tài)學的4 個基本運算,以這4 種為基礎,從而可推導并對其進行組合,構成具有多種數(shù)學形態(tài)學的適用算法。
在灰度指針表表盤圖像處理中,運用形態(tài)學中的膨脹腐蝕算法,能夠除掉脊或谷區(qū)域中的麻點干擾,我們連接脊線上的窄縫,從而脊區(qū)變得更黑,強調突出脊區(qū)與周邊的對比度,能夠除掉脊線上所有干擾的小毛刺。同時,能夠除掉表盤油污造成的刻度線之間相互粘連,除掉我們在預處理進修進一步造成的相鄰刻度線上的連接或斷裂,造成細化時添加虛假刻度線或減少真實刻度線。目的是盡量把引入的偽特征信息濾除,從而把原始表盤圖像中的真實信息盡可能多的保留住,把識別的準確率提高到最大。從圖5 能夠了解到圖像里或多或少總是存在一些干擾線,所以我們運用形態(tài)學里的膨脹與腐蝕算法,以便處理圖5,就能夠很好地除掉圖象中多余黑點或分叉線造成的干擾。處理后如圖6 所示為濾波后的二值化表盤圖像。
細化算法的引入就是單元化,目的是減少圖中的邊沿象素,使之轉化為只有一個象素寬度的圖像。經過腐蝕運算后讓它變?yōu)? 個單位像素的寬度,從而能夠增強圖像的具體特征,并減少多余信息。因此,對二值化后圖象進行細化,能夠極大提高識別的準確性與快速性。經細化處理后如圖7 所示。
圖6 膨脹與腐蝕運算后表盤圖像
圖7 細化后表盤圖像
圖像預處理的好壞決定最終自動讀數(shù)的準確性,經大量實驗證,本文提出的整套預處理方案:指針表表盤圖象歸一化算法,圖像平滑處理,二值化處理,數(shù)學形態(tài)學去噪及細化算法濾波預處理,其預處理結果能夠達到令人滿意的效果。系統(tǒng)具體實施均采用VC++編程實現(xiàn)。實驗運用了100 塊不同型號與不同類型的指針類圖像,分別采用人工和軟件進行識別比對,用實驗數(shù)據(jù)統(tǒng)計計錄,每塊表進行不同位置取點(10 個點),總共取出1000 個點進行實驗測試,最后985 個點的自動讀數(shù)準確度高于人工讀取,準確度高達98.5%。同時,實驗測試結果表明該系統(tǒng)識別出一個點的計數(shù)所用的時間僅為0.4 秒左右,大大高于人眼識別速度;其識別精度能夠達到0.1 度(相對指針的旋轉角度),也遠遠高于人眼對表盤的識別精度。以上數(shù)據(jù)進一步驗證了所提預處理算法的有效性。