第1章 产品简介
1.1 功能概述
1.2 运行环境
1.3 SDK版本更新记录
第2章 编程引导
2.1 C/C++接口流程
2.1.1 方案操作相关接口流程
2.1.2 参数设置相关接口流程
2.2 C#接口流程
2.2.1 方案操作相关接口流程
2.2.2 参数设置相关接口流程
第3章 C/C++接口定义
3.1 基础接口
3.1.1 IMVS_PF_CreateHandle
3.1.2 IMVS_PF_DestroyHandle
3.1.3 IMVS_PF_GetBuildVersion
3.1.4 IMVS_PF_GetErrorMsg
3.1.5 IMVS_PF_GetDongleAuthority
3.2 展现接口
3.2.1 IMVS_PF_StartVisionMaster
3.2.2 IMVS_PF_CloseVisionMaster
3.2.3 IMVS_PF_ShowVisionMaster
3.2.4 IMVS_PF_ShowModuleInterface
3.2.5 IMVS_PF_AttachFrontedWnd
3.2.6 IMVS_PF_UnAttachFrontedWnd
3.3 平台数据接口
3.3.1 IMVS_PF_SetParamValue
1. 用户需要指定模块的编号,以及需要设置的参数名称,各个模块参数名称请见附录“模块参数名称及其描述”
2. 此接口只能设置单个参数的值
3. 参数名称参考附录8.1 模块参数名称及其描述
4. 参数值以字符串形式传入,无法对所有类型进行判断,对于bool型参数只有参数值为“False”时,参数才设置为False,参数值为其他值时均被设置为True
3.3.2 IMVS_PF_GetParamValue
3.3.3 IMVS_PF_GetParamList
3.3.4 IMVS_PF_SetParamList
3.3.5 IMVS_PF_SaveSolution
1. 保存方案时,用户可以将自己与方案相关的数据保存到方案中,在方案加载时,算法平台可以将用户的数据回调给用户。用户保存的数据格式自己定义,SDK接口不关心用户数据格式。
2. 用户如果输入密码加密后,需要牢记密码,忘记密码后文件将无法打开。
3. 提供方案保存进度获取接口,用户在调用保存方案接口后,可以在一定时间内循环调用获取进度接口。
4. 用户不设置方案密码时,可将参数strPassWord赋为空字符串。
3.3.6 IMVS_PF_GetSaveProgress
1. 保存是否结束通过返回的方案保存进度值进行标识,如果保存进度值为100且函数返回值为IMVS_EC_OK则保存成功,反之则保存失败。
2. 保存结果错误码通过函数返回值返回。
3.3.7 IMVS_PF_LoadSolution
1. 方案加载时,如果方案中有用户保存的数据,以回调的方式回调给用户。
2. 提供判断方案文件是否加密接口,见IMVS_PF_CheckPassword接口。
3. 提供方案加载进度获取接口,用户在调用加载方案接口后,可以在一定时间内循环调用获取进度接口。
3.3.8 IMVS_PF_GetLoadProgress
1. 加载是否结束通过返回的方案加载进度值进行标识,如果加载进度值为100且函数返回值为IMVS_EC_OK则加载成功,反之则加载失败。
2. 加载结果错误码通过函数返回值返回。
3.3.9 IMVS_PF_CloseSolution
3.3.10 IMVS_PF_CheckPassword
1. 接口先判断方案文件格式是否正确,在文件格式正确情况下,判断方案文件中是否有密码。
2. 加载方案之前,需要先调用此接口,判断是否有密码,如果有密码,在加载方案时,需要用户输入密码。
3.3.11 IMVS_PF_RegisterResultCallBack
3.3.12 IMVS_PF_GetAllModuleList
3.3.13 IMVS_PF_FilterCallBackResult
1. 过滤条件为一次性设置,设置后自动覆盖先前设置的内容
2. 用户如果不设置过滤条件,可以在接收到数据后,自行过滤
3.3.14 IMVS_PF_ImportModuleData
3.3.15 IMVS_PF_GetSolutionVersion
3.4 平台控制接口
3.4.1 IMVS_PF_ExecuteOnce
1. 执行一次开始时,数据回调接口通知流程忙碌状态。
2. 执行一次结束时,数据回调接口通知流程处于空闲状态。
3. 功能模块执行结果通过回调函数通知给用户。
4. 当流程处于忙碌状态(流程尚未结束)时,用户调用执行一次接口,该接口会返回错误。
5. 执行一次时支持用户输入字符串,用户可通过输入字符串传递控制命令,如果用户不需要输入字符串,可将该参数置为NULL。
3.4.2 IMVS_PF_ContinousExecute
1. 连续执行时,内部通过循环调用执行一次实现。
2. 执行一次开始时,数据回调接口通知流程处于忙碌状态。
3. 执行一次结束时,数据回调接口通知流程处于空闲状态。
4. 连续执行默认时间间隔为0。
5. 功能模块执行结果通过回调函数通知给用户。
6. 若连续执行过程中加密狗出现异常,连续执行中断执行,等待加密狗正常后连续执行恢复至出现异常前执行状态。
3.4.3 IMVS_PF_StopExecute
3.4.4 IMVS_PF_SetContinousExecuteInterval
3.5 数据结构描述
3.5.1 平台基本宏定义
3.5.2 回调输出算法平台信息结构
3.5.3 模块信息列表结构
3.5.4 模块参数列表结构
3.5.5 过滤条件信息结构
3.5.6 保存平台方案输入参数信息结构
3.5.7 向模块导入数据输入参数信息结构
3.5.8 方案版本信息结构
第4章 C#接口定义
4.1 基础接口
4.1.1 IMVS_PF_CreateHandle_CS
4.1.2 IMVS_PF_DestroyHandle_CS
4.1.3 IMVS_PF_GetBuildVersion_CS
4.1.4 IMVS_PF_GetErrorMsg_CS
4.1.5 IMVS_PF_GetDongleAuthority_CS
4.2 展现接口
4.2.1 IMVS_PF_StartVisionMaster_CS
1. 通过SDK接口打开界面时,点击界面右上角关闭按钮,界面程序不退出,隐藏在后台运行。
2. 接口启动算法平台程序后,按用户设置的等待时间等待算法平台初始化完成,超过等待时间未初始化完成时,接口会返回接收超时错误,建议加长等待时间。
4.2.2 IMVS_PF_CloseVisionMaster_CS
4.2.3 IMVS_PF_ShowVisionMaster_CS
1. 支持界面程序正常显示、隐藏。
2. 在控制算法平台界面显示/隐藏时,需先打开算法平台界面程序。
3. 显示类型宏定义:
4.2.4 IMVS_PF_ShowModuleInterface_CS
4.2.5 IMVS_PF_AttachFrontedWnd_CS
4.2.6 IMVS_PF_UnAttachFrontedWnd_CS
4.3 平台数据接口
4.3.1 IMVS_PF_SetParamValue_CS
1. 用户需要指定模块的编号,以及需要设置的参数名称,各个模块参数名称请见附录“模块参数名称及其描述”
2. 此接口只能设置单个参数的值
3. 参数名称参考附录8.1 模块参数名称及其描述
4.3.2 IMVS_PF_GetParamValue_CS
1. 用户需要指定模块的编号,以及需要获取的参数名称
2. 此接口只能获取单个参数的值
3. 参数名称参考附录8.1 模块参数名称及其描述
4.3.3 IMVS_PF_GetParamList_CS
1. 用户需要指定模块的编号
2. 此接口批量获取参数值
3. 由于输出参数结构体较大, 可能需要用户申请相应空间资源
4. 参数名称参考附录8.1 模块参数名称及其描述
4.3.4 IMVS_PF_SetParamList_CS
1. 用户需要指定模块的编号
2. 此接口批量设置模块参数值
3. 参数名称参考附录8.1 模块参数名称及其描述
4.3.5 IMVS_PF_SaveSolution_CS
1. 保存方案时,用户可以将自己与方案相关的数据保存到方案中,在方案加载时,算法平台可以将用户的数据回调给用户。用户保存的数据格式自己定义,SDK接口不关心用户数据格式。
2. 用户如果输入密码加密后,需要牢记密码,忘记密码后文件将无法打开。
3. 提供方案保存进度获取接口,用户在调用保存方案接口后,可以在一定时间内循环调用获取进度接口。
4. 用户不设置方案密码时,可将参数strPassWord置为IMVS_PF_INPUT_NO_PASSWORD。
4.3.6 IMVS_PF_GetSaveProgress_CS
1. 保存是否结束通过返回的方案保存进度值进行标识,如果保存进度值为100且函数返回值为IMVS_EC_OK则保存成功,反之则保存失败。
2. 保存结果错误码通过函数返回值返回。
4.3.7 IMVS_PF_LoadSolution_CS
1. 方案加载时,如果方案中有用户保存的数据,以回调的方式回调给用户。
2. 提供判断方案文件是否加密接口,参考IMVS_PF_CheckPassword_CS接口。
3. 提供方案加载进度获取接口,用户在调用加载方案接口后,可以在一定时间内循环调用获取进度接口。
4.3.8 IMVS_PF_GetLoadProgress_CS
1. 加载是否结束通过返回的方案加载进度值进行标识,如果加载进度值为100且函数返回值为IMVS_EC_OK则加载成功,反之则加载失败。
2. 加载结果错误码通过函数返回值返回。
4.3.9 IMVS_PF_CloseSolution_CS
4.3.10 IMVS_PF_CheckPassword_CS
1. 接口先判断方案文件格式是否正确,在文件格式正确情况下,判断方案文件中是否有密码。
2. 加载方案之前,需要先调用此接口,判断是否有密码,如果有密码,在加载方案时,需要用户输入密码。
4.3.11 IMVS_PF_GetAllModuleList_CS
4.3.12 IMVS_PF_RegisterResultCallBack_CS
4.3.13 IMVS_PF_FilterCallBackResult_CS
1. 过滤条件为一次性设置,设置后自动覆盖先前设置的内容
2. 用户如果不设置过滤条件,可以在接收到数据后,自行过滤
4.3.14 IMVS_PF_ImportModuleData_CS
4.3.15 IMVS_PF_GetSolutionVersion_CS
4.4 平台控制接口
4.4.1 IMVS_PF_ExecuteOnce_CS
1. 执行一次开始时,数据回调接口通知流程忙碌状态。
2. 执行一次结束时,数据回调接口通知流程处于空闲状态。
3. 功能模块执行结果通过回调函数通知给用户。
4. 当流程处于忙碌状态(流程尚未结束)时,用户调用执行一次接口,该接口会返回错误。
5. 执行一次时支持用户输入字符串,用户可通过输入字符串传递控制命令,如果用户不需要输入字符串,可将该参数置为NULL。
4.4.2 IMVS_PF_ContinousExecute_CS
1. 连续执行时,内部通过循环调用执行一次实现。
2. 执行一次开始时,数据回调接口通知流程处于忙碌状态。
3. 执行一次结束时,数据回调接口通知流程处于空闲状态。
4. 连续执行默认时间间隔为0。
5. 功能模块执行结果通过回调函数通知给用户。
6. 若连续执行过程中加密狗出现异常,连续执行中断执行,等待加密狗正常后连续执行恢复至出现异常前执行状态。
4.4.3 IMVS_PF_StopExecute_CS
4.4.4 IMVS_PF_SetContinousExecuteInterval_CS
4.5 数据结构描述
平台基本宏定义
4.5.1 回调输出算法平台信息结构
4.5.2 模块信息列表结构
4.5.3 模块参数列表结构
4.5.4 过滤条件信息结构
4.5.5 保存平台方案输入参数信息结构
4.5.6 向模块导入数据输入参数信息结构
4.5.7 方案版本信息结构
第5章 错误码定义
附录A 附录
A.1 模块参数名称及其描述
A.1.1 相机图像模块
A.1.2 存储图像模块
A.1.3 快速特征匹配模块
A.1.4 高精度特征匹配模块
A.1.5 圆查找模块
A.1.6 直线查找模块
A.1.7 BLOB分析模块
A.1.8 卡尺工具模块
A.1.9 边缘查找模块
A.1.10 间距检测模块
A.1.11 位置修正模块
A.1.12 矩形检测模块
A.1.13 顶点检测模块
A.1.14 边缘交点模块
A.1.15 平行线查找模块
A.1.16 线圆测量模块
A.1.17 圆圆测量模块
A.1.18 点圆测量模块
A.1.19 点线测量模块
A.1.20 线线测量模块
A.1.21 点点测量模块
A.1.22 圆拟合模块
A.1.23 直线拟合模块
A.1.24 亮度测量模块
A.1.25 像素统计模块
A.1.26 直方图工具模块
A.1.27 几何创建模块
A.1.28 二维码识别模块
A.1.29 条码识别模块
A.1.30 字符识别模块
A.1.31 VeriCode码模块
A.1.32 DL字符识别模块
A.1.33 标定板标定模块
A.1.34 N点标定模块
A.1.35 标定转换模块
A.1.36 单位转换模块
A.1.37 畸变校正模块
A.1.38 形态学处理模块
A.1.39 图像二值化模块
A.1.40 图像滤波模块
A.1.41 图像增强模块
A.1.42 图像运算模块
A.1.43 清晰度评估模块
A.1.44 图像修正模块
A.1.45 阴影校正模块
A.1.46 仿射变换模块
A.1.47 圆环展开模块
A.1.48 颜色抽取模块
A.1.49 颜色测量模块
A.1.50 颜色转换模块
A.1.51 条件检测模块
A.1.52 分支模块
A.1.53 逻辑模块
A.1.54 格式化模块
A.1.55 计算器模块
A.1.56 循环模块
A.1.57 点集模块
A.1.58 UDP通信模块
A.1.59 TCP客户端模块
A.1.60 TCP服务端模块
A.1.61 串口模块
A.1.62 IO通信模块
A.1.63 ModBus通信模块
A.2 模块输出结果信息名称
A.2.1 本地图像模块
A.2.2 相机图像模块
A.2.3 存储图像模块
A.2.4 快速特征匹配模块
A.2.5 高精度特征匹配模块
A.2.6 圆查找模块
A.2.7 直线查找模块
A.2.8 BLOB分析模块
A.2.9 卡尺工具模块
A.2.10 边缘查找模块
A.2.11 间距检测模块
A.2.12 位置修正模块
A.2.13 矩形检测模块
A.2.14 顶点检测模块
A.2.15 边缘交点模块
A.2.16 平行线查找模块
A.2.17 线圆测量模块
A.2.18 圆圆测量模块
A.2.19 点圆测量模块
A.2.20 点线测量模块
A.2.21 线线测量模块
A.2.22 点点测量模块
A.2.23 圆拟合模块
A.2.24 直线拟合模块
A.2.25 亮度测量模块
A.2.26 像素统计模块
A.2.27 直方图工具模块
A.2.28 几何创建模块
A.2.29 二维码识别模块
A.2.30 条码识别模块
A.2.31 字符识别模块
A.2.32 VeriCode码模块
A.2.33 DL字符识别模块
A.2.34 标定板标定模块
A.2.35 N点标定模块
A.2.36 标定转换模块
A.2.37 单位转换模块
A.2.38 畸变校正模块
A.2.39 形态学处理模块
A.2.40 图像二值化模块
A.2.41 图像滤波模块
A.2.42 图像增强模块
A.2.43 图像运算模块
A.2.44 清晰度评估模块
A.2.45 图像修正模块
A.2.46 阴影校正模块
A.2.47 仿射变换模块
A.2.48 圆环展开模块
A.2.49 颜色抽取模块
A.2.50 颜色测量模块
A.2.51 颜色转换模块
A.2.52 条件检测模块
A.2.53 分支模块
A.2.54 逻辑模块
A.2.55 格式化模块
A.2.56 计算器模块
A.2.57 字符比较模块
A.2.58 脚本模块
A.2.59 循环模块
A.2.60 点集模块
A.2.61 UDP通信模块
A.2.62 TCP客户端模块
A.2.63 TCP服务端模块
A.2.64 串口模块
A.2.65 IO通信模块
A.2.66 ModBus通信模块
A.3 算法平台SDK Demo使用说明
A.3.1 算法平台SDK Demo功能介绍
1.展现接口
2.平台控制接口
3.方案操作接口
4.模块数据导入接口
5.基础接口
A.3.2 算法平台SDK Demo操作过程
1. 启动VisionMaster:首先点击“选择VisionMaster路径”按钮选择VisionMaster.exe所在目录,点击“开启VisionMaster”按钮开启VisionMaster,VisionMaster通过二次开发接口打开默认隐藏,可通过点击“显示/隐藏VisionMaster”按钮显示VisionMaster界面,显示隐藏状态可通过“显示隐藏状态”下拉列表框进行选择。
2. 加载方案:点击“选择方案路径”按钮选择需要加载的方案所在目录,如果方案存在密码可在“方案密码”编辑框输入,判断方案是否存在密码可点击“检查方案密码”按钮检查,点击“加载方案”按钮加载方案;若界面上方案进行了修改或重新设计了方案可点击“保存方案”按钮进行保存;点击“关闭当前方案”按钮可关闭当前方案。
3. 执行方案:点击“单次执行”按钮执行当前方案一次,点击“连续执行”按钮可连续执行方案,连续执行时间间隔可在“连续执行时间间隔”编辑框输入,点击“设置时间间隔”按钮进行设置,点击“停止执行”按钮停止执行当前方案。其中圆查找以及模板匹配的执行结果如图A-10和图A-11所示。
4. 参数获取与设置:首先通过“模块ID”下拉列表框选择需要获取参数的模块ID,点击“获取参数列表”按钮获取选定模块的参数列表;通过“参数名称”下拉列表框选择参数名称,点击“获取参数”按钮获取参数值,相应的参数值在“参数值”编辑框中显示,也可通过点击“设置参数”按钮设置“参数值”编辑框中输入的参数值。
5. 向指定模块导入数据:首先通过“模块ID”下拉列表框选择需要获取参数的模块ID,点击“导入数据类型”下拉列表框选择导入数据类型,包括模板文件、字库文件、标定文件以及深度学习字库文件,点击“选择路径”按钮选择对应导入文件的路径,点击“导入模块数据”按钮向指定模块导入数据。
6. 嵌入前端运行界面:在算法平台加载方案或搭建方案后,点击“单次执行”按钮,再点击“嵌入前端界面”按钮将前端运行界面嵌入到右边的图像显示区中,运行结果如图A-12所示。
A.3.3 Demo软件开发步骤
1.二次开发C接口Demo软件开发步骤
1. 将二次开发相关DLL文件添加到Demo软件的工作目录下;
2. 创建MFC工程,添加相应的包含目录以及库目录,添加引用,添加相应的头文件以及源文件;
3. 包含二次开发C接口头文件 #include "iMVS-6000PlatformSDKC.h"。
2.二次开发C#接口Demo软件开发步骤
1. 将二次开发相关DLL文件添加到Demo软件的工作目录下;
2. 创建WindowsFormsApplication工程,将二次开发SDK的DLL文件添加至引用;
3. 导入二次开发SDK C#接口名称空间 using iMVS_6000PlatformSDKCS。
第6章 修订记录
第7章 获得支持