当前位置: 首页 > article >正文

VM模块开发 C++ 工程配置

介绍VM的开发模式:

VM 开发模式分为 VM SDK 开发、算子 SDK 开发、算子模块开发。 
三者的架构关系如下: 
 
 
由上图可知,VM SDK 开发依赖于 VM,算子模块开发给 VM 补充算法模块,算子 SDK 开发则
依赖于算子安装包。由于 VM 安装包含算子安装包,因此统一建议安装 VM。 
聊完三者的架构关系,下面介绍 VM 应用及开发模式的适用场景。

 
1. VM 应用 
	简单应用场景,VM 能够实现业务逻辑,无定制界面需求,无外围(数据库、图表统计)功能需求。
	该模式无需任何开发,轻松上手,调参方便。 
2. VM SDK 开发(亦称 VM 二次开发) 
	用户希望部分业务逻辑由自己实现(例如定位计算等),有定制界面和外围功能需求,或希望把 VM
	嵌入客户开发的软件中。该开发模式代码量少、开发周期较短,且 VM 提供各类流程与参数编辑控件,
	能够满足绝大多数应用需求,是最为推荐的开发模式。 
3. 算子 SDK 开发 
	用户希望全部业务逻辑由自己实现,该开发模式代码量大、开发周期长,海康只提供算子库和少
	量界面控件,能够满足部分应用需求。 
4. 算子模块开发(只支持 C++) 
	用户希望将自己开发的算子封装成模块并能在 VM 中使用(例如拖拽、订阅等),补充项目所需的
	算子功能。该模式需要开发者有一定的算法开发经验和编程功底。 

C++ 工程环境配置:

平台工具集: Visual Stdio 2013(v120) # 2013就是120 
VS2013打开
实际不需要 手工配置
选择 x64 Release 就可以成功编译 
且编译好自动复制到模块路径

所以必须安装VS2013 且最好使用VS2013 打开 

配置过程:

手工配置
项目>>属性(配置属性):

	C/C++:
		常规:
		    平台工具集: Visual Stdio 2013(v120) # 2013就是120 
			
			附加包含目录:
				..\common\src;..\common;..\common\VM400\include\VmModuleFrame;..\common\SDK\Includes\Algorithms;..\common\SDK\Includes\Common\VisionDesigner;%(AdditionalIncludeDirectories)
				
				..\common\src
				..\common
				..\common\VM400\include\VmModuleFrame
				..\common\SDK\Includes\Algorithms
				..\common\SDK\Includes\Common\VisionDesigner
				
	VC++目录:
		包含目录: 空
		库目录:   空
		
	链接器:
		常规:
			"附加库目录":
				{
					..\common\include\lib;..\common\VM400\lib;..\common\SDK\Libraries\x64\Algorithms;..\common\SDK\Libraries\x64\Common;%(AdditionalLibraryDirectories)
					
					..\common\include\lib
					..\common\VM400\lib
					..\common\SDK\Libraries\x64\Algorithms
					..\common\SDK\Libraries\x64\Common

					
				}
		输入:
			"附加依赖项":
				{ 
					ModuleFrame.lib
					MVDShapeCpp.lib
					MVDImageCpp.lib
					MVDPositionFixCpp.lib
					MVDPreproMaskCpp.lib
					HSlog.lib
				}		
			"模块定义文件":
				{
					AlgorithmModule.def
				}
				

结束:

接下来说一下Opencv && Halcon配置方法:

项目>>属性(配置属性):

	VC++目录:
		"包含目录":
			{
				opencv4.9\include
				opencv4.9\include\opencv2
				HALCON-23.05-Progress\include
				HALCON-23.05-Progress\include\halconcpp
			}
		"库目录":
			{
				opencv4.9\x64\vc16\lib
				HALCON-23.05-Progress\lib\x64-win64							
			}
	链接器:
		常规:
			"附加库目录":
				{
					HALCON-23.05-Progress\lib\x64-win64
				}
		输入:
			"附加依赖项":
				{ 
					halconcpp.lib
					opencv_world490.lib
				}
				
总结:
项目>>属性(配置属性):
	VC++目录:
		"包含目录":(1)
		"库目录":(2)
	链接器:
		常规:
			"附加库目录":(3)
		输入:
			"附加依赖项":(4)

	程序前面加:
	和 附加依赖项 都行
	没搞明白有啥不一样; 
	两个都搞上也行;
	#pragma comment(lib, "opencv_world490.lib")
	#pragma comment(lib, "opencv_world490d.lib")
	#pragma comment(lib, "halconcpp.lib")
	
	

结束;;;;    注意 C# 可以 VS2013以及以上都可以 打开 ;  C++ 必须安装VS2013  


http://www.kler.cn/a/513535.html

相关文章:

  • AUTOSAR OS模块详解(三) Alarm
  • Flutter:carousel_slider 横向轮播图、垂直轮播公告栏实现
  • java知识框架
  • 三格电子——MODBUS TCP 转 CANOpen 协议网关
  • Low-Level 大一统:如何使用Diffusion Models完成视频超分、去雨、去雾、降噪等所有Low-Level 任务?
  • Linux磁盘空间不足,12个详细的排查方法
  • “大模型横扫千军”背后的大数据挖掘--浅谈MapReduce
  • Spring Boot + Netty + WebSocket 实现消息推送
  • 深挖——final
  • 分布式搜索引擎02
  • Emacs折腾日记(十一)——求值规则
  • EXCEL的一些用法记录
  • 每日一刷——1.20——准备蓝桥杯
  • 【全栈】SprintBoot+vue3迷你商城(5)
  • 经验收录/用复盘的心态去学习
  • Stable Diffusion 提示词编写技巧及示例
  • 4.6.3递归算法
  • RTK定位
  • 常用排序算法之插入排序
  • Linux_线程概念
  • CentOS 7 下安装RabbitMQ教程_centos启动rabbitmq
  • 分享源代码防泄露实战经验
  • Three.js实战项目01:vue3+three.js实现圣诞动画贺卡项目
  • 99.9 金融难点通俗解释:总资产收益率(ROA)
  • Spingboot整合Netty,简单示例
  • HJ108 求最小公倍数(Java版本)