3.2 图像灰度转换
灰度图像是指只含亮度信息,不含色彩信息的图像。要表示灰度图,就需要对亮度值进行量化。通常把含有亮度和色彩的彩色图像变换成灰度图像的过程叫做灰度化处理。物体的灰度图像可以用二文光强度函数 来表示,其中x,y是图像空间点的坐标,任意点(x , y)处的函数值 正比于图像在该点的亮度。可以把灰度图像考虑为一个矩阵,其行和列表示为图像的一个点,而相应矩阵中的元素值表示该点的灰度值。一幅彩色图像可表示为: 。其中R、G、B分别为图像坐标 处的红色、绿色、蓝色分量值,各种色彩都是由R、G、B三个单色调配而成。(0,0,0)是全黑色,(255,255,255)是全白色,其余是灰色。若Y分量的物理含义是亮度,它包含了灰度图的所有信息,则据公式 ,将R、G、B的值都赋给Y,就能表示出灰度图来,这就是彩色图转换成灰度图的原理。
从CCD摄像机采集到计算机的图像是RGB格式的,RGB图像的每个像素需要3个字节来表示,每个字节对应着R、G、B分量的亮度。转换后的灰度图像中,一个像素用一个字节表示其灰度值,它的值在0~255之间。数值越大,该像素点越白,即越亮;数值越小则越黑,即越暗。
由于本系统前端采集的路面裂缝图像均为彩色图像,处理速度较慢,因此在进行图像滤波、图像分割之前应首先对图像进行灰度化处理,将彩色图像转化为灰度图像。
MATLAB支持多种图像类型,如索引图像、灰度图像、二进制图像、RGB图像等。在处理图像类型进行转换时,MATLAB7.0图像处理工具箱为我们提供了大量相互转换的函数,如mat2gray()函数可以将矩阵转换为灰度图像,rgb2gray()转换RGB图像或颜色映像表为灰度图像。在类型转换的时候,我们还经常遇到数据类型不匹配的情况,针对这种情况,MATLAB7.0工具箱中,也给我们提供了各种数据类型之间的转换函数,如double()就是把数据转换为双精度类型的函数。
我们调用rgb2gray函数将原始彩色图像转换为灰度图像,程序代码如下:
I1=imread('crack..bmp'); %读入裂痕真彩色图像
X1=rgb2gray(I1); %将裂痕真彩色图像转换成灰度图像
imshow(X1); %显示裂痕灰度图像
imhist(X1); %显示灰度直方图
imwrite(X1,'crack1..bmp'); %将图像保存起来以便以后直接调用
原始图像,灰度化图像和灰度直方图如图3-1,3-2所示:
(a) 原图 (b)灰度化后的图像
图3-1 灰度化前后对比图图3-2 灰度直方图
3.3 图像滤波
图像在采集、传输、和处理过程中不可避免地会受到一定程度的噪声干扰,比如路面砂质材料的反光,元器件的内部噪声、感光材料的颗粒噪声、电器机械运动产生的抖动噪声等等。这些噪声的存在严重影响了路面裂缝的特征,恶化了图像质量,使图像特征模糊,给图像的处理分析带来了很大的困难。因此在对图像提取各种特征之前,需要消除这些噪声。通常将此类消除噪声的工作成为图像平滑或滤波。
图像滤波的方法有很多,本文介绍几种常用的图像滤波方法,并选择一种合适的图像处理算法对裂缝图像进行滤波。 高速公路裂缝检测算法研究(4):http://www.751com.cn/tongxin/lunwen_2093.html