第一范文网 - 专业文章范例文档资料分享平台

全局组机器鱼策略DLL编写

来源:用户分享 时间:2025/9/5 10:48:59 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

全局组机器鱼策略DLL编写说明

1.策略函数接口

STRATEGY_API BOOL MURStrategy(IplImage* imgOrig,IplImage* imgRecog ,CFishAction action[],int n_action,CFishInfo fishInfo[],int n_fishInfo,CBallInfo ballinfo[],int n_ballinfo, OBSTAINFO obst[], int n_obst, CHANNEL channel[], int n_channel)

MURStrategy作为统一的策略入口函数(DLL导出的函数名),在Server端运行的时候动态加载及策略调度运算。传入的参数数据包含策略计算必要的所有信息。

输入参数说明:

(1)IplImage* imgOrig:相机采集到的原始图像帧,为OpenCV格式。

(2)IplImage* imgRecog:Server端进行前景提取处理后的图像识别结果,为OpenCV格式。 (3)CFishAction action[]:各机器鱼id对应的动作数组,策略运算最后返回的结果,用于

控制机器鱼的运动。

(4)int n_action:机器鱼动作数组的大小,目前n_action最大取值为16。 (5)CFishInfo fishInfo[]:机器鱼当前对应的信息数组,实时存储前景图像识别(位置信息)

跟踪机器鱼的相关信息。

(6)int n_fishInfo:机器鱼信息数组的大小,目前n_fishInfo最大取值为16。(int n_都

表示数组的大小)

(7)CBallInfo ballinfo[]:目标球当前对应的信息数组,实时存储前景图像识别跟踪不同球

的相关信息。

(8)int n_ballinfo:目标球信息数组的大小,目前n_ballinfo最大取值为10。 (9)OBSTAINFO obst[]:障碍物信息数组,一般不使用。

(10)int n_obst:障碍物信息数组的大小,目前n_obst最大取值为4。 (11)CHANNEL channel[]:临时目标点的信息数组,存储客户端添加的目标点信息,从0下标

开始连续存储。

(12)int n_channel:临时目标点当前存有有效数据的大小,目前n_channel最大取值为20。 返回参数说明:

(1)返回策略运算最终是否有效,有效返回1,否则返回0。 (2)返回CFishAction action[],用于控制机器鱼的运动。

2.DLL编写说明

函数“STRATEGY_API BO

OL MURStrategy()”作为统一的唯一外部调用策略入口函数的入口,其声明形式禁止修改。返回的参数请按照“返回参数说明”进行编写。

具体编写自己的策略时,可在MURStrategy函数外自定义编写自己的策略函数或者策略类,并在MURStrategy函数内添加引用即可。

需注意的是,自定义的全局策略函数名不能与MURStrategy函数重名。具体的编写可参考提供的示例。

背景显示的,已经给予它显示,5秒后自动关闭,同时自动在程序的安装路径下创建并保存新采样的背景图片(Current's Temp Background.bmp)

3.旧策略兼容性

因新版对CFishAction、CFishInfo、CBallInfo 等类内相关的函数重命名,在进行旧策略移植时,旧策略原使用的相关函数名需要相应的做修改。比如:

表1 类函数名变化对比

CFishInfo类 旧版 GetHeadPoint GetRotatePt GetVdir GetTemppt GetToPosDir GetToPt GetCenterPt GetLastCenterPt

新版 GetHeaderPoint CalRotatePoint GetVdirection GetInterPoint GetToPosDirection GetToPoint GetCenterPoint GetLastCenterPoint 旧版 GetBallPt GetBeatPt GetRad GetVdir CBallInfo类 新版 GetBallPoint GetBeatPoint GetRadius GetVdirection 4.开发环境

目前策略dll编写开发环境使用VS2010 旗舰版。OpenCV使用2.4.8版本,已集成在策略DLL工程文件中。

5.策略DLL的使用

编译生成的策略DLL将在Server端动态加载引用。

6.建议

(1)策略函数接口内使用策略类对象变量时,建议以静态static的声明方式。 (2)输出打印策略调试信息的方法,自行查看相关资料。 (3)编译输出dll时,建议以Release的方式编译。

搜索更多关于: 全局组机器鱼策略DLL编写 的文档
全局组机器鱼策略DLL编写.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c41og78l8wa7tdil036cr_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top