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