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

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 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
上一篇

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

下一篇

VM开发模式介绍

评论请先登录 登录
全部评论 0
Lv.0
2
关注
48
粉丝
13
创作
88
获赞
所属专题
  • 自定义算法模块添加多幅图像输入的方法
  • 自定义算法模块点集输入、输出实现方法
  • 自定义算法模块输出和显示矩形检测框的方法
  • 自定义算法模块获取输入直线的方法
  • 自定义算法模块打印日志的方法
  • YoloV5ForVisionMaster
  • Sauvola二值化处理在图像处理应用的优势介绍分析
相关阅读
  • 探寻机器视觉新星|第二届“启智杯”机器视觉设计大赛获奖名单公布
    2024-04-08 浏览 0
  • 每日分享|3D视觉成像之双目立体视觉原理
    2024-03-21 浏览 0
  • VM4.4更新亮点
    2024-04-12 浏览 0
  • 海康AMR应用场景中蜂鸣器的使用
    2024-04-03 浏览 0
  • 第二届启智杯—光伏电池片质检视觉方案设计
    2024-04-15 浏览 0

请升级浏览器版本

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

推荐使用以下浏览器