本科低年級曾經做過一個提取道路線的題目。
提供的數據:老師給我們了一幅學校周邊地區的影像,包括RGB+Infrared四個波段。
一開始使用的方法:當時尚青澀的我和小伙伴們一起使用KMEANS、閾值分割等等方法試圖將那道路從影像中分離出來。
遇到的問題:道路是用瀝青或水泥做的,樓房也是如此,因此二者光譜信息相似(異物同譜)。只利用光譜信息,樓房和道路難以分辨。
當時的解決方案:當時我希望用形態學的開運算將樓房慢慢刪去,值得慶幸得是學校周圍的房子都比較小,開運算幾次就可以去除,而且不會對道路造成太嚴重的影響。同時我們也試圖通過道路和樓房的幾何信息來分類:道路是細長的,而樓房的長寬比沒那么夸張。于是我們采用opencv提供的 提取小斑塊 的算法,希望來刪掉找到的小斑塊(樓房)。有一定效果,但是需要手動設定若干參數,一點點調整。每套參數只對一幅圖有效。
遙感解譯課程學到的 解決方案: 使用MBI算法可以將亮度值相比周圍環境比較高的樓房高亮出來。將MBI的結果作為一個波段,使用RGB+Infrared+MBI進行分類,可以將道路和樓房很好地區分開來。[論文原文是直接取閾值進行樓房提取,因為當一個特征足夠強大時,可以直接用取閾值的方法將圖像進行二分類]
MBI的代碼詳見我的GITHUB:Priority-At-Next-Intersection/MBI
MBI的論文:https://ieeexplore.ieee.org/document/6056582 Published on IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing in 2011.
注意:這是一個非機器學習方法。