基于嵌入式ARMS3C2440的裂纹实时测量系统的设计
通过添加以上约束,实验效果有了明显的提高。
图7是PC机的结果,由于同时使用了5个约束效果比较好。图8是ARM系统运行的截图,由于在ARM上不方便分步计算出每一个步骤,故直接给出了带有测量结果的截图。
PC机计算结果
ARM运行测量结果截图
2 基于Linux的QT界面设计算法
前文讨论的是主要的算法部分,完整的裂纹测量系统还包括用户接口部分,即图形界面接口。在ARM上采用QT进行界面设计已经比较成熟,它具有以下主要特点:
(1)入门容易、学习成本低。了解基本概念后就可以边查文档边写程序。
(2)跨平台效果好。本来是Linux下的工具库,Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是"Linux"。Linux操作系统也是自由软件和开放源代码发展中最着名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux得名于计算机业余爱好者Linus Torvalds。
3 软件移植与程序优化
由于最终的程序是运行在ARM系统上,而由于ARM处理图像时的速度慢与裂缝测量仪器的实时性要求,必须对程序进行优化,并将算法移植到ARM系统上,使之可以正确运行。
程序的优化是一个问题,虽然现在的ARM速度已经提高了很多,但是在处理图像时还是很吃力,加上算法中需要对原图像两次独立处理,相当于加倍了ARM的负担。通过对大量裂缝图像的分析,针对前文中提出的裂缝特点以及结合ARM本身的运算速度条件,提出剔除处理全部图像的算法。采用了只处理给定行位置上下10行的区域。通过只处理这20行图像,极大地提高了程序的运行速度。以上方法并行,还采用多线程编程方法,通过将图像采样与图像的处理分为两个进程完成,有效地提高了程序的运行速度。
4 实验结果分析
该程序分别在PC机和ARM开发板上运行,效果如图7,图8所示。
通过大量的实验发现该算法能较好地检测出裂缝的分布和宽度。在算法中采用了结合OTSU图像分割与Sobel边缘检测的混合算法进行裂纹检测与宽度测量。这种算法能分别有效利用边缘检测与图像分割两种方法各自的优点。
5 结 语
针对墙体裂纹测量,设计出了一套适用于裂缝宽度检测的算法。该算法能较好地检测出裂缝的分布和宽度。采用边缘检测与图像分割混合的方法并通过对大量图像进行分析,对算法添加了一系列符合图像裂缝特征的约束条件,极大地提高了算法的准确性与健壮性。分别将程序运行于PC机系统与ARM系统,并针对ARM系统的特点对算法进行了一系列优化,引入了并行处理技术,在提高ARM运行速度的同时,使得ARM系统检测出的结果达到与PC机系统几乎同等的效果。
ARMS3C2440 OTSU图像分割 Sobel边缘检测 相关文章:
- 基于嵌入式的裂纹实时测量系统的设计(01-30)