学IT吧 精品IT资源库

 找回密码
 立即注册
查看: 2|回复: 0

[其它] C#+WPF+Opencv模块化开发视觉对位运动控制系统

[复制链接]

2010

主题

2018

帖子

7639

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
7639
发表于 1 小时前 | 显示全部楼层 |阅读模式

QQ_1783998361773.png

适合人群:
本课程适合具有一定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 学币 才能浏览
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|学IT吧

GMT+8, 2026-7-14 12:53 , Processed in 0.071445 second(s), 23 queries .

学IT吧 www.xueit8.com X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表