66 lines
2.2 KiB
C
Raw Normal View History

2026-05-18 23:39:05 +08:00
#pragma once
#include "IVrConfig.h"
#include "rodAndBarDetection_Export.h"
#include "SG_baseDataType.h"
#include <string>
2026-07-20 11:52:35 +08:00
typedef enum
{
KeWD_WELD_CATEGORY_UNKNOWN = 0,
KeWD_WELD_CATEGPRY_I, //焊接类型1:每根钢筋都有支点
KeWD_WELD_CATEGPRY_II, //焊接类型2:交叉钢筋上面的钢筋有支点
}EWD_weldingCategory;
2026-05-18 23:39:05 +08:00
/**
* @brief 配置参数到算法参数的转换工具
*
* 将 VrXxx 配置结构体转换为算法库所需的结构体,
* 并提供算法参数的日志打印功能。
*/
namespace AlgoParamConverter
{
/// 焊缝参数转换
SSX_rodParam ToAlgoParam(const VrRodParam& param);
/// 角点检测参数转换
SSG_cornerParam ToAlgoParam(const VrCornerParam& param);
/// 滤波参数转换
SSG_outlierFilterParam ToAlgoParam(const VrOutlierFilterParam& param);
/// 树生长参数转换
SSG_treeGrowParam ToAlgoParam(const VrTreeGrowParam& param);
/// 平面校准参数转换(cameraCalibParam 为 nullptr 时使用默认单位矩阵)
SSG_planeCalibPara ToAlgoPlaneCalibParam(const VrCameraPlaneCalibParam* cameraCalibParam);
/**
* @brief 打印所有算法参数日志
* @param logTag 日志标识字符串,如 "[Algo Thread]"
* @param rodParam 焊缝参数
* @param cornerParam 角点检测参数
* @param filterParam 滤波参数
* @param growParam 树生长参数
* @param clibMatrix 手眼标定矩阵 (4x4)
*/
void LogAlgoParams(const std::string& logTag,
const SSX_rodParam& rodParam,
const SSG_cornerParam& cornerParam,
const SSG_outlierFilterParam& filterParam,
const SSG_treeGrowParam& growParam,
const double clibMatrix[16]);
2026-07-20 11:52:35 +08:00
/// 带焊缝搜索参数的重载版本
void LogAlgoParams(const std::string& logTag,
const SSX_rodParam& rodParam,
const SSG_cornerParam& cornerParam,
const SSG_outlierFilterParam& filterParam,
const SSG_treeGrowParam& growParam,
const double clibMatrix[16],
const SVzNLRangeD& weldSeamRange,
EWD_weldingCategory weldingCategory);
2026-05-18 23:39:05 +08:00
} // namespace AlgoParamConverter