Halcon 和 Cpp之间的数据转换
HTuple-> VC 数据类型转换
// HTuple 转 int
HTuple hTuple = 1;
int Val1 = hTuple[0].I();
// HTuple 转 double
HTuple hTuple = 1.1;
double Val2 = hTuple[0].D();
// HTuple 转 CString
HTuple hTuple = "cstring";
std::string str3 = hTuple[0].S();
// HTuple 转 bool
HTuple hTuple = 1; // Halcon 中用整数表示布尔值
bool boolVal = (hTuple[0].I() != 0); // 非零值转为 true
VC ->HTuple 数据类型转换
// int 转 HTuple
int intVal = 2;
HTuple hTuple = intVal; // 直接赋值(隐式转换)
// double 转 HTuple
double doubleVal = 2;
HTuple hTuple = doubleVal; // 直接赋值(隐式转换)
// CString 转 HTuple
CString str = "CString";
HTuple hTuple2 = str.GetBuffer(); // CString → char*
// QString 转 HTuple
QString str4 = "QString";
HTuple hTuple3 = str4.toStdString().c_str(); // QString → char*
HTuple hTuple4 = str4.toUtf8().constData(); // 减少一次拷贝
数据类型转换对照表
| VC++类型 | 转换方式 | 提取方法 |
|---|---|---|
| int | 直接赋值 | .I() |
| double | 直接赋值 | D() |
| CString | .GetBuffer() | .S() |
| QString | .toUtf8().constData() | .S() |
| bool | 隐式转换 (true=1) | hTuple[0].I() != 0 |
注意:
HTpule 元组可能存储有多个元素以及多个数据类型,可采用 .Num() 函数获取其数据个数
int intNum = hTuple.Num();

浙公网安备 33010602011771号