如何实现Halcon与C++间海量数据转换的高效对接?
摘要:HTuple-> VC 数据类型转换HTuple 转 int HTuple hTuple = 1; int Val1 = hTuple[0].I();HTuple 转 double HTuple hTu
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();
