[发明专利]一种利用遥感影像提高山体的数字高程数据分辨率的方法有效
申请号: | 201810067398.9 | 申请日: | 2018-01-24 |
公开(公告)号: | CN108280880B | 公开(公告)日: | 2018-11-16 |
发明(设计)人: | 许骏;潘欣;张素莉;付浩海;张华 | 申请(专利权)人: | 长春工程学院 |
主分类号: | G06T17/05 | 分类号: | G06T17/05 |
代理公司: | 吉林长春新纪元专利代理有限责任公司 22100 | 代理人: | 陈宏伟 |
地址: | 130021 吉林*** | 国省代码: | 吉林;22 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数字高程 山体 遥感影像 数据分辨率 高分辨率 遥感影像数据 边缘信息 低分辨率 多山地区 三维建模 数据获得 分辨率 细化 测绘 自然环境 地形 飞行 | ||
1.一种利用遥感影像提高山体的数字高程数据分辨率的方法,包括以下步骤:
S1,输入较低分辨率的数字高程数据DEM,输入山体高分辨率高程数据的分辨率M,输入生成数据的横坐标X和纵坐标Y,横向长度W和纵向长度H;构造山体三维高度基准网BNET:
S101,山体高分辨率高程数据横向元素个数WNUM=Round(W/M+0.5);
S102,山体高分辨率高程数据纵向元素个数HNUM=Round(H/M+0.5);
其中,Round为进行四舍五入;
S103,建立BNET,BNET为一个WNUM列HNUM行的数组,该数组的每一个元素为一个基准结构体BStruct;
BStruct包含以下字段内容,所有字段的初始值为0;
BX1 所在横坐标初始值为0;
BY1 所在纵坐标初始值为0;
BValue 基准高度值初始值为0;
BID 数字高程点的编号初始值为0;
TID 团块关系编号初始值为0;
LYZD 邻域最低值初始值为0;
LYZG 邻域最高值初始值为0;
CValue 重构高度值初始值为0;
S2,根据数字高程数据DEM初始化三维高度基准网BNET中所有BStruct的值:
S201,取出BNET中的一个元素BPoint,BPoint为一个BStruct类型的结构体;
S202,BPoint在BNET中所在行为HH,所在列为LL;
S203,计算BPoint的所在横坐标BPoint.BX1=X+LL×M,所在纵坐标BPoint.BY1=Y+HH×M;
S204,在DEM中找到一个与(BPoint.BX1,BPoint.BY1)距离最近的点,取出该点编号ID其海拔高度Elevation,在BPoint中设置BPoint.BID=ID,BPoint.BValue=Elevation;
S205,如果BNET中所有数据被取完那么转到S206,否则转到S201;
S206,团块计数器tcounter=1;
S207,取出BNET中一个TID为0的元素BPoint2;
S208,设置BPoint2的团块关系编号BPoint2.TID=tcounter;
S209,对于BNET中所有数字高程点的编号BID与BPoint2的BID相同的元素,设置其TID的值为tcounter;
S210,tcounter=tcounter+1;
S211,如果BNET中存在TID为0的元素,那么转到S207,否则转到S212;
S212,团块最大编号值MAXTID=tcounter-1;
S3,根据BNET中的所有元素的团块关系编号TID,计算BNET中每个元素的邻域最低值、邻域最高值:
S301,编号计数器ITID=1;
S302,取出BNET中TID=ITID的所有元素放入列表PLIST中;
S303,取出BNET中TID≠ITID并且与PLIST中任意一个元素相邻的元素,放入NLIST中;
S304,统计NLIST中所有的元素高度值BValue,获得最大值MaxBValue和最小值MinBValue;
S305,对于列表PLIST中的所有元素,其邻域最低值LYZD=MinBValue,邻域最高值LYZG=MaxBValue;
S306,ITID=ITID+1;
S307,如果ITID大于MAXTID那么转到S308,否则转到S302;
S308,该步骤处理结束;
S4,输入遥感影像Image计算影像边缘梯度数组TDArray:
S401,获得遥感影像Image的行数Rows和列数Cols;
S402,建立行数为Rows和列数Cols边缘梯度数组TDArray,数组中每一个元素的初始值为1.0;
S403,建立行数为Rows和列数Cols的归一化数组NormArray;
S404,对于Image中的每一个像元pixel,该像元所在的行为HSS,所在列为LSS,计算该像元所有波段值的和pixelsum,将pixelsum存储到NormArray的行为HSS列为LSS的元素当中;
S405,对NormArray中的所有元素归一化到区间[0,1]之间;
S406,取出NormArray中的一个元素存储到元素变量NPixel中;
S407,获得NPixel所在的行NHSS,和所在列NLSS;
S408,如果NHSS>=2并且NHSS<(Rows-2)转到S409,否则转到S413;
S409,如果NLSS>=2并且NLSS<(Cols-2)转到S410,否则转到S413;
S410,设定变量Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9的值,它们的值如下:
Z1=NormArray的第NHSS-1行,第NLSS-1列的元素的值;
Z2=NormArray的第NHSS-1行,第NLSS列的元素的值;
Z3=NormArray的第NHSS-1行,第NLSS+1列的元素的值;
Z4=NormArray的第NHSS行,第NLSS-1列的元素的值;
Z5=NormArray的第NHSS行,第NLSS列的元素的值;
Z6=NormArray的第NHSS行,第NLSS+1列的元素的值;
Z7=NormArray的第NHSS+1行,第NLSS-1列的元素的值;
Z8=NormArray的第NHSS+1行,第NLSS列的元素的值;
Z9=NormArray的第NHSS+1行,第NLSS+1列的元素的值;
S411,计算边缘梯度算子bytd的值,其公式如下:
temp1=tanh((Z7+2×Z8+Z9)-(Z1+2×Z2+Z3));
temp2=tanh((Z3+2×Z6+Z9)-(Z1+2×Z4+Z7));
其中,tanh为双曲正切函数;
S412,将bytd存储到TDArray的第NHSS行第NLSS列的元素之中;
S413,如果NormArray中尚有数据未处理则转到S406,否则转到S414;
S414,本步骤处理结束;
S5,结合遥感影像Image和边缘梯度数组TDArray调整山体三维高度基准网BNET每一个元素的重构高度值CValue:
S501,在BNET中取出一个元素BPoint;
S502,取出Image中位置在横坐标在BPoint.BX1-M/2和BPoint.BX1+M/2之间,纵坐标在BPoint.BY1-M/2和BPoint.BY1+M/2之间的所有像元,放入Bpixellist中;
S503,取出TDArray中的与Bpixellist中所有像元行和列位置相同的数组元素,放入TDList中;
S504,计算TDList中所有元素的均值放入均值变量avg中;
S505,设定BPoint的重构高度值Cvalue,公式如下:
BPoint.Cvalue=BPoint.Bvalue+(avg-1)×(BPoint.LYZG-BPoint.LYZD)
S506,如果BNET中所有元素处理完毕那么转到S507,否则转到S501;
S507,本过程处理结束;
S6,根据山体三维高程基准网BNET,建立山体较高分辨率数字高程数据DEM2:
S601,建立空的较高分辨率数字高程数据DEM2;
S602,编号计数器IDCounter=0;
S603,取出BNET中的一个元素BPoint;
S604,将编号计数器IDCounter,所在横坐标BPoint.BX1,所在纵坐标BPoint.BY1,重构高度值BPoint.CValue加入到DEM2之中;
S605,IDCounter=IDCounter+1;
S606,如果BNET中所有元素处理完毕那么转到S607,否则转到S603;
S607,本过程处理结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长春工程学院,未经长春工程学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810067398.9/1.html,转载请声明来源钻瓜专利网。