遥感影像处理方法与流程

文档序号:13575700阅读:5553来源:国知局
遥感影像处理方法与流程

本公开一般涉及遥感影像领域,具体涉及图像处理方法,尤其涉及遥感影像处理方法。



背景技术:

多光谱遥感数据是遥感卫星主要的数据类型,但是多光谱数据存在着数据量大,难以快速查看等问题。

目前,envi和erdas等软件通常被用于进行遥感影像的预处理,但通常需要较多的人工干预。例如影像背景部分都为黑色,导致图像存储量增大,打开的时间变长。使用envi软件,将遥感影像进行重采样(resample)处理,选择影像范围和光谱波段,处理背景可以将黑色背景透明化,但是还能在该软件中显示为透明,在图片查看器、googleearth等软件中,图像背景仍会显示黑色。



技术实现要素:

鉴于现有技术中的上述缺陷或不足,期望提供一种遥感影像处理方法,包括:校正步骤:对遥感图像进行预处理,生成校正图像;转化步骤:设置所述校正图像的输出格式以及波段,生成转化图像;纠正步骤:选取所述转化图像中背景为黑色的区域,并将该区域的背景设置为透明,生成纠正图像。

优选地,还包括:调节步骤:对所述纠正图像进行拉伸处理、滤波处理、去噪处理中的至少一种。

优选地,所述校正步骤中,所述预处理包括:辐射校正、大气校正和正校正中的一种。

优选地,所述转化步骤中,使用开源栅格空间数据转换库中的gdal_translate函数,设置输出格式ot值,以及设置波段band值,以生成所述转化图像。

优选地,所述ot值为8、16、或32;所述band值为321。

优选地,所述纠正步骤中,使用开源栅格空间数据转换库中的gdal_warp函数,将背景值为0的区域变为透明区域。

优选地,所述转化步骤和所述纠正步骤之间,还具有判断步骤,判断所述转化图像的数据类型,如果为字节型数据则进入纠正步骤,否则将转化图像转成字节型数据再进入纠正步骤。

优选地,使用命令提示符编写批量处理脚本,保存为.bat格式文件,批量处理遥感图像。

基于本申请的上述方法处理后的遥感影像,减少了数据量,也因此提高了读取速度,进而加快了打开图像的速度,另外,在纠正步骤后,背景黑色变为透明,即生成一个透明背景图层,在多张影像叠加时,具有更好的效果。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1为本发明遥感影像处理方法的一种实施方式的流程框图;

图2为本发明遥感影像处理方法的另一种实施方式的流程框图;

图3为本发明遥感影像处理方法中背景透明与背景黑色的对比图。

具体实施方式

下面结合附图和实施例对本申请作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与发明相关的部分。

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。

应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

本发明公开一种遥感影像处理方法,该方法包括步骤101:校正步骤、步骤201,转化步骤、以及步骤301:纠正步骤,通过这些步骤,可以使遥感影像的黑色背景透明化,减少了数据存数量,并且能够提高影像的打开速度,进一步在多张影像叠加时,增加了显示效果。

下面具体的说明每个步骤,首先说明校正步骤,该步骤是对遥感图像进行预处理,以声场校正图像,可选的,预处理包括:辐射校正、大气校正和正校正中的一种。一般的,这三种校正都会使用。

转化步骤为设置校正图像的输出格式和波段,以生成转化图像,输出格式一般决定了显示效果,例如本申请在一种可选的实施方式中,转化图像为八位无符号整型;波段设置为红绿蓝。

需要理解,遥感图像、校正图像、转化图像都是以数据形式体现的,因此以上八位无符号整型、波段设置为红绿蓝等都是对数据形式的说明。

可选的,实现以上设置,可以使用开源栅格空间数据转换库(geospatialdataabstractionlibrary,gdal)库中的gdal_translate函数,设置该函数中ot值(输出格式值),以及设置波段band值,以生成所述转化图像。ot值可为8、16、32中的一个,优选的为8,即生成上述八位无符号整型;band值为“3、2、1”,表示红绿蓝。在该函数中band值的每个数字可以代表一种颜色,例如3代表红,2代表绿,1代表蓝,0代表黑。上述band值为“3、2、1”所生成的图像可以称为三波段真彩色影像,三波段即红绿蓝三个颜色的波段。需要理解,此处band值为“3、2、1”,不是指这三个数字中的任意一个,整个band值即为“3、2、1”全部。

校正图经过以上的处理方式,生成为转化图。在一种实施例中,转化图像也称为“rgb真彩色影像”。

下面说明纠正步骤,选取所述转化图像中背景为黑色的区域,并将该区域的背景值设置为透明,生成纠正图像。在一种可选的实施方式中,纠正步骤,使用gdal库中的gdal_warp函数,选定背景值为零的区域为“srcdata”,输出为“dstnodata”,也就是将背景为零的区域变为透明区域,即srcdata(0)——>dstnodate(透明),srcdata为输入参数名称,dstnodata为输出参数名称,0表示黑色,为输入值,alpha表示透明,为输出值。

经过纠正步骤生成的图像,具有透明的背景。在一种实施方式中,也可以将纠正图称为“去黑色背景影像”。

在一种实施方式中,转化步骤和所述纠正步骤之间,还具有步骤401:判断步骤,判断转化图像的数据类型是否为字节型数据,如果为字节型数据(byte)则进入纠正步骤,否则将转化图像转成字节型数据(byte)再进入纠正步骤。

在一种可选的实施方式中,还可以在纠正步骤后继续进行步骤501:调节步骤,调节步骤至少进行拉伸处理、滤波处理、去噪处理中的至少一种。当然,像旋转等处理方式也可以在该步骤,以上只是例举了几种常见的处理方式,并不限于本申请。调节步骤可以理解为基础的图像处理,像剪切、切除、旋转、拉伸、复制等等处理都可以包括在调节步骤中。

为了实现上述处理步骤的批量化处理,提高处理速度,可以使用命令提示符(command,cmd)编写批量处理脚本语句,保存为.bat格式文件,批量处理遥感图像。

需要理解,遥感影像获取时,会有很多种光谱(简单可以理解为颜色,波长在400nm-760nm之间为可见光),这些多光谱除了肉眼可见光外,还会包括肉眼不可见光,例如红外线、紫外线等,当然这些肉眼不可见的光,可以以数据形式保存,并以肉眼可见的表达形式展现。上述转化步骤中,就是将多光谱的遥感影像转化为三波段真彩色影像。相比于多光谱的遥感影像,三波段真彩色影像(以下简称三色影像)减少了数据量(多光谱的遥感影像包括肉眼不可见部分,数据量会比较大,三色影像中可以直接将肉眼不可见的部分转成红绿蓝的表达形式,直接显示于影像中)。

另外,在纠正步骤后,背景黑色变为透明,即生成一个透明背景图层,当然会保留影像的头文件和坐标信息。

因为去除了黑色背景,在多张影像叠加时,具有更好的显示效果。

为了方便了解,说明一下获取遥感影像的方式,可以是航天器搭载相关光学传感器,通过分光计将获取的光谱信息以数值信号的方式存储。存储的原始影像,其波段数与分光计的工作方式有关,如分光计将所获取的光谱信息分成10束光并通过传感器记录下载,则采集的遥感影像则对应10个波段数,如将所获取的光谱信息分成100束并被记录下来,则所获取的影像对应100个波段。本申请的转化步骤,就可以讲波段数转化为需要的数量。

遥感影像与普通的光学相机拍照所得照片相比,一般除了光学信息更丰富,波段数更多,也包含了地理相关数据的头文件,如果用普通软件读取该遥感影像,则会丢失相关地理信息头文件。甚至当遥感影像数据量巨大时,很多情况下根本无法通过图片查看器打开查看。所以,在一般情况下,需要打开遥感影像时,需要对其进行相关处理。本申请中,即将原始多波段影像重采样生成3波段可见光影像,减少数据量的同时,用普通软件打开该类图片,即可保持肉眼可见真实信息。

另外,在gdalwarp这个函数中,有设置输出波段数和背景值的相关参数。在本申请中,band1=蓝光,band2=绿光,band3=红光,band4=近红外,所以选择输出的时候选择了1、2、3这几个波段。

背景值变成透明对于展示遥感影像,或者发布遥感影像到geoserver上,都很有意义,设想相邻的影像如果重叠,黑色背景会遮挡造成信息缺失和视觉效果差。通过gdal_warp函数设置为alpha,则会使影像在各种查看器中均显示透明色。图3为背景透明与背景黑色的对比图,可见左侧明显可见黑色边框,右侧没有。

下面举例说明一下gdal_warp函数,先说明其用法:

gdalwarp[--help-general][--formats]

[-s_srssrs_def][-t_srssrs_def][-ordern]][-tps][-eterr_threshold]

[-texminyminxmaxymax][-trxresyres][-tswidthheight]

[-wo"name=value"][-otbyte/int16/...][-wtbyte/int16]

[-srcnodata"value[value...]"][-dstnodata"value[value...]"]-dstalpha

[-rn][-rb][-rc][-rcs][-wmmemory_in_mb][-multi][-q]

[-offormat][-co"name=value"]*srcfile*dstfile

该函数中可能会用到的一些参数解释(以下较全的例句了一些参数含义,但并非所有都需要使用,尤其不一定都在本申请的方法中使用):

-s_srssrs_def源空间参考集。所有可以使用ogrspatialreference.setfromuserinput()来调用的坐标系统都可以使用。包括epsgpcs和gcses(例如epsg:4296),proj.4描述。或者包含知名文本的以prf为扩展名的文件。优选地用proj4的描述。

-t_srssrs_def目标坐标系统集。(可以参考上面的解释)

-ordern用于绑定的多项式规则。默认的是选择一个基于gcps数量的多项式。

-tps允许根据已有的gcps使用薄板内插转换方法。可以用这个来替代-order参数。

-eterr_threshold转换的错误临界的近似值。(以象元单位-默认到0.125)。

-texminyminxmaxymax设置被创建的输出文件的地理边界范围。

-trxresyres设置输出文件分辨率(单位以目标地理参考为准)。

-tswidthheight设置输出文件大小(以行列多少象元计量)

-wo"name=value"设置绑定参数。gdalwarpoptions::papszwarpoptions不会显示所有的参数,多个-wo参数可以并列。

-ottype设置输出波段的数据类型。

-wttype工作的象元数据类型。包括在源图像和目标图像缓冲中的象元数据类型。

-rn用最临近发进行重采样(默认,最快,但是内插质量最差)。

-rb用双线性法进行重采样。

-rc用立方体发进行重采样。

-rcs用立方曲线发进行重采样(最慢的方法)。

-srcnodatavalue[value...]设置输入波段的无意义值掩膜(如果设置多个值,就可以支持每个波段设一个)。如果有多个值,就需要把他们用双引号括起来,以保持在命令参数中作为单一参数输入。掩膜值不会在内插中处理。

-dstnodatavalue[value...]设置输出波段的无意义值掩膜(可以参考上面)。注意,如果可能的化,新的文件将初始化这个值,并记录在输出文件中。

-wmmemory_in_mb设置内存总量(以兆字节为单位),如果绑定api允许使用高速缓存。

-multi使用多线程绑定实现。多线程将被用来处理打快的图像并同时处理输入输出操作。

-q不打印输出。

-offormat选择输出格式(默认的格式是gtiff)。

-co"name=value"通过一个创建参数来控制创建新的文件。多个'-co'可以排列起来使用。参数可用的值可以察看每个驱动。

srcfile源文件名。

dstfile目标文件名。

再说明一下gdal_translate函数,其用法为:

gdal_translate[--help-general]

[-ot{byte/int16/uint16/uint32/int32/float32/float64/cint16/cint32/cfloat32/cfloat64}]

[-not_strict]

[-offormat][-bband][-outsizexsize[%]ysize[%]]

[-scale[src_minsrc_max[dst_mindst_max]]]

[-srcwinxoffyoffxsizeysize][-projwinulxulylrxlry]

[-a_srssrs_def][-a_ullrulxulylrxlry][-a_nodatavalue]

[-gcppixellineeastingnorthing[elevation]]*

[-mo"meta-tag=value"]*[-quiet][-sds]

[-co"name=value"]*src_datasetdst_dataset

该函数中可能会用到的一些参数解释(以下较全的例句了一些参数含义,但并非所有都需要使用,尤其不一定都在本申请的方法中使用):

-ot:type设置输出波段的数据的数据类型。

-strict或-not_strict是否对不匹配和丢失数据宽大处理,当在进行输出时

-offormat设置输出的格式,默认的是gtiff,设置时,只需格式的简称。

-bband选择要输出的波段。波段是从1至多,开始编号。-b可以用来选择几个要输出的波段,也可以对波段顺序进行重排。

-outsizexsize[%]ysize[%]设置输出的文件大小(像素),如果用%则表示按百分比。

-scale[src_minsrc_max[dst_mindst_max]]重新组织输入象元的值。将它们从src_min~src_max范围内缩放到dst_min~dst_max范围内。如果省略,输出范围将为0~255。输入范围将由源数据自动计算。

-srcwinxoffyoffxsizeysize选择一个取值窗口,通过该窗口在原图像中的行列位置来拷贝数值。

-projwinulxulylrxlry选择一个地理范围来选择,通过该窗口在原图像中地理坐标范围来拷贝数据。ulxulylrxlry分别代表西,北,东,南。

-a_srssrs_def重写输出的文件的投影。srs_def可以是任何常用的gdal/ogr格式,wkt,proj4,epsg:n或者一个包含着wkt的文件的文件名。

-a_ullrulxulylrxlry指定或重写输出文件的地理边界范围,而不去参考原图像的边界范围。

-a_nodatavalue指定一个无意义的值到输出波段。

-mo"meta-tag=value"如果可能的话通过设置输出数据的原数据名称和其值。

-co"name=value"通过一个创建参数来指定输出格式特殊创建要求。多个-co参数可以组合起来使用。创建参数可以参考个个数据格式本身说明。

-gcppixellineeastingnorthing[elevation]添加指定地面控制点到输出数据集。这个参数可能被提供多次以提供一系列的gcps

-quiet忽略处理进程监视和其他不是错误的输出。

-sds拷贝文件中所有子数据集到各自的输出文件中。通常这个参数用在hdf或者ogdi这样有子数据集的格式中。

src_dataset源栅格数据文件名。

dst_dataset输出栅格数据文件名。

以上描述仅为本申请的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本申请中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1