多标识AR例程分析(二)

本文分析了AR多目标跟踪的实现,通过simple.c程序展示了如何导入多目标配置文件,计算标识在相机坐标系中的位置,并在检测到标识时显示三维目标。在绘制函数中,根据标识状态显示不同颜色的立方体。此外,介绍了ARMultiMarkerInfoT结构体的关键元素,包括标识数量、相机位置等。键盘响应允许用户调整检测阈值和进入debug模式。
摘要由CSDN通过智能技术生成

这是例程的结果:
这里写图片描述

这里写图片描述

1:例程多目标跟踪:一系列标识基于相对位置关系,当至少一个标识可见可以计算出其他标识在相机坐标系中的位置。
基于simple.c实现的程序:
1):在init函数中,导入多目标配置文件,这个标识文件包含一系列标识和他们在一个固定的坐标系统中确切的位置(包含标识的角点,一系列标识平面的中心,一个任意位置)
这里写图片描述
这个文件可以从一个全局位置计算出所有标识的转换矩阵。而arMultiGetTransMat(marker_info, marker_num, config)) 不给出每个标识在相机坐标系统中的位置,但是给出在相机坐标系统中一个固定坐标系统的位置,和每一个标识相对于这个固定坐标系统的位置。所以即时不检测到标识,也可以显示在那个标识上的三维目标。

2:在绘制函数中,使用计算出的固定坐标系和标识的位置显示立方体。检测到标识是visible就显示为蓝色,否则,显示为红色。

3:在多标识中,一个重要的结构体:ARMultiMarkerInfoT
ARMultiEachMarkerInfoT * marker
int marker_num
double trans [3][4]
int prevF
double transR [3][4]
第一个参数是多标识的一系列标识,也是一个结构体,和单个的标识信息结构体一致;就相当于单标识的导入标识文件;
第二个参数是标识的数量。
第三个参数是在多标识坐标系中的相机位置;
第四个参数是这个标识是否可视;
第五个参数是最后的位置,我理解为真实相机位置和虚拟相机位置的转换矩阵;而标识相对于虚拟相机的位置的转换矩阵在第一个参数结构体中的转换矩阵。
4:键盘响应:
t:键入一个阈值用于检测标识;意思是阈值可控;
d:开始debug模式,就是清除了颜色,无论是真实图像还是虚拟目标,虚拟目标按照标识信息中的角点位置画一个方框。并在标识上画一个四方线体,没有面。
5:一些函数说明:
argDispImage(dataPtr,0,0);这就是直接显示图像,然后在图像上显示虚拟物体;
argDispImage(dataPtr,1,1);这个除了和上面一样外,还在一个小窗口只显示真实图像,不添加虚拟物体;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值