- 自定义算法模块添加多幅图像输入的方法
- 自定义算法模块点集输入、输出实现方法
- 自定义算法模块输出和显示矩形检测框的方法
- 自定义算法模块获取输入直线的方法
- 自定义算法模块打印日志的方法
- YoloV5ForVisionMaster
- Sauvola二值化处理在图像处理应用的优势介绍分析
1. 在算法模块生成器的自定义输入输出中配置输入直线参数
编译界面工程、算法工程,并将文件拷贝到工具箱目录后,模块界面如下图所示。
输入直线的参数名称从模块.xml中查看,子元素类型均为float。
2. 在算法工程中获取输入直线的数据
首先在AlgorithmModule.h文件中定义输入直线的起点、终点变量,示例代码如下:
float lineStartPX;
float lineStartPY;
float lineEndPX;
float lineEndPY;
然后在AlgorithmModule.cpp文件的Process函数中获取输入直线的数据,示例代码如下:
int nRet = IMVS_EC_UNKNOWN;
HKA_CHECK_ERROR((IMVS_NULL == hInput || IMVS_NULL == hOutput), IMVS_EC_PARAM);
HKA_F32 fValue = 0;
int nArrayCount = 0;
nRet = VM_M_GetFloat(hInput, "lineStartPX", 0, &fValue, &nArrayCount);
if (IMVS_EC_OK == nRet && nArrayCount > 0)
{
lineStartPX = fValue;
}
HKA_MODU_CHECK_ERROR(IMVS_EC_OK != nRet, nRet);
VM_M_GetFloat(hInput, "lineStartPY", 0, &fValue, &nArrayCount);
if (IMVS_EC_OK == nRet && nArrayCount > 0)
{
lineStartPY = fValue;
}
HKA_MODU_CHECK_ERROR(IMVS_EC_OK != nRet, nRet);
VM_M_GetFloat(hInput, "lineEndPX", 0, &fValue, &nArrayCount);
if (IMVS_EC_OK == nRet && nArrayCount > 0)
{
lineEndPX = fValue;
}
HKA_MODU_CHECK_ERROR(IMVS_EC_OK != nRet, nRet);
VM_M_GetFloat(hInput, "lineEndPY", 0, &fValue, &nArrayCount);
if (IMVS_EC_OK == nRet && nArrayCount > 0)
{
lineEndPY = fValue;
}
HKA_MODU_CHECK_ERROR(IMVS_EC_OK != nRet, nRet);
至此,实现模块输入直线的配置与数据获取。