从遥感图像中检测桥梁的方法转让专利
申请号 : CN200710019029.4
文献号 : CN101159009B
文献日 : 2010-04-21
发明人 : 张艳宁 , 李映 , 张利利 , 王敏 , 石慎 , 孙瑾秋
申请人 : 西北工业大学
摘要 :
权利要求 :
1.一种从遥感图像中检测桥梁的方法,其特征包括以下步骤:
(一)输入一幅遥感图像,选用Daubechies3小波,对遥感图像每个像素的邻域进行小波变换,所得的高频图像和低频图像作为小波子图像,用公式分别计算各子图像能量特征,作为当前中心像素点的纹理特征,对每一像素的纹理特征,采用快速模糊C聚类算法将图像分成目标和背景两类,得到河流的粗分割结果;
(二)选用面积百分比阈值去除河流中较小的噪声区域,对步骤(一)得到的河流区域进行连通区域标记,计算每一个河流区域的平均梯度avgGrads[i],设待分类的河流区域的平均梯度avgGrads的范围在[gradsLow,gradsHigh]之间,阈值T将河流区域划分为两类,利用类内方差最小的方法确定最佳平均梯度阈值T*,比较平均梯度与最佳平均梯度阈值,确定河流区域;
(三)对河流区域的canny边缘做快速Beamlet变换,得到桥梁和海岸线的线信息,步骤如下:(1)确定子束单元的尺度;(2)将图像分解成尺度为4的子束单元;(3)对每个子束单元进行变换处理:(a)从子束单元的左上点起,顺时针标记为p(0),p(1),p(2)......p(snum-1);snum为子束单元边界点的个数;(b)start=0,end=1,即以p(0)为起点,p(1)为终点;(c)由起点和终点确定一条线段,该线段上的像素点由Bresenham算法确定,该线段上的像素点依次标记d(0),d(1),d(2)......d(num-1),其中num为该线段上像素点的个数,d(0)为线段起点,d(num-1)为线段终点,(d)GrayLevel(d)为该像素点d的灰度值,Tf(b)=sum/255;(e)如果end不等于snum-1,则end=end+1,重复(c),(d);否则start=start+1;如果start等于snum,则停止;否则重复(c),(d)步骤;
(四)利用桥梁的特征进行桥梁检测,桥梁的特征包括两个边缘平行、外接形状近似为矩形、矩形的宽为桥梁的宽度、桥梁的宽度小于河流的宽度、桥梁的边缘像素点的邻域像素属于相同的连通区域,即河流连通区域,而海岸线像素点的邻域像素属于不同的连通区域;
(五)采用以下算法进行后处理,从而得到完整的桥梁图;
①对于每一子束单元下的线段L1,倾斜角度为θ1,两个端点分别记为P1和P2,寻找与此线的某一个端点共尺度边的线段L2,倾斜角度为θ2,端点分别记为P3和P4;
②求两个线段L1、L2的两两端点间的距离,得到四个距离,即Dist(P1,P2),Dist(P1,P4),Dist(P3,P2),Dist(P3,P4);
③条件1:四个距离中最小的距离Min(Dist)小于Beamlet变换的分解尺度4;
条件2:|θ1-θ2|<阈值threshold,此处,threshold取8;
条件3:四个距离中最大的距离max(Dist)大于两个线段L1、L2中最长的长度;
当步骤③成立时,连接两条线段,删除参与连接的两条线段L1和L2。
2.根据权利要求1所述的从遥感图像中检测桥梁的方法,其特征在于:所述的面积百分比阈值的取值范围根据不同的图像选择0.01%~5%。
说明书 :
技术领域
本发明涉及一种从遥感图像中检测桥梁的方法。
背景技术
综上所述,现有的遥感图像中桥梁检测方法易受噪声影响,并对被检桥梁的宽度进行了限制,容易漏检和误检,检测率低。
发明内容
本发明解决其技术问题所采用的技术方案:一种从遥感图像中检测桥梁的方法,其点是包括以下步骤:
(a)输入一幅遥感图像,选用Daubechies3小波,对遥感图像每个像素的邻域进行小波变换,所得的高频图像和低频图像作为小波子图像,用公式
分别计算各子图像能量特征,作为当前中心像素点的纹理特征,对每一像素的纹理特征,采用快速模糊C聚类算法将图像分成目标和背景两类,得到河流的粗分割结果;
(b)选用面积百分比阈值去除河流中较小的噪声区域,对步骤(a)得到的河流区域进行连通区域标记,计算每一个河流区域的平均梯度avgGrads[i],设待分类的河流区域的平均梯度avgGrads的范围在[gradsLow,gradsHigh]之间,阈值T将河流区域划分为两类,利用类内方差最小的方法确定最佳平均梯度阈值T*,比较平均梯度与最佳平均梯度阈值,确定河流区域;
(c)对河流区域的canny边缘做快速Beamlet变换,得到桥梁和海岸线的线信息,步骤如下:(1)确定子束单元的尺度;(2)将图像分解成尺度与像素均为4的子束单元;(3)对每个子束单元进行变换处理:从子束单元的左上点起,顺时针标记为p(0),p(1),p(2)......p(snum-1);snum为子束单元边界点的个数;start=0,end=1,即以p(0)为起点,p(1)为终点;该线段上的像素点由Bresenham算法确定,该线段上的像素点依次标记d(0),d(1),d(2)......d(num-1),其中num为该线段上像素点的个数,d(0)为线段起点,d(num-1)为线段终点,GrayLevel(d)为该像素点d的灰度值,Tf(b)=sum/255;
(d)利用桥梁的特征进行桥梁检测,桥梁的特征包括两个边缘平行、外接形状近似为矩形、矩形的宽为桥梁的宽度、桥梁的宽度小于河流的宽度、桥梁的边缘像素点的邻域像素属于相同的连通区域,即河流连通区域,而海岸线像素点的邻域像素属于不同的连通区域;
(e)采用以下算法进行后处理,从而得到完整的桥梁图;
①对于每一子束单元下的线段L1,倾斜角度为θ1,两个端点分别记为P1和P2,寻找与此线的某一个端点共尺度边的线段L2,倾斜角度为θ2,端点分别记为P3和P4;
②求两个线段L1、L2的两两端点间的距离,得到四个距离,即Dist(P1,P2),Dist(P1,P4),Dist(P3,P2),Dist(P3,P4);
③条件1:四个距离中最小的距离Min(Dist)小于Beamlet变换的分解尺度4;
条件2:|θ1-θ2|<阈值threshold,此处,threshold取8;
条件3:四个距离中最大的距离max(Dist)大于两个线段L1、L2中最长的长度;
当步骤③成立时,连接两条线段,删除参与连接的两条线段L1和L2。
本发明的有益效果是:由于采用Beamlet变换提取被检桥梁的线特征信息,利用Beamlet变换具有抗噪性的特点,提高了抗噪性;利用Beamlet变换所提取的线特征信息进行桥梁检测,与现有技术采用搜索桥梁点的方法相比,对桥梁的宽度没有限制,且检测率达到了86%以上,不易漏检和误检。
下面结合附图和实施例对本发明作详细说明。
附图说明
具体实施方式
对每一象素的纹理特征,采用快速模糊C聚类算法(FCM)将图像分成目标和背景两类,得到河流的粗分割结果。在此河流粗分割过程中可以选用其他小波变换,变换域可以为5×5,本发明均已进行过试验,取得了不错的效果。
由于受噪声影响,存在着部分灰度值和河流比较接近、有细微纹理的非河流区域,例如建筑物或其他自然景物的阴影,被误分割为河流的现象,因此需要对河流进一步的细分割。
河流细分割:首先选用面积百分比阈值0.2%去除河流中较小的噪声区域。此处的面积百分比阈值可以根据不同的图像选择0.1%~2%之间,在去除细小区域之后,对每个区域用下列模板计算其梯度,从水平和垂直两个方向考察当前区域灰度值的变化。
水平梯度算子模板A 垂直梯度算子模板B
模板中心点(x,y)水平方向梯度幅值为:
其中f(x,y)为(x,y)处的灰度值。同理,垂直方向梯度幅值为:
(x,y)处的梯度幅度为:
对粗分割得到的河流区域进行连通区域标记,计算每一个区域的平均梯度avgGrads[i],设待分类的区域的平均梯度avgGrads的范围在[gradsLow,gradsHigh]之间,阈值T将区域划分为两类
则,C1=[gradsLow,T],C2=[T+1,gradsHigh].C1类的区域个数为N1,C2类的区域个数为N2,C1,C2每类的梯度的平均值分别为μ1,μ2,方差分别为σ12,σ22,则按照模式识别理论,这两类的类内方差为:
使σ2最小的T即为最佳平均梯度阈值T*。
如果某区域的平均梯度大于最佳阈值,则此区域不属于河流区域;如果小于等于最佳阈值,则此区域属于河流区域,从而实现了对河流的细分割。
其次进行桥梁分割。由于桥梁是两条平行直线,而Beamlet变换在提取线特征方面表现优秀,因而本发明对分割出的河流区域的边缘进行Beamlet变换固定尺度的Beamlet变换,得到线特征的信息,然后根据桥梁特征分割出桥梁。
桥梁具有以下特征:(1)桥梁的两个边缘平行;(2)桥梁的外接形状近似为矩形,且矩形的宽为桥梁的宽度;(3)桥梁的宽度小于河流的宽度;(4)桥梁的边缘像素点的邻域像素属于相同的连通区域,即河流连通区域,而海岸线像素点的邻域像素属于不同的连通区域,
对河流区域的canny边缘做快速Beamlet变换:
(1)确定子束单元的尺度,本实施实例选择尺度为4个像素;
(2)将图像分解成尺度为4的子束单元。
(3)对每个子束单元进行变换处理:
(a)从子束单元的左上点起,顺时针标记为p(0),p(1),p(2)......p(snum-1)。snum为子束单元边界点的个数。
(b)start=0,end=1,即以p(0)为起点,p(1)为终点。
(c)由起点和端点,可唯一确定一条线段。该线段上的象素点由Bresenham算法确定。该线段上的象素点依次标记d(0),d(1),d(2)......d(num-1),其中num为该线段上象素点的个数,d(0)为线段起点,d(num-1)为线段终点。
GrayLevel(d)为该象素点d的灰度值。
Tf(b)=sum/255。
(e)如果end不等于snum-1
则end=end+1,重复(c),(d)。
否则start=start+1。
如果start等于snum,则停止。
否则重复(c),(d)步骤。
快速离散Beamlet变换之后,得到了桥梁和海岸线的线信息,因此可以利用桥梁的特征进行桥梁检测。
设(P1,P2),(P3,P4)为桥梁两个边,P1,P2,P3,P4分别为两条边的端点,Px,Py为其上的任意点,θ1,θ2为两条边的角度,D为河流分割时所产成的连通区域矩阵,陆地为一连通区域,河流和桥梁为另一连通区域,则桥梁应满足如下条件:
1)|θ1-θ2|<thetaThreshold
2)
(dist(p1,p3)≈bridgeWidth)or(dist(p1,p4)≈bridgeWidth)
3)D(Px+e,Py)=D(Px-e,Py)&&D(Px,Py+e)=D(Px,Py-e)
其中e为偏移量,为一常数,值为5,thetaThreshold为角度阈值,取值为8,distThreshold为距离阈值,取值为40,bridge Width为近似的桥梁宽度,取值为20。
最后进行后处理。利用桥梁的上述特征,可以将桥梁提取出来。由于桥梁为长直线,所以将提取出来的桥梁再次进行短线连接,从而得到完整的桥梁图。
后处理的算法如下:
①对于每一子束单元下的线段L1,倾斜角度为θ1,两个端点分别记为P1和P2,寻找与此线的某一个端点共尺度边的线段L2,倾斜角度为θ2,端点分别记为P3和P4;
②求这两个线段的两两端点间的距离,得到四个距离,即Dist(P1,P2),Dist(P1,P4),Dist(P3,P2),Dist(P3,P4)
③条件1:四个距离中最小的距离Min(Dist)小于Beamlet变换的分解尺度4,
条件2:|θ1-θ2|<阈值threshold,此处,threshold取8;
条件3:四个距离中最大的距离max(Dist)大于两条直线中最长的长度,
⑤当步骤③成立时,连接两条线段,删除参与连接的两条线段L1和L2。
⑤当步骤③不成立时,有可连接的线段,回到步骤①;没有可连接的线段,结束。
总之,本发明利用Beamlet变换所提取的线特征信息进行桥梁检测,与现有技术采用搜索桥梁点的方法相比,对桥梁的宽度没有限制。经过对本发明进行的仿真检验,达到了86%以上的检测率。