首页 > 代码库 > 提取遥感影像有效区域

提取遥感影像有效区域

利用某些算法处理遥感影像时,需要排除无效区域,因此找出有效区域范围变的至关重要,下面根据我的经验谈谈有效区域提取的具体方法及实现。

创建金字塔图层

由于遥感影像数据量比较大,因此为了提高处理效率,提取有效区域需要在金字塔图层进行。金字塔的创建可以利用GDAL进行,也可以自己进行缩放。

提取有效区域shp文件

为了提取有效区域,我研究了两种方法可以实现,分别是栅格矢量化和轮廓跟踪,下面具体解释两种方法的区别:

栅格矢量化

该方法原理比较简单,首先按照指定的无效值,将图像进行二值化,得到掩模图,然后调用GDAL的栅格矢量化函数,生成矢量文件即可。
下面选择一个比较特别的图作为实验,如下原始图所示,无效值设为0,但是有效区域中存在0值,这种情况比较特殊,一般不会出现,因为无效值可以人为设置一个特别的值以区分图像数据,但是为了研究而研究,还是拿这个特殊的图作为实验验证一下两种生成有效区域范围的区别。

 
                       原始图                                                       栅格矢量化叠加显示图(红色代表轮廓线)
从栅格矢量化结果可以看出,影像内部的无效值区域也被检测出来了。

轮廓跟踪

该方法原理是根据典型的图像轮廓跟踪算法,是通过顺序找出边缘点来跟踪出边界,一个简单二值图象闭合边界的轮廓跟踪算法很简单:首先按从上到下,从左到右的顺序搜索,找到的第一个黑点一定是最左上方的边界点,记为A。它的右,右下,下,左下四个邻点中至少有一个是边界点,记为B。从开始B找起,按右,右下,下,左下,左,左上,上,右上的顺序找相邻点中的边界点C。如果C就是A点,则表明已经转了一圈,程序结束;否则从C点继续找,直到找到A为止。判断是不是边界点很容易:如果它的上下左右四个邻居都是黑点则不是边界点,否则是边界点。接下来对上面特殊的图像进行轮廓跟踪处理,结果如下图对比:
  
                   原始图                          轮廓跟踪后叠加显示图(红色代表轮廓线)
从轮廓跟踪结果可以看出,有效区域内部的无效值没有被检测出来,只是得到了图像的外轮廓范围。

总结

通过上面的对比可知,栅格矢量化和轮廓跟踪提取图像有效区域可以到达目的,当图像有效区域内部没有无效值时,得到的结果一致,但是当图像有效区域内部有无效值时,栅格矢量化方法可以检测出来内部的无效区域,而轮廓跟踪提取只能得到有效区域外轮廓,有效区域内部的无效区域无法检测出来。综上所述,在实际应用中,可以根据具体需要选择不同的方法提取所需要的有效区域。