浅谈Halcon中的HTuple类型

halcon中的HTuple类型类非常强大;

1、既可以表示的类型有int,double、float、string,既可以表示单个值;

2、可以是容器;

3、可以是数组,数组遍历时需要有下标,如:变量名称[下标]

相互转换

//HTuple 转 int double string
int _i;
HTuple tuple;
_i = tuple[0].I();
		
double _d;
_d = tuple[0].D();

const char* _str;
_str = tuple[0].S();

//int double string 转 HTuple 
tuple = (HTuple)_i;
tuple = (HTuple)_d;
tuple = (HTuple)_str;

//HTuple 转换 vector<int/ double/ string>
vector<int> *_vInt = new vector<int>();
for (size_t i = 0; i < (size_t)tuple.Length(); i++)
{
	_vInt->push_back((int)tuple[0].I());
}

vector<double> *_vDouble = new vector<double>();
for (size_t i = 0; i < (size_t)tuple.Length(); i++)
{
	_vDouble->push_back((double)tuple[0].D());
}

vector<const char*> *_vString = new vector<const char*>();
for (size_t i = 0; i < (size_t)tuple.Length(); i++)
{
	_vString->push_back((const char*)tuple[0].S());
}

//vector<int/ double/ string> 转换 HTuple 
for (size_t i = 0; i < _vInt->size(); i++)
{
	tuple.Append((HTuple)_vInt->at(i));
}

for (size_t i = 0; i < _vDouble->size(); i++)
{
	tuple.Append((HTuple)_vDouble->at(i));
}

for (size_t i = 0; i < _vString->size(); i++)
{
	tuple.Append((HTuple)_vString->at(i));
}

delete[]_vInt;
_vInt = nullptr;

delete[] _vDouble;
_vDouble = nullptr;

delete[] _vString;
_vString = nullptr;
		
//HTuple 与 数组转换
int _iArray[10];
for (size_t i = 0; i < 10; i++)
{
	tuple[i] = (HTuple)_iArray[i];
}

double _dArray[10];
for (size_t i = 0; i < 10; i++)
{
	tuple[i] = (HTuple)_dArray[i];
}

const char* _strArray[10];
for (size_t i = 0; i < 10; i++)
{
	tuple[i] = (HTuple)_strArray[i];
}

 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值