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

文档序号:8283060阅读:来源:国知局
Vectorf中所有索弓丨,根据各索引分别相应的像素值确定一个像素值后赋值给当前处理的像素点,赋值结束后将容器Vectorl中当前处理的像素点相应索引删除,判断容器Vectorl中剩余未处理的索引个数是否为0,若是则命令循环停止判断模块工作,若否则命令邻域搜索模块工作提取容器Vectorl中的下一个未经处理的索引;
循环停止判断模块,用于根据容器Vectorl剩余未删除的索引数据量判断是否满足预设的循环停止条件,若否则返回缺失像素值数据量判断模块根据容器Vectorl中剩余未删除的索引进行下一次迭代处理,是则输出修补后的图像,结束系统工作。
[0013]本发明能够有效修补真正射影像中绝对遮蔽区域,各像素属性明确,能够采用相同属性的像素进行修补,因此保证了最大程度的保真,基本不存在地面像素补到屋顶面上或屋顶面像素补到地面上的情况。
【附图说明】
[0014]图1为本发明实施例的加载DEM示意图;
图2为本发明实施例的加载DBM示意图;
图3为本发明实施例的加载DSM示意图;
图4为本发明实施例的真正射影像绝对遮挡区域修补位置示意图。
[0015]图5为本发明实施例的真正射影像绝对遮挡区域修补效果示意图。
【具体实施方式】
[0016]以下结合附图和实施例对本发明技术方案进行具体描述。
[0017]传统的基于快速行进法的图像修复方法基本思想是,基于加权平均的方式计算单个待修补像素的纹理,基于快速行进方式从待修补区域外围层层推进填充整个遮蔽区域。由于该方法未考虑真正射影像中各像素点属性的差异,会出现地面点像素填充到屋顶面和屋顶面像素填充到地面的现象以及地面点像素和屋顶面像素加权融合后填充到地面或屋顶而造成的模糊现象。因此本发明提出加载DEM三角网格数据和DBM三角网格数据,根据其覆盖的像素区域对真正射影像中各像素的属性进行区分,分别定性为非网格区域像素、地面像素、建筑(屋顶)像素,分别以-1,O, I表示。加载DEM、DBM,可得到二者叠合的DSM,如图1、2、3。DEM为地面三角网,DBM为建筑三角网,DSM为DEM与DBM融合的数据,表示地面建筑三角网。
[0018]具体实施时,本发明技术方案可采用软件技术实现自动流程运行。本发明实施例所提供的一种真正射影像绝对遮挡区域修补方法,包括以下步骤:
步骤1,加载真正射影像(含有绝对遮挡区域,该部分内所有像素点的像素值缺失,即为RGB(O, O, O))及其相应的坐标系统参数(即同名的tfw文件,其中包括横向分辨率、纵向分辨率、左下角像素点对应的真实地理坐标,包含横坐标及纵坐标);分别加载真正射影像相应的DEM三角网格数据和DBM三角网格数据。
[0019]步骤2,将真正射影像各像素点初始的属性设定为-1。
[0020]实施例初始化真正射影像中各个像素点的属性值为非网格区域像素,即attribute [i] [j]=_l。其中,i为像素的横坐标,j为像素的纵坐标,attribute [i] [j]为坐标为(i,j)的像素的属性值。
[0021]步骤3,根据DEM三角网格数据,将真正射影像中被DBM三角网格所覆盖的区域内像素点的属性均赋值为0,即标定为地面点。具体实现时可对各个三角片逐个分析,结合真正射影像的坐标参数及分辨率判断该三角片所覆盖的像素区域,被DEM三角网格所覆盖的区域均暂时标定为地面点。
[0022]实施例对DEM三角网格中各个DEM三角片,分别判断DEM三角片所覆盖的像素。假设DEM某三角片所对应的三个顶点的真实地理坐标分别为(xl,yl)、(x2,y2)、(x3,y3)。加载真正射影像所附带的坐标参数文件,其中左下角像素的真实地理坐标为(leftdownx, leftdowny),横向分辨率为pixelx,纵向分辨率为pixely。计算DEM某三角片所对应的三个顶点在真正射影像上的坐标A (p_xl, p_yl)、B(p_x2, p_y2)、C(p_x2, p_y2)。假设某顶点真实地理坐标为(x,y),顶点在真正射影像上的坐标(p_x,p_y)的计算方法如下:
p_x=(x-leftdownx)/pixelx; (I)
P_y=(y-leftdowny)/pixely; (2)
其中,p_x为顶点在真正射影像上的横坐标,p_y为顶点在真正射影像上的纵坐标。
[0023]三角片对应三个顶点在真正射影像上的坐标A (p_xl, p_yl)、B (p_x2, p_y2)、C(p_x2, p_y2),可根据其真实地理坐标(xl, yl) > (x2, y2)、(x3, y3)及公式(I )、(2)求得。
[0024]判断在三角形ABC范围内的像素为伪地面像素。计算三角形ABC的包围盒Box (minx, miny, maxx, maxy),minx、miny、maxx、maxy 分另Ij指三个顶点中横坐标最小值、纵坐标最小值、横坐标最大值、纵坐标最大值。对该包围盒内的像素判断是否在三角形ABC范围内。如果某像素在该三角形ABC范围内,则将该像素的属性值设定为地面点,假设该像素的坐标为(i, j),则其像素属性attribute [i] [j]=0。
[0025]步骤4,根据DBM三角网格数据,将真正射影像中被DBM三角网格所覆盖的区域内像素点的属性均赋值为1,即标定为建筑点。具体实现方法与步骤3类似。
[0026]实施例对各个DBM三角片,分别判断DBM三角片所覆盖的像素。假设DBM某三角片所对应的三个顶点的真实地理坐标分别为(xl,yl)、(x2, y2)、(x3, y3)。计算DEM某三角片所对应的三个顶点在真正射影像上的坐标A (p_xl, p_yl)、B(p_x2, p_y2)、C(p_x2, p_y2)。假设某顶点的真实地理坐标为(x,y),顶点在真正射影像上的坐标(P_x,P_y)按公式(I)、
(2)计算。
[0027]判断在三角形ABC范围内的像素为屋顶像素。计算三角形ABC的包围盒Box (minx, miny, maxx, maxy),minx、miny、maxx、maxy分别指三个顶点中横坐标最小值,纵坐标最小值、横坐标最大值、纵坐标最大值。对该包围盒内的像素判断是否在三角形ABC范围内。如果某像素在该三角形ABC范围内,则将该像素的属性值设定为屋顶点,假设该像素的坐标为(i, j),则其像素属性attribute [i] [j]=l。
[0028]通过以上步骤1~4获得真正射影像各像素的属性值后,基于像素属性和快速行进方式进行缺失像素的修补。
[0029]步骤5,对真正射影像中各像素点逐个进行判断是否缺失像素值,将缺失像素值的像素点的索引保存在容器Vectorl中。缺失像素值的像素点属于绝对遮挡区域。
[0030]实施例根据真正射影像相应的像素矩阵设定各个像素的索引,假设该像素的矩阵坐标为(x,y),矩阵宽度为《,矩阵高度为h,像素索引值Index则有如下关系:
Index=x+y Xw ;
X =Index mod w ;y = (Index-x)/w ;
其中,W为真正射影像的宽度,h为真正射影像的高度,mod表示取余,/表示取模。
[0031]可预先定义缺失像素值的像素索引的容器Vectorl,容器Vectorl初始为空,分别判断各个像素(X,y)的像素值是否为RGB (O, O, O),即RGB三个通道上的取值都为0,是则将其索引值加到容
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1