动态空间滤波的探讨与实践

陈生1 唐能福2

(1 广西师范学院资源与环境科学学院GIS专业 南宁广西 530001
2 北京超图地理信息技术有限公司 北京 100085)

【摘 要】 在传统的遥感数字图像增强处理方法中,空间滤波主要采用静态的图像模板来进行计算处理以突出图像上某些特征,如突出边缘和纹理等。本文探讨用动态的图像模板来进行计算处理遥感影像,发现处理后的遥感图像取得了很好的效果。
【关键词】 数字图像 图像模板 动态空间滤波

Design and Implementation of Dynamic Spatial Filtering
Chen Sheng1 Tang NengFu2

(1 College of Resources and Environmental Science,Guangxi Teachers’ College,Nanning Guangxi,530001;
2 SuperMap GIS Technologies,Inc. Beijing,10085,China)

【Abstract】 Traditionally static image template is applied in the spatial filtering to process the image in order to make outstanding some feathers of the image like the edge and texture of the image. The paper puts forward a new way that taking the dynamic image template into the digital image enhancement processing and the result is obviously better than that by traditional way.
【Keywords】 Digital image;image template;dynamic spatial filtering


  1 引言
  遥感图像的传统处理方法主要是光学处理、数字图像校正、数字图像增强、遥感信息的复合。光学处理包括利用加色法或减色法实现彩色合成、光学增强处理(如:相关掩膜处理方法、改变对比度、显示动态变化、边缘突出等)、光学信息增强处理(如:图像的相加和相减、遥感黑白影像的假彩色编码等)。数字图像校正主要是进行辐射校正和几何校正。数字图像增强主要是进行图像像元对比度变换、空间滤波、彩色变换、图像运算和多光谱变换。遥感影像经过以上处理后,就可以对其进行分析、判读、理解、识别,提取其中丰富的遥感信息。遥感信息的复合主要指不同传感器的遥感数据的复合,以及不同时相的遥感数据的复合[1]。
  2 传统空间滤波的方法[2]
  在遥感图像处理中,经常采用空间域中的邻域处理方法来改变遥感图像中像元与其周围相邻像元的关系,即“空间滤波”,来突出遥感图像上某些特征,如突出边缘或纹理等。传统的空间滤波方法有图像卷积运算、平滑、锐化。
  图像卷积运算是在空间域上对图像进行邻域检测的运算,具体做法是选定一个卷积函数t(m,n),又称为“模板”,即一个M×N的图像,运算时,从图像左上角开始一个与模板同样大小的活动窗口φ(m,n),使活动窗口与模板像元的灰度值对应相乘再相加,计算结果r(i,j)作为活动窗口中心像元的新的灰度值。
  在平滑处理中,均值平滑是将每个像元在以其为中心的区域内取平均值来代替该像元值以达到去掉尖锐“噪声”和平滑图像的目的。常用的邻域有4-邻域和8-邻域。
  在中值滤波中则是以某像元为中心的邻域内取中间亮度值来代替该像元值,以达到去掉尖锐“噪声”和平滑图像的目的。
  传统的锐化法方法主要有罗伯特梯度、索伯尔梯度、拉普拉斯算法和定向检测。罗伯特梯度的原理是找到像元间亮度变化率较大的地方,即像元间的亮度值较大的位置,也就是不同地物的边缘,然后用不同的梯度计算值代替边缘处像元的值,实现突出边缘锐化图像的效果。该方法可以近似地用模板计算,其算法的意义主要用交叉的方法检查出像元与其邻域在上下之间或左右之间或斜方向之间的差异,最终产生一个梯度影像,达到提取边缘信息的目的。
  拉普拉斯方法是在罗伯特梯度的基础上的改进,与罗伯特方法比较,该方法考虑了邻域点的关系,使2×2的图像模板扩大到3×3的图像模板,使检测边缘更加精确。其算法是将图像模板上下左右4个相邻的像元的灰度值相加再减去该中心像元值的4倍作为这一像元的新值。该算法不检测均匀的亮度变化,而是检测均匀的亮度变化率的变化率,相当于一个二阶微分,算法的效果更加突出亮度值突变的位置。
  定向检测在于检测某一方向的边、线或纹理特征。定向检测可以采用很多模板进行运算。
  3 传统空间滤波的不足之处
  以上传统滤波方法对数字图像进行空间滤波的处理,强调了像元与其周围相邻像元的关系,每个像元处理后的灰度值是在它自身及其周围像元的灰度值参与下经过运算处理得到的。各种算法都涉及到了一个固定值的模板,模板的值不随像元运算顺序的变化而变化,是一种静态的运算。但是,实际上每个像元的灰度值与其周围的像元灰度值的关系并不是一种固定的类似模板描述的关系。在不同的区域,地物的性质不一样,地物接受到太阳辐射时的天顶角、太阳高度角是不同的,太阳辐射投射到地物时由于光的特性会发生散射、衍射、反射、投射、折射等。在某个像元的太阳辐射的散射对该像元周围的像元影响比较大,不同的像元其周围受到该像元的影响不一样。因此,笔者采用一种动态的运算方法,以模拟随着像元的不同位置,根据不同的像元周围的像元值来确定该像元的灰度值,获得另外一种效果。
  4 动态空间滤波的算法设计
  3.1 差值动态滤波
  与图像卷积运算相似,从图像左上角开始一个m×n的图像,即活动窗口,求出该图像中心像元与周围(4邻域或8邻域)各像元的灰度值的差的作为卷积运算的模板t(m,n),活动窗口与模板像元的灰度值对应相乘再相加。计算结果作为活动窗口中心像元的新的灰度值。具体计算时常用8-邻域的3×3的模板作卷积运算,假设其中心的像元的灰度值为 ,其模板t(m,n) 定义为:
      
  即:
      
  笔者采用8邻域,程序如下:
  //差值动态滤波1,比较平滑
  filter[0]-=filter[4];
  filter[1]-=filter[4];
  filter[2]-=filter[4];
  filter[3]-=filter[4];
  filter[4]-=filter[4];
  filter[5]-=filter[4];
  filter[6]-=filter[4];
  filter[7]-=filter[4];
  filter[8]-=filter[4];
  //////////////////////////////////
  for(int jj=0;jj<9;jj++)
  {
  sum+=filter[jj];
  }
  if(sum==0)
  sum=1;
  //调用SetFilter33(double* filter33) 函数,把值传入动态模板m_filter33[]
  SetFilter33(filter);
  // 生成新的中心像元的灰度值
  OutBuff[i*width+j]=(InBuff[(i-1)*width+(j-1)]*m_filter33[0] +InBuff[(i-1)*width+(j)]*m_filter33[1]+
  InBuff[(i-1)*width+(j+1)]*m_filter33[2]+
  InBuff[(i)*width+(j-1)]*m_filter33[3]+
  InBuff[(i)*width+(j)]*m_filter33[4]+
  InBuff[(i)*width+(j+1)]*m_filter33[5]+
  InBuff[(i+1)*width+(j-1)]*m_filter33[6]+
  InBuff[(i+1)*width+(j)]*m_filter33[7]+
  InBuff[(i+1)*width+(j+1)]*m_filter33[8])/9;
  //归一化处理,使得输出的每个像元的值都在一个范围内浮动
  OutBuff[i*width+j]/=sum ;
  生成的活动窗口中心像元的新的灰度值还要经过归一化处理,使得输出的每个像元的值都在一个范围内浮动。
  4.2 比值动态滤波
  比值动态滤波是从图像左上角开始一个m×n的图像,即活动窗口,求出该图像中心像元与周围(4邻域或8邻域)各像元的灰度值的比的作为卷积运算的模板,活动窗口与模板像元的灰度值对应相乘再相加。计算结果作为活动窗口中心像元的新的灰度值。具体计算时常用8-邻域的3×3的模板作卷积运算,假设其中心的像元的灰度值为,其模板t(m,n) 定义为:
      
  程序如差值动态滤波的程序类似,只是使用的模板不一样,与差值动态滤波一样,生成的活动窗口中心像元的新的灰度值同样要经过归一化处理,使得输出的每个像元的值都在一个范围内浮动。
  4.3 百分比动态滤波
  从图像左上角开始一个m×n的图像,即活动窗口,求出周围(4邻域或8邻域)各像元的灰度值与该活动窗口中心像元灰度值之和的比作为卷积运算的模板,活动窗口与模板像元的灰度值对应相乘再相加,计算结果作为活动窗口中心像元的新的灰度值。具体计算时常用8邻域的3×3的模板作卷积运算,假设其中心的像元的灰度值为为活动窗口各个像元灰度值的和,如果为0,则令=1,其模板t(m,n) 定义为:
      
  同样,程序与差值动态滤波的程序类似,只是使用的模板不一样,与差值动态滤波一样,生成的活动窗口中心像元的新的灰度值同样要经过归一化处理,使得输出的每个像元的值都在一个范围内浮动。
  4.4 动态空间滤波的技术实现
  动态空间滤波的技术实现主要是采用了地学空间数据提取库(Geospatial Data Abstraction Library, GDAL )提供读取各种遥感影像的数据的头文件和类库,采用微软公司的VC++为开发语言,调用VC++提供的类库和头文件。
  4.5 动态空间滤波处理影像的效果
  以下四幅影像图是用ENVI4.0打开的7波段tif遥感影像图,选择波段5、4、3进行彩色显示。其中图1是原始的遥感影像图;图2是经过差值动态滤波处理的影像图,图3是经过动态滤波处理的影像图,图4是经过百分比动态滤波处理的影像图。由图我们可以明显看出,经过差值动态滤波处理的图2效果比较平滑,经过比值动态滤波的图3细部和纹理非常清晰,经过百分比动态滤波处理的图4细部和纹理更加清晰。笔者用过各种遥感软件进行处理,均没有取得如此好的效果。笔者认为,差值动态滤波可以应用在图像的平滑处理上,而比值动态滤波和百分比滤波可以应用在纹理突出和细部增强上面。

图1
图2
图3
图4

  5 结语
  因为动态滤波的模板是随中心像元的变化而变化的。一般而言,整幅(景)图像(影像)不会出现全部都增强或者全部都平滑的现象,它只是根据中心像元和模板值的大小遵循设计模式有选择性地增强或平滑,从而有效地突出或抑止某些信息,而对其他信息的改变几乎没有,从而减少了信息的丢失.。这就是笔者设计动态滤波算法的意义。另外,由于太阳辐射的入射角、方位角、天顶角以及不同像元所在的位置的性质不一样(如坡度、坡向等),其发生散射、衍射、反射、投射、折射的情况也有所不同,这样造成像元的灰度值并不是太阳直射到该像元时形成的灰度值,像元的灰度值还应该考虑用余弦来进行纠正,笔者正在进行这方面的研究。

参 考 文 献
[1] 梅安新、彭望录、秦其明、刘慧平.遥感导论.高等教育出版社.2001.7
[2] 梅安新、彭望录、秦其明、刘慧平.遥感导论.高等教育出版社.2001.7
[3] 许妙忠、余志惠.高分辨率卫星影像中阴影的自动提取与处理.测绘信息与工程,2003.2,28(1)
[4] 张玉芬、周建新.影响空间方向滤波效果的因素分析.石油与天然气地质,1999.9
[5] 刘 泓、莫玉龙.多分辨率二项分布滤波器及其在纹理分类中的应用.中国图象图形学报,1999.7月
[6] Shunlin Liang.Quantitative Remote Sensing of Land Surfaces.Wiley.November 2003

作者简介:
陈生 (1979.11-),男,广西北流人,广西师范学院资源与环境科学学院GIS专业硕士研究生,主要研究方向:国土资源地理信息系统。
联系地址:北京市海淀区学清路8号科技财富中心B座7层北京超图地理信息技术有限公司
邮编:100085
联系电话:13241815203,010-82736655转8701
电子邮箱:crasyman@163.com
唐能福(1981.11-),男,本科学士,广西全州人,北京超图地理信息有限公司软件工程师。
联系地址:北京市海淀区学清路8号科技财富中心B座7层北京超图地理信息技术有限公司
邮编:100085
联系电话:13241813372,010-82736655转8701
电子邮箱:tangnf@supermap.com
基金项目:国家“863”计划“国家级森林资源遥感检测业务运行系统”(2003AA131030)。
广西自然科学基金项目“基于GIS、RS技术的城郊结合部耕地变化动态监测及其与社会经济发展耦合关系研究——以南宁市为例”(桂科自0448037)。

地址:广西南宁市建政路5号  邮编:530023  Tel:0771-5606397  Email:webmaster@digitalgx.com
广西基础地理信息中心版权所有 2005-2010 广西基础地理信息中心制作