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

文档序号:8283060阅读:547来源:国知局
一种真正射影像绝对遮挡区域修补方法及系统的制作方法
【技术领域】
[0001]本发明属于航空摄影测量技术领域,特别涉及一种真正射影像绝对遮挡区域修补方法及系统。
【背景技术】
[0002]在真正射影像生成过程中,当建筑物较为密集,拍摄倾角过大,或者原始相邻影像不足时,就会产生“绝对遮蔽”问题,此时需要采取数字处理的方法对真正射影像中“绝对遮蔽”区域进行纹理补偿。
[0003]图像修复的方法很多,主要包括:基于偏微分方程方法、基于全变分模型的方法、纹理合成的方法以及Telea等在2004年提出的基于快速行进法的图像修复方法。其中基于快速行进法的图像修复方法较为简单。该方法的基本思想是,基于加权平均的方式计算单个待修补像素的纹理,基于快速行进方式从待修补区域外围层层推进填充整个遮蔽区域。该方法简单、处理效率高,但同时存在影像模糊和扭曲的问题。

【发明内容】

[0004]针对以上技术问题,本发明从真正射影像像素属性值出发,在快速行进方式的基础上设计了一个基于真正射影像像素属性差异和快速行进方式的真正射影像绝对遮蔽区域修补技术方案,优化了修补效果,大大减少了真正射影像中像素缺失量模糊和扭曲。
[0005]本发明的技术方案提供一种真正射影像绝对遮挡区域修补方法,执行以下步骤: 步骤I,加载真正射影像及相应的坐标系统参数,分别加载真正射影像相应的DEM三角网格数据和DBM三角网格数据,所述DEM为地面三角网,所述DBM为建筑三角网;
步骤2,将真正射影像各像素点初始的属性设定为-1 ;
步骤3,根据DEM三角网格数据,将真正射影像中被DEM三角网格所覆盖的区域内像素点的属性均赋值为0,标定为地面点;
步骤4,根据DBM三角网格数据,将真正射影像中被DBM三角网格所覆盖的区域内像素点的属性均赋值为I,标定为建筑点;
步骤5,对真正射影像中各像素点逐个进行判断是否缺失像素值,缺失像素值的像素点属于绝对遮挡区域,将缺失像素值的像素点的索引保存在容器Vectorl中;
步骤6,如果容器Vectorl中的数据量大于0,则进入步骤7,否则结束流程;
步骤7,提取容器Vectorl中的一个未经处理的索引,索引相应的像素点为当前处理的像素点,判断当前处理的像素点邻域范围内是否有相同属性并且具有像素值的像素点,如果有将相应像素点的索引存放于容器Vector2中;
步骤8,判断容器Vectorf中的索引数据量是否为0,
如果容器Vectorf中的索引数据量为0,则直接返回步骤7,提取容器Vectorl中的下一个未经处理的索引;
如果容器Vectorf中的索引数据量大于0,取出容器Vectorf中所有索弓丨,根据各索引分别相应的像素值确定一个像素值后赋值给当前处理的像素点,赋值结束后将容器Vectorl中当前处理的像素点相应索引删除,判断容器Vectorl中剩余未处理的索引个数是否为0,若是则进入步骤9,若否则返回进入步骤7提取容器Vectorl中的下一个未经处理的索引;
步骤9,根据容器Vectorl剩余未删除的索引数据量判断是否满足预设的循环停止条件,若否则返回步骤6根据容器Vectorl中剩余未删除的索引进行下一次迭代处理,是则输出修补后的图像,结束流程。
[0006]而且,步骤3的实现方式如下,
设DEM三角网格中某三角片所对应的三个顶点的真实地理坐标分别为(xl,yl)、(x2, y2)、(x3, y3),根据坐标系统参数计算DEM某三角片所对应的三个顶点在真正射影像上的坐标A(p_xl, p_yl)、B (p_x2, p_y2)、C (p_x2, p_y2),计算三角形ABC的包围盒,对该包围盒内的像素点判断是否在三角形ABC范围内,如某像素点在该三角形ABC范围内,则将该像素的属性值赋值为0,标定为地面点。
[0007]而且,步骤4的实现方式如下,
设DBM三角网格中某三角片所对应的三个顶点的真实地理坐标分别为(xl,yl)、(x2, y2)、(x3, y3),根据坐标系统参数计算DBM某三角片所对应的三个顶点在真正射影像上的坐标A(p_xl, p_yl)、B (p_x2, p_y2)、C (p_x2, p_y2),计算三角形ABC的包围盒,对该包围盒内的像素点判断是否在三角形ABC范围内,如某像素点在该三角形ABC范围内,则将该像素的属性值赋值为1,标定为建筑点。
[0008]而且,所述坐标系统参数包括横向分辨率、纵向分辨率、左下角像素点对应的真实地理坐标,设左下角像素的真实地理坐标为(leftdownx,leftdowny),横向分辨率为pixelx,纵向分辨率为pixely ;
设某顶点真实地理坐标为(X,y),顶点在真正射影像上的坐标(p_x,p_y)的计算方法如下,
p_x=(x-leftdownx)/pixelx;
P_y=(y-leftdowny)/pixely;
其中,P_x为顶点在真正射影像上的横坐标,P_y为顶点在真正射影像上的纵坐标。
[0009]而且,步骤5中,设某像素点的矩阵坐标为(X,y),相应索引取值Index如下, Index=x+y Xw ;
X =Index mod w ;y = (Index-x)/w ;
其中,W为真正射影像的宽度,h为真正射影像的高度,mod表示取余,/表示取模。
[0010]而且,步骤7中,提取容器Vectorl中的一个未经处理的索引时,按照对绝对遮挡区域由外到内的顺序实现。
[0011]而且,步骤9中,循环停止条件为,在当前迭代处理后记录容器Vectorl中剩余未删除的索引数据量等于上一次迭代处理后记录容器Vectorl中剩余未删除的索引数据量。
[0012]本发明还相应提供一种真正射影像绝对遮挡区域修补系统,包括以下模块:
加载模块,用于加载真正射影像及相应的坐标系统参数,分别加载真正射影像相应的DEM三角网格数据和DBM三角网格数据,所述DEM为地面三角网,所述DBM为建筑三角网; 初始化模块,用于将真正射影像各像素点初始的属性设定为-1;
地面点标定模块,用于根据DEM三角网格数据,将真正射影像中被DEM三角网格所覆盖的区域内像素点的属性均赋值为O,标定为地面点;
建筑点标定模块,用于根据DBM三角网格数据,将真正射影像中被DBM三角网格所覆盖的区域内像素点的属性均赋值为1,标定为建筑点;
缺失像素值搜索模块,用于对真正射影像中各像素点逐个进行判断是否缺失像素值,缺失像素值的像素点属于绝对遮挡区域,将缺失像素值的像素点的索引保存在容器Vectorl 中;
缺失像素值数据量判断模块,用于如果容器Vectorl中的数据量大于0,则命令邻域搜索模块工作,否则结束系统工作;
邻域搜索模块,用于提取容器Vectorl中的一个未经处理的索引,索引相应的像素点为当前处理的像素点,判断当前处理的像素点邻域范围内是否有相同属性并且具有像素值的像素点,如果有将相应像素点的索引存放于容器Vector2中;
领域数据量判断模块,用于判断容器Vectorf中的索引数据量是否为0,
如果容器Vectorf中的索引数据量为0,则直接命令邻域搜索模块工作,提取容器Vectorl中的下一个未经处理的索引;
如果容器Vectorf中的索引数据量大于0,取出容器
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1