|
2| 0
|
[其它] C#+WPF+Opencv模块化开发视觉对位运动控制系统 |
适合人群: 本课程适合具有一定C#开发基础的学员。若希望进一步提升对内存的认识,掌握上位机软件架构,了解并学会C#调用C++,C++调用opencv进行图像处理,掌握正运动控制卡的SDK调用,提高总体能力。 你将会学到: 你将学会利用C#,WPF,C++和Opencv开发图像识别与运动控制相关的上位机软件 熟练掌握Prism框架的模块化开发思维掌握C#调用C++库函数和数据封送等技能学会使用C++调用opencv库函数进行图像算法处理掌握WPF框架的MVVM开发精髓成为上位机桌面开发领域的架构师和专家 课程简介: 课程采用C#语言为主,C++和opencv为辅,实现对下位机中的相机、控制卡、光源、电桥等设备进行连接和控制,以模块化的思维进行项目开发,使得系统呈搭积木的方式进行,对于后期的软件维护和扩展来说,这种插件式开发能提供良好的帮助。 系统以贴近实际工业使用场景为出发点,每一项技术和功能均反映现实客观需求,其主要功能是通过相机拍照,识别物料上的齿轮孔和元件位置,检测左右两边的物料是否一致,并计算出剪切距离,通过控制卡控制相关轴,以完成物料带的对接功能,以及电子元件的测量功能和丝印识别对比功能。 课程目录: 1001-项目效果演示及开发资料说明[11:00] 2002-项目需求分析[06:21] 3003-创建新项目,安装Prism框架和ReactiveUI[10:38] 4004-创建NLog日志模块及配置NLog参数[09:42] 5005-创建IConfigManager接口及实现JSON的[10:17] 6006-创建配置文件类,捕获程序异常及加载核心模块[10:38] 7007-安装MahApps主题包及配置资源字典[11:12] 8008-创建登录模块,设备Prism框架的模块目录[14:00] 9009-使用区域管理器RegionManager导航登录页面[10:11] 10010-渐变色背景及登录页面布局[17:20] 11011-创建数据库实体项目及用户表实体[09:03] 12012-绑定登录命名和用户实体[08:05] 13013-安装Sqlite相关组件,配置CodeFirst模式[14:14] 14014-创建数据库增删改查泛型接口[16:12] 15015-实现用户表的增删改查[13:18] 16016-安装ReactiveUI.WPF组件,备份源代码[09:30] 17017-实现用户登录操作,自动注册用户[12:41] 18018-使用事件聚合器(EventAggregator)通知[07:48] 19019-创建硬件初始化模块[16:06] 20020-创建硬件管理类接口及硬件初始化页面布局[14:29] 21021-封装硬件初始化方法成员[11:07] 22022-创建和加载首页模块及导航到首页[12:04] 23023-首页布局和RadioButton菜单按钮样式[18:04] 24024-创建运行模块和运行页面,并实现模块之间的依赖[14:08] 25025-首页布局及RadioButton快捷按钮样式[19:00] 26026-创建用户会话类,实现用户切换[10:39] 27027-实现用户切换时不重复加载硬件模块[18:19] 28028-创建ICamera工业相机接口[14:55] 29029-创建相机返回的图像在内存中的表示结构体[10:59] 30030-创建海康相机模块,导入dll库文件[12:57] 31031-在计算机上遍历所有海康相机[17:27] 32032-初始化海康相机及图像暂存到非托管内存[16:44] 33033-触发海康相机及注册海康相机子类到IOC容器[12:09] 34034-创建并加载仿真相机模块[10:51] 35035-实现仿真相机模块以及加载本地8位位图[14:01] 36036-创建系统参数模块[10:10] 37037-创建SystemConfigManager系[13:02] 38038-编写相机初始化业务,加载本地系统设置参数[19:41] 39039-使用WriteableBitmap对象显示图[16:42] 40040-创建CameraBox控件(1)[16:14] 41041-创建CameraBox控件(2)[37:10] 42042-VisualBrush画刷制作棋盘背景,编写[18:38] 43043-左右相机图片显示和鼠标框选切换[10:42] 44044-正运动控制卡资料和轴类型枚举[14:27] 45045-正运动控制卡的轴类型和IO点实体定义[13:46] 46046-正运动控制卡的参数实体类开发[16:23] 47047-封装轴的回原点、相对运动、绝对运动和停止运动[18:16] 48048-封装轴的使能IO点读取待方法成员,创建控制卡[15:44] 49049-实现控制卡抽象基类,调用正运动控制卡的轴类型[18:46] 50050-设置轴速度参数,IO点参数,实时监控运动轴状[14:59] 51051-在子线程中实时获取控制卡IO点状态[16:00] 52052-单轴移动[15:52] 53053-轴运动时实时获取当前轴的位置和运动状态[13:39] 54054-轴连续运动、轴相对运动、轴停止的同步和异步封[16:06] 55055-单轴同步和异步回原点[20:13] 56056-设置控制卡输出点,设置轴速度,设置脉冲当量[15:42] 57057-单轴的使能、暂停和恢复[15:36] 58058-创建仿真控制卡模块,实现IControlCa[18:39] 59059-完成仿真控制卡模块开发,首页导航到设置页面[11:40] 60060-创建运动轴、IO参数、用户和系统参数页面[19:20] 61061-系统设置RadioButton样式和运动轴页[17:02] 62062-增加X轴参数和X轴参数设置布局[20:16] 63063-X轴的运动控制开发[20:04] 64064-Y轴参数设置和运动控制实现[16:53] 65065-Z轴和主轴参数设置及运动控制实现[12:02] 66066-剥刀轴参数设置及属性通知类型开发[15:00] 67067-利用字典实现集合参数的绑定修改与设置[12:22] 68068-左棘轮轴和右棘轮轴的参数设置和运动控制[10:47] 69069-编写控制卡输入点的UI布局[15:48] 70070-输出点的UI布局和输出点与其它设备的关系[15:47] 71071-自定义转换器显示IO点和轴使能状态[15:02] 72072-编写用户设置界面及业务[20:11] 73073-编写系统设置业务[09:09] 74074-相机标定页面布局[15:21] 75075-编定相机标定业务[15:51] 76076-根据控件中的选框坐标转换为相机图像选框坐标[22:19] 77077-创建相机标定服务接口[15:41] 78078-创建C++项目,导入opencv算法库[16:26] 79079-C#调用在C++代码中创建的结构体和函数(重[18:36] 80080-编写C++相机标定函数和opencv的Mat[20:50] 81081-8位灰度图像的二值化处理[16:02] 82082-opencv寻找轮廓和绘制轮廓[21:28] 83083-opencv创建轮廓外接矩形,遍历轮廓和排除[21:28] 84084-创建业务流程状态实体[15:50] 85085-显示相机标定业务流程进度的UI布局[22:09] 86086-导入MARK标定原图,创建MARK标定页面[11:25] 87087-创建MARK标定的相关结构体参数和类型转换[16:34] 88088-编写左相机MARK标定UI布局[18:17] 89089-异步加载本地MARK相关标定参数[19:33] 90090-编写MARK标定业务流程的异步方法[19:16] 91091-添加光源模块,设计光源接口及成员[16:49] 92092-编写光源模块的业务实现[21:20] 93093-内存理解-仿真相机加载本地图片到非托管内存([23:37] 94094-创建MARK标定函数[16:08] 95095-Opencv霍夫圆函数检测图像中MARK圆点[24:45] 96096-Opencv轮廓函数检测图像矩形坐标[29:39] 97097-WriteableBitmap类显示3通道图[15:52] 98098-通过MARK点信息计算齿轮孔和元件的ROI参[22:09] 99099-保存MARK标定参数[11:41] 100100-创建轴标定页面,讲解单应性矩阵[15:38] 101101-X轴和Y轴标定页面布局完成[14:47] 102102-获取相机图像以编写X轴的Y轴标定业务[15:31] 103103-绑定数据问题解决思路[15:50] 104104-Opencv轮廓检测及轮廓绘制[19:15] 105105-opencv凸包计算轮廓的外接矩形中心坐标[24:07] 106106-返回轮廓坐标集合,保存本地图像[15:12] 107107-拾取图像平面坐标点对应的世界坐标点[19:22] 108108-opencv的findHomography函[22:06] 109109-调试平面坐标与世界坐标的标定过程[23:37] 110110-创建BOM管理项目和相关数据实体类[17:28] 111111-创建元件表和BOM表的增删改查操作接口和操作[09:36] 112112-IRegionManager导航到元件管理页[14:56] 113113-元件管理页面布局[16:33] 114114-Button图标按钮样式开发和Relativ[15:21] 115115-在会话管理类中增加弹窗和遮罩层显示[15:54] 116116-元件管理页面的业务开发[16:37] 117117-分析二值化阈值对轮廓检测的影响[18:12] 118118-创建感兴趣ROI区域并二值化处理区域图像[27:35] 119119-opencv寻找轮廓计算正圆和画圆操作[40:36] 120120-寻找元件区域中的轮廓,初步排除干扰轮廓[19:17] 121121-convexHull凸包函数外接矩形筛选[18:48] 122122-使用平均值和标准差二次筛选元件外接矩形[14:56] 123123-获取元件矩形识别结果并判断正方形[16:57] 124124-在Mat图像上绘制矩形结果[16:47] 125125-根据指定区域寻找元件外框矩形坐标[35:02] 126126-根据找到的元件外框,在其中寻找元件中心坐标[21:44] 127127-XY轴移动位置计算-图像坐标转换成世界坐标[18:34] 128128-实现相机导航功能[17:08] 129129-添加元件,编写元件类型转换器[17:36] 130130-BOM管理页面布局[18:42] 131131-实现BOM的添加、浏览和删除[22:43] 132132-解决部分BUG,提供解决思路[09:46] 133133-运行页面的RadioButton样式开发[20:25] 134134-编写运行服务类的接口及成员[16:09] 135135-运行页面数据绑定和运行服务类开发[14:45] 136136-增加运行流程管理功能[19:18] 137137-如何获取及更新绑定到WPF前端的数据[23:32] 138138-讲解策略模式在实际项目中的运行[17:02] 139139-讲解工厂模式在项目中的实际运用[18:28] 140140-创建左右物料元件间距对比子线程[21:57] 141141-创建进左右棘轮进料子线程[34:30] 142142-利用opencv函数countNonZero[20:31] 143143-检测左右物料的前2个齿轮孔和元件外框[19:20] 144144-创建方形元件的检空算法[21:16] 145145-完成方框检空算法,改造线程返回值[22:37] 146146-创建贴胶线程,讲解ManualResetEv[17:09] 147147-计算物料剪切位及业务线程与贴胶线程同步[18:24] 148148-完成接料业务,并解决C++中的Bug[40:42] 149149-编写元件测量模式下的进料业务流程[12:51] 150150-创建和加载电桥仿真模块[16:11] 151151-编写元件测量的业务流程[15:24] 152152-根据扫码元件型号自动开启测量[16:30] 153153-创建电桥设备的业务管理类,实现电子元件的测量[19:04] 154154-编写元件测量业务流程[21:54] 155155-将元件测量结果显示到WPF前端[20:55] 156156-编写元件测量接料业务流程[15:38] 157157-完成测量接料流程[21:56] 158158-优化策略模式[15:55] 159159-讲解定义模板文件时与主业务流程线程同步[17:51] 160160-模板制作界面布局和业务开发[15:27] 161161-opencv裁剪图像操作,定义模板文件[21:53] 162162-opencv保存模板图像到本地[20:54] 163163-解决非托管内存问题[17:24] 164164-opencv高斯滤波的用法[17:38] 165165-opencv模板匹配、图像翻转和图像写入[28:22] 166166-完成丝印检测开发[17:20] 167167-细节优化,图像截图,本地导出[25:14] 168168-课程总结(大结局)[11:20]
购买主题
本主题需向作者支付 35 学币 才能浏览
| |
学IT吧 www.xueit8.com X3.4
Copyright © 2001-2021, Tencent Cloud.