2。2 纹理特征提取
由上一个标题的实验内容我们可以看到单一的通过颜色特征来分割图像效果并不理想,并不能达到很高的准确率的要求,于是本章在加入图像颜色特征的基础上继续加入图像的纹理特征来进行图像的分割。
首先来介绍一下图像的纹理特征。由于图像的纹理特征具有多样性和广泛性,目前为止还不存在一种比较公认的定义,研究者针对不同的应用提出了自己的概念与定义,这更加增加了对图像进行纹理特征提取的研究难度。比较广泛的一种定义是纹理是一种反映图像中同质现象的视觉特征,它体现了物体表面的具有缓慢变化或者周期性变化的表面结构组织排列属性[4]。图像的纹理特征与上文的颜色特征不同,纹理特征通过像素及其及其周围空间邻域的灰度分布来表现,描述一幅图像或者图像块中的空间光强和颜色分布。对图像纹理特征的提取主要采用滤波方法,首先选择合适的滤波器对图像进行滤波,输出得到的滤波图像就是纹理图像,包含图像的纹理信息[5]。滤波方法原理如下:论文网
图2。4 滤波方法提取纹理特征原理图
首先可以利用算子对图像进行卷积。算子的实现过程为:将高斯函数与图像进行卷积,可以得到一个平滑的图像,由于目的是提取图像的纹理特征,于是需要对进行拉普拉斯运算[6]。根据函数的特点,可以使用高斯差分函数来近似实现函数,目前已经有专用的硬件实现[7]。即:
(,)=exp-exp(-) (2。1)
从工程的观点来看,当/=1。6时,最逼近。进一步的,可以用5×5的模板来对图像进行卷积,得到纹理特征图像:
(2。2)
本文中首先将三通道的彩色训练图像转化为灰度图像,然后利用公式(2。2)的模板对得到的灰度图像进行卷积,输出得到训练图像对应的纹理特征图像。和颜色特征提取一样,同样是将纹理图像分成1200个8×8的小图像块,统计每个图像块像素值所占比例。因为像素值的范围为0~255,为了减少数据量,我们将每个像素值除以16转为int型得到0~15的16个小的颜色区间。将得到的纹理特征直方图数据每块1×16=16个数据存入向量类型train中颜色特征直方图数据的后面作为扩展。接下来对输入的测试图像进行处理。利用读取测试图像,和上文对训练图像处理的过程一样,首先将测试图像转化为灰度图像,然后对得到的灰度图进行卷积得到测试图像所对应的纹理图像。完成测试图像的纹理特征直方图,然后利用朴素贝叶斯分类器(Naive Bayes classifier)对每一个小块计算的到其最终所属的分类。分类输出之后已经得到了一副训练图像所对应的标签图像。测试图像对应输出的纹理图像及标签图像如下图所示:
图2。5 训练图像001纹理图(左)及输出标签图像(右)
图2。6 训练图像002纹理图(左)及输出标签图像(右)
图2。7 训练图像003纹理图(左)及输出标签图像(右)
通过观察以上几幅图像的实验结果,可以发现相对于单一的颜色特征分割,加入了纹理特征后的图像分割效果有了明显提高,但同样存在建筑和道路的分割效果不理想的情况。除了分割界线仍然不明显之外,两部分标签仍然还充斥着大量的噪点。这说明,在当前数据量下,只有纹理特征和颜色特征并不足以很好地分割当前场景的图像,我们仍需要增加更多的特征。我们可以看到天空的分割效果是三类标签里面最好的,但仍然有一些误差,我们下一步不妨着手提高天空类别的分割准确率。