基于DSP数字信号处理器的墙体裂缝测图像的处理
后的处理过程首先要对图像进行中值滤波,其次通过灰度值修正,取得最优阈值后再进行二值化分割,以完成对图像的处理。
中值滤波算法的C语言实现过程首先是确定中值滤波窗口与形状,然后将窗口内的像素值存入数组中,再通过冒泡法对该数组进行排序以取出中值,最后用该中值替换原来窗口的中心像素,至此,便实现了图像的中值滤波。由于墙体裂缝图像的特殊性,灰度值修正算法的C语言实现过程是先获取用户感兴趣的灰度区域[A,B],再利用循环对每个像素点的值M进行判断,若M<A,则将M赋值为0,若M>B,则将M赋值为25 5,若A<M<B,则有:
式中INT为取整,通过以上运算,便可实现感兴趣区域的灰度拉伸,使对比度增强。图2所示是通过C语言实现中值滤波与灰度修正的具体流程图。
在阈值分割算法的C语言实现过程中,由于裂缝图像中的裂缝和墙体背景的灰度值相差较大,因此,其直方图会呈现明显的双峰形状,而将该谷值作为分割的阈值来进行二值分割会得到较好的分割图像。一般情况下,采用迭代阈值分割法比较适合。用迭代的方法来对阈值进行迭代,能够自适应地寻找出最优的阈值。然后将每个像素值与阈值进行比较,大于阈值时,将该点的像素值置为255;小于阈值时,将该点的像素值置为0。此时,便完成图像的二值化分割。在整个过程的运行中,主函数先开始执行,并先进行初始化,包括将图像数据装入到指定的存储空间,设置图像的边界和大小,通过迭代阈值法得到最佳阈值T等,接着再进行中值滤波,然后进行灰度修正,再后进行阈值分割,至此便完成了整个图像的处理过程。通过C语言实现阈值分割算法以及整个图像处理的流程如图3所示。
4 仿真结果分析
本文利用DSP集成开发平台CCS对裂缝图像的处理进行了仿真,并通过建立新的工程将主程序以及相关的库函数加入到工程中,然后在配置存储空间和编译链接后,链接了仿真器,并将生成的下载文件下载到仿真器中,最后设置断点,开始运行程序,观察每次图像处理的结果。其具体的仿真结果如图4所示。
在图4中,图4(a)为原图像,(b)为经过中值滤波后的图像,该图像中的噪声有所减少,但图像也开始有点模糊; (c)为灰度调整后的图像,该图像中亮度明显增加,裂缝与背景的对比度明显提高,细节也较明显; (d)为利用迭代阈值法进行二值分割后的图像,可以看出,该图像中的裂缝基本被分割出来,粗的裂缝清晰明显,细的裂缝分割效果也基本满意,可以达到裂缝图像去噪、增强、分割的目的。
5 结束语
本文主要探讨墙体裂缝图像的预处理过程以及算法的DSP实现。该方法通过C语言编程并利用DSP可完成图像采集、中值滤波、图像增强、图像分割四个步骤,从而完成整个裂缝图像的处理过程。墙体裂缝图像经处理后,裂缝能较清晰的得到显示与分割,而且细节信息基本保留,因而可为其他处理做准备。由于该方法是通过DSP来实现整个过程,故其硬件系统结构简洁。事实上,本文的方法也可在一些便携式墙体裂缝检测设备中得到应用。
- 基于DSP的嵌入式显微图像处理系统的设计(06-28)
- 基于PCI总线和DSP芯片的图像处理平台的硬件设计(07-06)
- 超级图像编解码技术(Scalado)(01-01)
- 基于FPGA的多DSP红外实时图像处理系统(01-21)
- 一种新型的多DSP红外实时图像处理系统设计(02-03)
- 图像处理器6538与8031的接口技术 (05-19)