自定义算法模块获取输入直线的方法
自定义算法模块如何获取输入直线,从而扩展到直线边缘缺陷检测等算法领域?

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);

至此,实现模块输入直线的配置与数据获取。

版权声明:本文为V社区用户原创内容,转载时必须标注文章的来源(V社区),文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:v-club@hikrobotics.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
上一篇

自定义算法模块输出和显示矩形检测框的方法

下一篇

浅谈VsionMaster:用脚本,做一些好玩的东西。

评论请先登录 登录
全部评论 0
Lv.0
机器视觉领域从业者,天选打工人,跑毒决赛圈。
7
创作
24
粉丝
36
获赞
相关阅读
  • 浅谈VsionMaster:用脚本,做一些好玩的东西。
    2022-12-30
  • 汽车行业|插针检测
    2022-12-26
  • 锂电行业|3D解决方案|锂电表面划痕气泡缺陷检测
    2022-12-19
  • 看看哪条建议是你提的,V社区官方回应来了~~
    2023-01-11
  • 自定义算法模块添加多幅图像输入的方法
    2022-12-19

请升级浏览器版本

您正在使用的浏览器版本过低,请升级最新版本以获得更好的体验。

推荐使用以下浏览器