- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于C语言与OpenCV分布式孔径成像系统设计
基于C语言与OpenCV分布式孔径成像系统设计
摘 要:针对分布式孔径数字全息系统要求保密性高,数据量大等特点,文中设计了基于C++语言与OpenCV函数库的三孔径数字成像系统软件。软件首先对各孔径间装配导致的再现像缩放、旋转误差进行校正,然后进行孔径综合,并通过微软基础类库进行人机界面的编写。
关键词:分布式孔径;数字全息;C++;OpenCV;MFC
中图分类号:TP391 文献标识码:A 文章编号:2095-1302(2017)12-00-02
0 引 言
基于数字全息探测的分布式孔径综合成像技术是一种先进的主动成像技术[1],能够在低照度、复杂背景条件下获取远距离景物的高分辨率三维图像[2,3],具有模块化、可靠性高等优点。该成像体制采用多个子孔径对目标进行全息探测,然后将各子孔径上的目标光复振幅根据其空间位置综合起来,从而获得较大的数值孔径[4,5]。
在分布式孔径各孔径间记录时会因为CCD记录的位置、角度、焦点等不同造成子孔径间全息图间存在位移、缩放、旋转等误差。根据参考文献[6]知,全息图间放大率误差等于各自重构出的物体图像间尺度误差的倒数。而重构图像间的旋转、尺度误差可通过图像配准的方式得到[6]。重构图像间的误差可以利用图像处理技术来标定。SURF[7](Speeded Up Robust Features,SURF)算法是一种基于特征点匹配的图像拼接算法。可以处理两幅图像间的位移、缩放、旋转等变化情况下的特征匹配问题,具有匹配性能稳定、速度快等优点[8]。
由于国内大多数分布式孔径数字全息系统还停留在实验室阶段,尚未有成型的产品。而当前的软件产品源代码保密性高,调用的函数库较多,消耗了大量系统资源,且设备驱动繁琐,导致在实际应用中结合本系统特点进行二次开发和应用的难度较大,限制环节较多。所以,自主开发具有校装配误差的数字全息系统十分必要。C++语言具有高效、支持继承和重用等特点[9],所以本系统可通过MFC(Microsoft Foundation Classes,MFC)与C++编程进行人机界面的展示。
1 分布式孔径数字全息
分布式孔径综合成像系统示意图如图1所示。激光器发射出的相干光束被分为两束,一束光作为物光射向目标物体,再由物体反射回光电探测器;另一束光作为参考光再次分束直接照向各子孔径光电探测器。子孔径内的光电探测器分别记录参考光与物光的干涉信号[10]。在数字信号处理器中,首先利用傅立叶变换等方法从干涉信号中分别复原出子孔径探测器上的目标,返回光复振幅,然后利用菲涅耳衍射公式计算出各子孔径入瞳面上的目标光复振幅Ui(x,y),最后按照子孔径空间位置对Ui(x,y)进行综合,并通过菲涅耳衍射公式计算出目标平面上的光复振幅。
其中,z为子孔径瞳平面与目标所在平面之间的距离,k=2π/λ,λ为波长,FT[?]表示傅立叶变换, (ai,bi)为第i子孔径的中心空间位置,N为子孔径数目。
在实际系统中,由于装配误差会影响孔径综合的效果,所以本系统对孔径综合算法进行了误差校正,程序流程如图2所示。
在重建像中选取一幅作为参考图像,分别与其他重建像进行SURF算法缩放、位移误差计算。目标光复振幅旋转误差对应重建像相应的旋转,目标光复振幅缩放误差对应重建像缩放误差的倒数。对目标光复振幅矩阵做相应旋转、缩放的坐标变换进行校正。最后,将各子孔径校正后的目标光复振幅进行叠加、重建,即得到高分辨率的三孔径成像。
2 分布式孔径数字全息处理系统
2.1 分布式孔径系统数据采集系统
建立图3所示的模拟分布式孔径系统数据采集系统。激光器的出射光束经过准直和扩束后由分束镜分为两路,一路照向目标光作为物光,另外一路作为本地参考光。CCD记录目标散射光和参考光形成的离轴全息图。激光器波长为635nm,CCD像素数为1 300×1 024,每个像素大小为4.65μm,目标与CCD的距离约为1.03 m,目标是一枚直径为0.25 m的金属币。通过多次数据采集模拟多个孔径,并人为地将CCD分别旋转至-15°、0°、+15°来模拟3个孔径的装配误差,如图4所示。
2.2 基于C++语言与OpenCV的软件设计
C++不仅拥有计算机高效运行的实用性特征,同时还能提高大规模程序的编程质量与程序设计语言的问题描述能力。OpenCV是一个集成好的机器视觉函数库,由C++语言编写,其主要接口也采用C++语言编写。因此,三孔径数字全息系统软件由C++语言编写,并利用OpenCV函数库进行SURF算法编程,对各孔径间缩放、旋转误差进行校正。软件主要包括数据重建、误差配准、目标光复振幅校正、孔径综合等模?K。
(1)数据重建模块是对各目标光复振
文档评论(0)