基于嵌入式的裂紋實(shí)時測量系統(tǒng)的設(shè)計
ARM運(yùn)行測量結(jié)果截圖
2 基于Linux的QT界面設(shè)計算法
前文討論的是主要的算法部分,完整的裂紋測量系統(tǒng)還包括用戶接口部分,即圖形界面接口。在ARM上采用QT進(jìn)行界面設(shè)計已經(jīng)比較成熟,它具有以下主要特點(diǎn):
(1)入門容易、學(xué)習(xí)成本低。了解基本概念后就可以邊查文檔邊寫程序。
(2)跨平臺效果好。本來是Linux下的工具庫,Linux是一類Unix計算機(jī)操作系統(tǒng)的統(tǒng)稱。Linux操作系統(tǒng)的內(nèi)核的名字也是“Linux”。Linux操作系統(tǒng)也是自由軟件和開放源代碼發(fā)展中最著名的例子。嚴(yán)格來講,Linux這個詞本身只表示Linux內(nèi)核,但在實(shí)際上人們已經(jīng)習(xí)慣了用Linux來形容整個基于Linux內(nèi)核,并且使用GNU 工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。Linux得名于計算機(jī)業(yè)余愛好者Linus Torvalds。
3 軟件移植與程序優(yōu)化
由于最終的程序是運(yùn)行在ARM系統(tǒng)上,而由于ARM處理圖像時的速度慢與裂縫測量儀器的實(shí)時性要求,必須對程序進(jìn)行優(yōu)化,并將算法移植到ARM系統(tǒng)上,使之可以正確運(yùn)行。
程序的優(yōu)化是一個問題,雖然現(xiàn)在的ARM速度已經(jīng)提高了很多,但是在處理圖像時還是很吃力,加上算法中需要對原圖像兩次獨(dú)立處理,相當(dāng)于加倍了ARM的負(fù)擔(dān)。通過對大量裂縫圖像的分析,針對前文中提出的裂縫特點(diǎn)以及結(jié)合ARM本身的運(yùn)算速度條件,提出剔除處理全部圖像的算法。采用了只處理給定行位置上下10行的區(qū)域。通過只處理這20行圖像,極大地提高了程序的運(yùn)行速度。以上方法并行,還采用多線程編程方法,通過將圖像采樣與圖像的處理分為兩個進(jìn)程完成,有效地提高了程序的運(yùn)行速度。
4 實(shí)驗(yàn)結(jié)果分析
該程序分別在PC機(jī)和ARM開發(fā)板上運(yùn)行,效果如圖7,圖8所示。
通過大量的實(shí)驗(yàn)發(fā)現(xiàn)該算法能較好地檢測出裂縫的分布和寬度。在算法中采用了結(jié)合OTSU圖像分割與Sobel邊緣檢測的混合算法進(jìn)行裂紋檢測與寬度測量。這種算法能分別有效利用邊緣檢測與圖像分割兩種方法各自的優(yōu)點(diǎn)。
5 結(jié) 語
針對墻體裂紋測量,設(shè)計出了一套適用于裂縫寬度檢測的算法。該算法能較好地檢測出裂縫的分布和寬度。采用邊緣檢測與圖像分割混合的方法并通過對大量圖像進(jìn)行分析,對算法添加了一系列符合圖像裂縫特征的約束條件,極大地提高了算法的準(zhǔn)確性與健壯性。分別將程序運(yùn)行于PC機(jī)系統(tǒng)與ARM系統(tǒng),并針對ARM系統(tǒng)的特點(diǎn)對算法進(jìn)行了一系列優(yōu)化,引入了并行處理技術(shù),在提高ARM運(yùn)行速度的同時,使得ARM系統(tǒng)檢測出的結(jié)果達(dá)到與PC機(jī)系統(tǒng)幾乎同等的效果。
評論