当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:针对分布式孔径数字全息系统要求保密性高,数据量大等特点,文中设计了基于C++语言与OpenCV函数库的三孔径数字成像系统软件。软件首先对各孔径间装配导致的再现像缩放、旋转误差进行校正,然后进行孔径综合,并通过微软基础类库进行人机界面的编写。

引 言

基于数字全息探测的分布式孔径综合成像技术是一种先 进的主动成像技术 [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)进行综合,并通过菲涅耳衍射公式计算 出目标平面上的光复振幅。

基于C++语言与OpenCV的分布式孔径成像系统设计

在实际系统中,由于装配误差会影响孔径综合的效果, 所以本系统对孔径综合算法进行了误差校正,程序流程如图 2 所示。

在重建像中选取一幅作为参考图像,分别与其他重建像 进行 SURF 算法缩放、位移误差计算。目标光复振幅旋转误差对应重建像相应的旋转,目标光复振幅缩放误差对应重建 像缩放误差的倒数。对目标光复振幅矩阵做相应旋转、缩放 的坐标变换进行校正。最后,将各子孔径校正后的目标光复 振幅进行叠加、重建,即得到高分辨率的三孔径成像。

基于C++语言与OpenCV的分布式孔径成像系统设计

2 分布式孔径数字全息处理系统

2.1 分布式孔径系统数据采集系统

建立图 3 所示的模拟分布式孔径系统数据采集系统。激 光器的出射光束经过准直和扩束后由分束镜分为两路,一路照 向目标光作为物光,另外一路作为本地参考光。CCD 记录目 标散射光和参考光形成的离轴全息图。激光器波长为 635 nm, CCD 像素数为 1 300×1 024,每个像素大小为 4.65 μm,目标 与 CCD 的距离约为 1.03 m,目标是一枚直径为 0.25 m 的金属 币。通过多次数据采集模拟多个孔径,并人为地将 CCD 分别 旋转至-15°、0°、+15°来模拟 3 个孔径的装配误差,如图 4 所示。

基于C++语言与OpenCV的分布式孔径成像系统设计

2.2 基于 C++ 语言与 OpenCV 的软件设计

C++不仅拥有计算机高效运行的实用性特征,同时还能 提高大规模程序的编程质量与程序设计语言的问题描述能力。 OpenCV 是一个集成好的机器视觉函数库,由 C++ 语言编写, 其主要接口也采用 C++ 语言编写。因此,三孔径数字全息系 统软件由 C++ 语言编写,并利用 OpenCV 函数库进行 SURF 算法编程,对各孔径间缩放、旋转误差进行校正。软件主要 包括数据重建、误差配准、目标光复振幅校正、孔径综合等 模块。

(1)数据重建模块是对各目标光复振幅根据式(1)进行 的图像重建 ;

(2)误差配准模块通过 SURF 算法对两幅重建图像进行 误差配准 ;

(3)目标光复振幅校正模块用配准得到的误差对目标光 复振幅进行误差校正;

(4)孔径综合模块是对各孔径校正后的目标光复振幅进 行叠加,并重建。

其中,用于误差配准的 SURF 算法和目标光重建模块的坐标 变换利用 OpenCV 函数库进行。

2.3 基于 MFC 平台的人机界面搭建

MFC 是微软基础类库的简称,是微软公司实现的一个 C++ 类库,封装了大部分 Windows API 函数。VC++ 是微软 公司开发的 C/C++ 集成开发环境,灵活性较大。所以本系统 采用图 5 所示的基于 MFC 的人机界面。


基于C++语言与OpenCV的分布式孔径成像系统设计

 

图 5 中,左侧三个 rebulid 按钮分别调用数据重建模块 来对各子孔径进行图像重建,并显示在按钮上的图像控件上。 中间两个按钮用来调用误差配准模块,以中间再现像为标准图 像,分别对上侧再现像和下侧再现像进行 SURF 算法图像校正, 并将校正后的图像显示在按钮上的图像控件中,分别将角度 误差、横向缩放误差、纵向缩放误差显示在按钮下方的 edit 控件中。最右侧按钮则通过目标光伏振幅模块将各孔径目标光 复振幅进行校正,之后利用孔径综合模块进行孔径综合并再 现综合成像,将成像结果显示在按钮上的图像控件上。

3 结 语

文中自主设计了基于 C++ 语言的分布式孔径数字成像系 统,利用 OpenCV 函数库对各孔径间的误差进行配准并矫正, 同时还编写了基于 MFC 的人机界面。运行结果说明,本系统 可以很好地矫正孔径间的误差,提高综合成像质量,并进行直 观展示。




本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭