Skip to content

使用区域生长和神经网络两种方法对遥感图像中的河流进行提取

Notifications You must be signed in to change notification settings

scri/riverExtract

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

摘要


本文首先用图像分割的方法,利用图像生长的技术结合分布直方图对一幅无人机遥感图像中的河流部分进行了分割。而后利用模式识别的方法对河流的提取进行了研究,最后搭建了一个深度神经网络,对河流进行了成功的提取,并对比了两种方法的优缺点。

1.1 边缘提取

边缘检测的原理是利用不同区域的相接处灰度值的剧烈变化进行的,但是由于图像中经常出现噪声,普通的边缘提取经常将这些噪声也当作边缘而检车出来。因此边缘检测的一般步骤是首先进行滤波处理,将图像中含有的噪声滤除而不影响图像的边缘,然后再将一些不连续的边缘连接起来。最基本的边缘检测的方法为边缘检测算子,基本的算子有拉普拉斯(Laplacion)算子、罗伯特(Roberts)算子,索贝尔(Sobel)算子等等。本次研究采用的是canny边缘算子。Canny算子进行边缘检测的步骤为; (1) 首先对图像进行gauss平滑滤波。 (2) 计算滤波后的梯度和梯度的方向,计算公式。 (3) 如果M(x,y) 大于或等于 平行方向的两个相邻的像素点M(x,y),则该点为边缘点,然后利用双阈值检测,以及边缘连接得到最后的边缘。

1.2 结合分布直方图的区域生长

区域生长是预先定义好生长准则将像素或者子区域组合成为更大区域的过程,基本方法是从一组“种子”点开始,将与种子点预先定义的性质像是的那些领域像素添加到每个种子上来形成生长区域。由于普通的区域生长需要手动选择种子点,本次实验对其进行改进,使得河流提取实现自动化。具体算法如下: (1) 首先统计遥感图像的分布直方图,由于在一幅含有河流的遥感图像中河流部分的像素大多数相似,因此此时的分布直方图一定会出现峰值,对每个峰值进行检验,依据先验知识判断峰值像素是否就是属于河流,然后对属于河流带来的峰值进行阈值处理,将得到的一部分像素点取质心,则此质心大概率属于河流部分。 (2) 对(1)中得到的质心S(x,y)进行区域生长,步骤为: 1, 从质心点出发,循环遍历在质心点处的8连通区域的像素是否满足一个给定的条件,如果满足,则将此点赋值为1,否则赋值为0,并将满足的点压栈保存。 2, 将步骤1中压栈保存的点的坐标初始化为质心,然后继续步骤1,直到栈低为空。 (3) 输出步骤2中得到的图像,即可以看到河流部分已经被提出出来。

1.3 实验结果

cmd-markdown-logo

基于深度神经网络的河流提取

#实验结果 cmd-markdown-logo

About

使用区域生长和神经网络两种方法对遥感图像中的河流进行提取

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages