一种真正射影像绝对遮挡区域修补方法及系统的制作方法_3

文档序号:8283060阅读:来源:国知局
器Vectorl中。这样Vecotrl中保存了所有缺失像素值的像素索引。
[0032]步骤6,如果容器Vectorl中的数据量大于0,就进入步骤7,开始以下的修补进程,否则结束流程。
[0033]步骤7,可预先定义邻域内相同属性像素索引的容器Vector2,容器Vector2初始为空,提取容器Vectorl中的一个未经处理的索引,将索引相应的像素点作为当前处理的像素点,判断其邻域(5X5)范围内有无相同属性并且具有像素值的像素点,如果有将该类像素点的索引存放于容器Vector2中。
[0034]步骤8,判断Vector2中的索引数据量是否为0,
如果容器Vectorf中的索引数据量为0,则直接返回步骤7,提取容器Vectorl中的下一个未经处理的索引;
如果容器Vector2中的索引数据量大于0,取出容器Vector2中所有索弓丨,容器Vector2恢复为空,根据各索引分别相应的像素值确定一个像素值后赋值给当前处理的像素点,赋值结束后将容器Vectorl中当前处理的像素点相应索引删除,判断容器Vectorl中剩余未处理的索引个数是否为0,若是则进入步骤9,若否则返回进入步骤7提取容器Vectorl中的下一个未经处理的索引。具体实施时,本领域技术人员可自行指定修补取值方式,建议根据各索引分别相应的像素值,采用求平均的方式确定用于修补的像素值。
[0035]步骤9,此时步骤5所得容器Vectorl中的所有索引经过步骤7和步骤8逐个处理结束,判断容器Vectorl剩余未删除的索引数据量,若不满足预设的循环停止条件则返回步骤6根据容器Vectorl中剩余未删除的索引进行下一次迭代处理,否则输出修补后的图像,结束流程。
[0036]根据快速行进方式修补过程需要多轮逐步推进的过程才能完成整个修补过程,其在修补过程中难免会遇到有些像素的属性值与其邻近区域的像素属性全不一样的,到修补的后期,虽然未修补的像素数目大于0,仍满足继续修补的条件,但是继续修补不能减少缺失像素的数目。因此可以计算各次修补后剩余未修补的像素数目,如果经过一轮修补后,该数目与上次比未减少则认为满足循环停止条件,退出修补,从而实现自动循环控制。
[0037]具体实施时,也可以弹出对话框,提示该数据量请求返回是否继续修补。如果用户选择继续修补则返回步骤6 ;如果选择退出修补则输出修补后的图像,结束流程。
[0038]通过以上步骤5~9,实施例基于真正射影像各像素属性值和快速行进方式进行绝对遮蔽区域的修补。针对缺失像素的区域多次迭代,可以由待修补区域(即绝对遮挡区域)外围层层推进直到最内层完成修补,即提取容器Vectorl中的未经处理的索引时,按照对绝对遮挡区域从外到内的顺序实现确定当前处理的像素点,内层可根据外层的修补结果进行相应修补。实施例的修补过程中,针对缺失像素判断其5X5邻域内的相同属性值且具有像素值的像素索引,放置在容器Vector2中。如果Vector2是空的,则该待修补像素不修补;如果Vector2不为空,则将其中像素的像素值取出并求平均后赋给待修补像素,同时将该待修补像素的索引值从Vectorl中删除。这样就能保证修补后,Vectorl中的缺失像素点的数目逐渐减少。将Vector2中像素的像素值取出并求平均后赋给待修补像素时,是将RGB三个通道上的取值分别相加后除以像素数目,得到新的RGB值。
[0039]实施例判断修补退出迭代循环的条件为:经过一轮修补后,Vectorl中的缺失像素点的数目不再减小。具体方式是在每次进入步骤9时迭代处理后记录Vectorl中的剩余缺失像素点的数目,设上一次迭代处理后记录Vectorl中剩余未删除的索引数据量为numl,在当前迭代处理后记录Vectorl中剩余未删除的索引数据量为num2。循环停止条件为,如果num2=numl,则退出修补循环。
[0040]根据上述实施方式,能保证邻域的地面像素修补缺失的地面像素、邻域的屋顶像素修补缺失的屋顶像素,并且保证缺失区域得到最大程度的修补。
[0041]本发明还相应提供一种真正射影像绝对遮挡区域修补系统,包括以下模块:
加载模块,用于加载真正射影像及相应的坐标系统参数,分别加载真正射影像相应的DEM三角网格数据和DBM三角网格数据,所述DEM为地面三角网,所述DBM为建筑三角网;初始化模块,用于将真正射影像各像素点初始的属性设定为-1 ;
地面点标定模块,用于根据DEM三角网格数据,将真正射影像中被DEM三角网格所覆盖的区域内像素点的属性均赋值为0,标定为地面点;
建筑点标定模块,用于根据DBM三角网格数据,将真正射影像中被DBM三角网格所覆盖的区域内像素点的属性均赋值为1,标定为建筑点;
缺失像素值搜索模块,用于对真正射影像中各像素点逐个进行判断是否缺失像素值,缺失像素值的像素点属于绝对遮挡区域,将缺失像素值的像素点的索引保存在容器Vectorl 中; 缺失像素值数据量判断模块,用于如果容器Vectorl中的数据量大于0,则命令邻域搜索模块工作,否则结束系统工作;
邻域搜索模块,用于提取容器Vectorl中的一个未经处理的索引,索引相应的像素点为当前处理的像素点,判断当前处理的像素点邻域范围内是否有相同属性并且具有像素值的像素点,如果有将相应像素点的索引存放于容器Vector2中;
领域数据量判断模块,用于判断容器Vectorf中的索引数据量是否为0,
如果容器Vectorf中的索引数据量为0,则直接命令邻域搜索模块工作,提取容器Vectorl中的下一个未经处理的索引;
如果容器Vectorf中的索引数据量大于0,取出容器Vectorf中所有索弓丨,根据各索引分别相应的像素值确定一个像素值后赋值给当前处理的像素点,赋值结束后将容器Vectorl中当前处理的像素点相应索引删除,判断容器Vectorl中剩余未处理的索引个数是否为0,若是则命令循环停止判断模块工作,若否则命令邻域搜索模块工作提取容器Vectorl中的下一个未经处理的索引;
循环停止判断模块,用于根据容器Vectorl剩余未删除的索引数据量判断是否满足预设的循环停止条件,若否则返回缺失像素值数据量判断模块根据容器Vectorl中剩余未删除的索引进行下一次迭代处理,是则输出修补后的图像,结束系统工作。
[0042]各模块具体实现和各步骤相应,本发明不予赘述。
[0043]为验证本发明效果进行了模拟数据实验:
设置模拟数据包括DEM、DBM、真正射影像、存在缺失像素区域的正射影像。DEM为三角网格数据,长400米,宽300米;DBM为三角网格数据,区域为DEM范围内的两个长方形区域,长、宽分别为100米和50米;正射影像对应的空间区域是DEM的包围盒区域,如图4,DEM区域而非DBM区域即地面区域、DBM的第一个建筑区域标记为1、第二个建筑区域标记为2,黑色区域为缺失像素区域,涉及地面区域和建筑区域,修补结果可参见图5。
[0044]本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
【主权项】
1.一种真正射影像绝对遮挡区域修补方法,其特征在于,执行以下步骤: 步骤I,加载真正射影像及相应的坐标系统参数,分别加载真正射影像相应的DEM三角网格数据和DBM三角网格数据,所述DEM为地面三角网,所述DBM为建筑
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1