本发明涉及光谱影像领域几何,具体涉及一种自动提取控制点的光谱影像校正方法。
背景技术:
成像光谱仪是一种“图谱合一”的光谱仪器,一次扫描可获得物体的图像和光谱信息,目前已被广泛应用于农作物生长监测、果品检测、森林灾害等方面的研究。尽管众多学者在成像光谱仪应用方面取得了很大成就,但将其应用于单株立木的测树因子(树高、树冠、胸径)提取、光谱特征分析等方面的研究还未见报道。
在使用成像光谱仪对实际单株立木进行拍摄的过程中,为了将整株立木拍摄完整,会适当调整拍摄物距及镜头的拍摄角度,因此,所获取的影像会发生几何畸变,这对测树因子的提取有重要影响,如果对光谱成像仪扫描获取的影像不经过影像校正,则会对实际结果造成很大的误差。
众多学者对影像畸变校正的方法有过诸多研究,其主要有多项式模型、有理函数模型、基于参考影像进行配准法、共线方程法、投影变换法等。这均需要明确的地面控制点、参考影像等才能完成对影像的校正,但通过成像光谱仪拍摄获得的影像,既不存在明确的控制点,也不存在明确的参考影像。如何通过拍摄物距及镜头拍摄角度,快速获取影像控制点对其进行畸变校正是本研究所需要解决的问题。因此,本发明是一种基于拍摄物距、镜头拍摄角度两个因子,自动获取控制点的光谱影像校正方法。
技术实现要素:
本发明的目的就是提供一种自动提取控制点的光谱影像校正方法,其可以在无法获取控制点情况下,解决对拍摄仰角造成的梯形畸变进行校正的问题。
为实现上述目的,本发明采用了以下技术方案:
一种自动提取控制点的光谱影像校正方法,其特征在于,包括如下操作步骤:
s1:不同物距、无拍摄角度与有拍摄角度的光谱影像获取;
s2:不同物距下的实际成像大小与物距的关系;
s3:镜头到影像中心点、上边线及下边线中点距离的计算;
s4:影像上边线及下边线中点至影像中心点实际高度的计算;
s5:影像上边线、下边线、水平中轴线实际成像长度的计算;
s6:s4与s5计算的实际高度、长度转换为像素数;
s7:控制点对的获取及影像的校正。
进一步的方案为:
步骤s2的具体操作为:根据拍摄物距,建立拍摄物距、实际成像大小之间的线性关系:
fun(di,dfactleni),dfactleni=di*0.5164-0.7303,r2=1
式中,fun()为拍摄物距与实际成像大小之间的线性关系,di为拍摄物距,dfactleni为通过影像中心点的水平线实际长度。
步骤s3的具体操作为:
s31:选取有镜头拍摄角度的质量较好的影像;
s32:根据拍摄物距、镜头拍摄角度计算镜头到影像中心点、上边线及下边线中点距离,公式分别如下:
qo'=qo/cosα=d/cosα
qb'=qo/cos(α+13°)=d/cos(α+13°)
当α>13°,qa'=qo/cos(α-13°)=d/cos(α-13°)
当α<13°,qa'=qo/cos(13°-α)=d/cos(13°-α)
式中,qo'为镜头到影像中心点的距离,qb'为镜头到影像上边线中点的距离,qa'为镜头到影像下边线中点的距离,d为拍摄物距,α为镜头拍摄角度。
步骤s4中:影像上边线及下边线中点至影像中心点实际高度的计算公式如下:
b'o'=b'o–oo'=qo*tan(α+13°)–qo*tanα=d*tan(α+13°)–d*tanα
当α>13°,则a'o'=oo'–a'o=qo*tanα–qo*tan(α-13°)=d*tanα–d*tan(α-13°)
当α<13°,则a'o'=oo'–a'o=qo*tanα–qo*tan(13°-α)=d*tanα–d*tan(13°-α)
式中,b'o'为影像上边线中点至影像中心点的实际高度,a'o'为影像下边线中点至影像中心点的实际高度,d为拍摄物距,α为镜头拍摄角度。
步骤s5具体操作为:
根据步骤s2建立的物距与实际成像大小的关系fun(di,dfactleni),分别计算影像的上边线、下边线、水平中轴线的实际长度,公式如下:
dmidfactx=qo'*0.5164–0.7303=d/cosα*0.5164–0.7303
dupfactx=qb'*0.5164–0.7303=d/cos(α+13°)*0.5164–0.7303
当α>13°,ddownfactx=qa'*0.5164–0.7303=d/cos(α-13°)*0.5164–0.7303
当α<13°,ddownfactx=qa'*0.5164–0.7303=d/cos(13°-α)*0.5164–0.7303
式中,dmidfactx为影像水平中轴线的实际长度,dupfactx为影像上边线的实际长度,ddownfactx为影像下边线的实际长度,d为拍摄物距,α为镜头拍摄角度。
步骤s6中:以影像水平中轴线实际成像长度及对应的影像像素数为参照,将步骤s4、s5中计算的影像上下边线中点至影像中心点的高度、影像上下边线的实际成像长度转换为像素数,公式如下:
duppixely=b'o'*dimg/dmidfactx+dimg/2=[d*tan(α+13°)–d*tanα]*dimg/dmidfactx+dimg/2
ddownpixely=a'o'*dimg/dmidfactx–dimg/2=[d*tanα–d*tan(α-13°)]*dimg/dmidfactx–dimg/2;或ddownpixely=[d*tanα–d*tan(13°-α)]*dimg/dmidfactx–dimg/2
duppixelx=dupfactx*dimg/dmidfactx
ddownpixelx=ddownfactx*dimg/dmidfactx
式中,duppixely为影像上边线中点至影像中心点的高度所对应的像素数,ddownpixely为影像下边线中点至影像中心点的高度所对应的像素数,duppixelx为影像上边线的实际成像长度所对应的像素数,ddownpixelx为影像下边线的实际成像长度所对应的像素数。
步骤s7的具体操作为:根据步骤s6转换获得的像素数,自动获取影像四个角点、四个边线中点及影像中心点所对应的9组校正像素坐标;然后,根据获取的控制点对利用多项式模型对畸变影像进行校正。
上述技术方案中在没有实际控制点坐标的情况下,利用拍摄物距、镜头拍摄角度,计算获取了影像中9组控制点坐标,最后利用多项式来进行影像校正,实现快速便捷的对畸变影像进行恢复。
附图说明
图1为本发明的影像校正方法流程图;
图2为实施例中存在镜头拍摄角度(α≥13°或α<13°)的成像示意图;
图3为实施例中提取的控制点分布示意图;
图4为实施例中拍摄的畸变影像(左图)及校正后的影像(右图)。
具体实施方式
为了使本发明的目的及优点更加清楚明白,以下结合实施例对本发明进行具体说明。应当理解,以下文字仅仅用以描述本发明的一种或几种具体的实施方式,并不对本发明具体请求的保护范围进行严格限定。
本发明提供一种基于拍摄物距、镜头拍摄角度两个因子,自动获取控制点的光谱影像校正方法,以解决在无法获取控制点情况下,如何对拍摄仰角造成的梯形畸变进行校正的问题。实施方式参见附图1,其具体如下:
步骤s1:不同物距、无拍摄角度与有拍摄角度的光谱影像获取;
制作1mm×1mm大小的方格靶纸,以a1纸张打印,平整粘贴于板墙上;
安装成像光谱仪,使成像光谱仪与地面保持水平;
将全站测距仪捆绑在成像光谱仪上,以用于测量拍摄物距d和镜头拍摄角度α;
将成像光谱仪的镜头保持与地面平行,以不同物距对校正靶纸进行拍摄扫描,得到不同物距下拍摄的影像;
对方格靶纸进行拍摄扫描,保持水平拍摄,以不同物距di进行拍摄扫描,得到不同光谱影像t1、t2、t3……tn;
以不同物距di、不同镜头拍摄角度αi进行拍摄扫描,得到不同光谱影像t11、t22、t33……tnn;
步骤s2:不同物距下的实际成像大小与物距的关系;
在arcgis中分别加载影像t1、t2、t3……tn,定位到中心点(本发明所用成像光谱仪的成像区域为正方形区域),即o(0.5*dimg,0.5*dimg);
作一条贯穿中心点o的水平线l,并量取不同光谱影像水平线li的实际长度dfactleni;
利用excel构建不同光谱影像的dfactleni与di的散点图,并进行线性趋势拟合,得到拍摄距离与实际成像大小的函数关系式:
fun(di,dfactleni),dfactleni=di*0.5164-0.7303,r2=1;
步骤s3:镜头到影像中心点、上边线及下边线中点距离的计算;
本实施例中选取一幅有拍摄角度的质量较好的影像tnn,附图2为存在拍摄角度情况下的成像示意图。
当不存在拍摄角度时,ab即为成像区域,其中∠aqo=∠bqo=13°,拍摄物距qo=d,qo、qa、qb分别为镜头到影像中心点、下边线及上边线中心点的距离;
当存在拍摄角度时,镜头拍摄角度∠oqo'=α,∠a'qo'=∠b'qo'=13°,实际成像区域则为a'b',因此:
镜头到影像中心点的距离qo'、镜头到影像上边线中点的距离qb'、镜头到影像下边线中点的距离qa',计算公式分别如下:
qo'=qo/cosα=d/cosα;
qb'=qo/cos(α+13°)=d/cos(α+13°);
当α>13°,qa'=qo/cos(α-13°)=d/cos(α-13°);
当α<13°,qa'=qo/cos(13°-α)=d/cos(13°-α);
步骤s4:影像上边线及下边线中点至影像中心点实际高度的计算;
(1)影像上边线中点至影像中心点的实际高度为:
b'o'=b'o–oo'=qo*tan(α+13°)–qo*tanα=d*tan(α+13°)–d*tanα;
(2)影像下边线中点至影像中心点的实际高度为:
当α>13°,则a'o'=oo'–a'o=qo*tanα–qo*tan(α-13°)=d*tanα–d*tan(α-13°);
当α<13°,则a'o'=oo'–a'o=qo*tanα–qo*tan(13°-α)=d*tanα–d*tan(13°-α);
步骤s5:影像上边线、下边线、水平中轴线实际成像长度的计算;
根据步骤s2建立的物距与实际成像大小的关系fun(di,dfactleni),分别计算影像的上边线、下边线、水平中轴线的实际长度,则有:
(1)影像水平中轴线的实际长度:
dmidfactx=qo'*0.5164–0.7303=d/cosα*0.5164–0.7303;
(2)影像上边线的实际长度:
dupfactx=qb'*0.5164–0.7303=d/cos(α+13°)*0.5164–0.7303;
(3)影像下边线的实际长度:
当α>13°,ddownfactx=qa'*0.5164–0.7303=d/cos(α-13°)*0.5164–0.7303;
当α<13°,ddownfactx=qa'*0.5164–0.7303=d/cos(13°-α)*0.5164–0.7303;
步骤s6:将步骤s4与步骤s5计算的实际高度、长度转换为像素数;
通过镜头光心点的水平方向直线不发生畸变,因此,以影像水平中轴线实际成像长度及对应的影像像素数为参照,将步骤s4\s5计算的影像上下边线中点至影像中心点的高度、影像上下边线的实际成像长度转换为像素数;
(1)影像上、下边线中点至影像中心点的高度转换为像素数,分别为:
duppixely=b'o'*dimg/dmidfactx+dimg/2=[d*tan(α+13°)–d*tanα]*dimg/dmidfactx+dimg/2;
ddownpixely=a'o'*dimg/dmidfactx–dimg/2=[d*tanα–d*tan(α-13°)]*dimg/dmidfactx–dimg/2;或ddownpixely=[d*tanα–d*tan(13°-α)]*dimg/dmidfactx–dimg/2;
(2)影像上、下边线的实际成像长度转换为像素数,分别为:
duppixelx=dupfactx*dimg/dmidfactx;
ddownpixelx=ddownfactx*dimg/dmidfactx;
步骤s7:控制点对的获取及影像的校正;
根据由于拍摄角度产生的梯形畸变(附图4左图),根据步骤s6转换的像素数,计算影像四个角点、四个边线中点及影像中心点所对应的校正像素坐标,详细控制点分布示意图见附图3。获取的9组控制点对见表1;
表1控制点对
表1中,pxmax、pxmin分别为原始影像x方向的最大、最小像素数;pymax、pymin分别为原始影像y方向的最大、最小像素数。
根据获取的9个校正像素坐标,利用多项式模型来校正影像,校正后影像见附图4右图。
本发明在没有实际控制点坐标的情况下,利用拍摄物距、镜头拍摄角度,计算获取了影像中9组控制点坐标,最后利用多项式来进行影像校正,快速便捷的对畸变影像进行了恢复,产生了显著有益的效果。
本发明未能详尽描述的设备、机构、组件和操作方法,本领域普通技术人员均可选用本领域常用的具有相同功能的设备、机构、组件和操作方法进行使用和实施。或者依据生活常识选用的相同设备、机构、组件和操作方法进行使用和实施。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在获知本发明中记载内容后,在不脱离本发明原理的前提下,还可以对其作出若干同等变换和替代,这些同等变换和替代也应视为属于本发明的保护范围。