函數:根據航拍圖像提取道路
該函數是根據lines_gauss算子提取輪廓線,在根據輪廓線提取平行線,最後判斷滿足條件的平行線即默認爲是道路。
RDB(Ramer–Douglas–Peucker):減少線段中的點。該算法遞歸進行,首先設定一個閾值,在點集的第一個點和最後一個點間拉一條線段,找出剩下的點集中離線段最遠的一個點,如果該點到線段的距離小於閾值則捨棄中間的所有點,如果大於閾值。將該點作爲中間點和最初的兩個點生成兩條線段,重複上述過程。
效果圖:
算子:
1.lines_gauss(Image : Lines : Sigma, Low, High, LightDark, ExtractWidth, LineModel, CompleteJunctions : ):檢測線條及其寬度
參數:
Sigma:平滑量
Low:滯後閾值的低閾值
High:滯後閾值的高閾值
LightDark:提取亮線還是暗線
ExtractWidth:是否應該提取線寬
LineModel:線模型用於修正線的位置和寬度
CompleteJunctions :是否應該在不能提取的地方添加連接
2.clip_contours_xld(Contours : ClippedContours : Row1, Column1, Row2, Column2 : ):剪切一個XLD輪廓
3.gen_polygons_xld(Contours : Polygons : Type, Alpha : ):用多邊形近似輪廓
參數:
Type:類型的近似( Ramer算法)
Alpha:近似的閾值
4.gen_parallels_xld(Polygons : Parallels : Len, Dist, Alpha, Merge : ):提取平行的XLD多邊形
參數:
Parallels :只返回平行關係的線
Len:每個多邊形段的最小長度
Dist:多邊形段之間的最大距離
Alpha:多邊形段的最大角度差
Merge :是否合併相鄰的平行關係
5.mod_parallels_xld(Parallels, Image : ModParallels, ExtParallels : Quality, MinGray, MaxGray, MaxStandard : ):提取包圍均勻區域的平行XLD多邊形
參數:
Parallels:平行輪廓
Image:對應的灰度值圖像
ModParallels:去掉輪廓相似後的輸出
ExtParallels :擴展的XLD
Quality:最小質量因數(平行度測量)
MinGray:最小平均灰度值
MaxGray:最大平均灰度值
MaxStandard:最大允許標準差
6.combine_roads_xld(EdgePolygons, ModParallels, ExtParallels, CenterLines : RoadSides : MaxAngleParallel, MaxAngleColinear, MaxDistanceParallel, MaxDistanceColinear : ):結合來自兩個分辨率層次的道路假設
參數:
MaxAngleParallel:兩個平行線之間的最大角度
MaxAngleColinear:兩個共線線段之間的最大角度
MaxDistanceParallel:兩個平行線段之間最大距離
MaxDistanceColinear :兩個共線線段之間最大的距離