Artoolkit例子中的simpletest.c改写-----识别多个标识

本文档介绍如何将ARtoolkit的simpleTest.c示例修改以识别多个标识卡。通过代码调整,使得摄像头能同时识别并跟踪不止一个标识,详细步骤和关键代码已给出。
摘要由CSDN通过智能技术生成

在simpleTest.c 的原始代码中摄像头只能识别一个标识卡,本例在simpletest.c上稍作修改,以识别多个标识。

下面是修改后的代码。

…………
…………
…………
char     *patt_name[2]={"Data/patt.hiro","Data/patt.kanji"};//用数组存放2个标识的路径
int      patt_id[2];//以识别两个标识卡为例
double   patt_width[2]={80.0,80.0};//用数组存放2个标识的宽度
double   patt_center[2][2] = {0.0,0.0,0.0,0.0};//用二维数组存放2个标识的中心点
double   patt_trans[2][3][4];//用三维数组存放2个标识的"相摄像机对于标识卡的位置和姿态"
…………
…………
…………
static void   draw(int id);//根据标示卡的id绘制模型
…………
…………
…………
static void mainLoop(void)
{
	…………
	…………
	…………
	int  i, j, k[2]={-1,-1};//此处将k也改为数组
	…………
	…………
	…………
	…………
	…………
	…………
	/* check for object visibility */
       //k = -1;
       for( j = 0; j < marker_num; j++ ) {
		for(i=0;i<2;i++){
			if( patt_id[i] == marker_info[j].id ) {
				if( k[i] == -1 ) k[i] = j;
				else if( marker_info[k[i]].cf < marker_info[j].cf ) k[i] = j;
			}
		
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值