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();
posted @ 2025-09-03 14:00  一楼二栋  阅读(70)  评论(0)    收藏  举报