2916分钟
C#+opencv模块化开发视觉对位运动控制系统
C#+OpenCV模块化开发视觉对位运动控制系统——工业自动化领域的智能视觉实战 你是否正在思考: 如何将机器视觉技术与运动控制完美结合,打造高精度对位系统? 面对复杂的工业场景,如何用C#+Open…
C#+OpenCV模块化开发视觉对位运动控制系统——工业自动化领域的智能视觉实战
你是否正在思考:
如何将机器视觉技术与运动控制完美结合,打造高精度对位系统?
面对复杂的工业场景,如何用C#+OpenCV实现稳定的视觉检测算法?
当需要开发模块化控制系统时,如何设计可扩展的软件架构?
如果这些问题正是你的技术瓶颈,这门课程将为你打开智能视觉控制系统的大门!我们将通过真实工业案例+企业级代码规范,带你从零构建完整的视觉对位运动控制系统。
课程主线:从视觉检测到运动控制的完整开发流程
1. 企业级框架搭建
现代化架构设计:
Prism框架实现模块化开发
ReactiveUI响应式编程
MahApps现代化UI主题
核心基础模块:
NLog日志系统
JSON配置管理
SQLite数据库(CodeFirst模式)
2. 工业视觉核心开发
相机模块开发:
海康工业相机SDK集成
仿真相机模块(8位位图处理)
非托管内存图像处理
OpenCV算法实战:
图像标定(单应性矩阵计算)
轮廓检测与凸包计算
霍夫圆检测与模板匹配
二值化与ROI区域处理
3. 运动控制核心技术
正运动控制卡开发:
多轴控制(XYZ+主轴+剥刀轴)
同步/异步运动控制
脉冲当量与速度参数设置
仿真控制模块:
IControlCard接口实现
虚拟轴状态监控
4. 完整项目实战:视觉对位系统
核心功能模块:
用户权限管理
相机标定系统
运动轴参数配置
BOM物料管理
关键技术点:
图像坐标与世界坐标转换
多线程同步(ManualResetEvent)
策略模式与工厂模式应用
元件检测算法(轮廓分析+外接矩形)
讲师介绍:重庆教主
本课程讲师是拥有8年C#与WPF开发经验的资深工程师,曾主导多个企业级桌面应用项目,擅长上位机开发,对软件架构、WPF、网络编程十分熟悉
加入我们
加入我们,开启你的工业视觉专家之路!
001-项目效果演示及开发资料说明
002-项目需求分析
003-创建新项目,安装Prism框架和ReactiveUI框架,配置App类
004-创建NLog日志模块及配置NLog参数
005-创建IConfigManager接口及实现JSON的序列化与反序列化
006-创建配置文件类,捕获程序异常及加载核心模块
007-安装MahApps主题包及配置资源字典
008-创建登录模块,设备Prism框架的模块目录
009-使用区域管理器RegionManager导航登录页面
010-渐变色背景及登录页面布局
011-创建数据库实体项目及用户表实体
012-绑定登录命名和用户实体
013-安装Sqlite相关组件,配置CodeFirst模式
014-创建数据库增删改查泛型接口
015-实现用户表的增删改查
016-安装ReactiveUI.WPF组件,备份源代码
017-实现用户登录操作,自动注册用户
018-使用事件聚合器(EventAggregator)通知跳转页面
019-创建硬件初始化模块
020-创建硬件管理类接口及硬件初始化页面布局
021-封装硬件初始化方法成员
022-创建和加载首页模块及导航到首页
023-首页布局和RadioButton菜单按钮样式开发
024-创建运行模块和运行页面,并实现模块之间的依赖加载
025-首页布局及RadioButton快捷按钮样式开发
026-创建用户会话类,实现用户切换
027-实现用户切换时不重复加载硬件模块
028-创建ICamera工业相机接口
029-创建相机返回的图像在内存中的表示结构体
030-创建海康相机模块,导入dll库文件
031-在计算机上遍历所有海康相机
032-初始化海康相机及图像暂存到非托管内存
033-触发海康相机及注册海康相机子类到IOC容器
034-创建并加载仿真相机模块
035-实现仿真相机模块以及加载本地8位位图
036-创建系统参数模块
037-创建SystemConfigManager系统参数管理类
038-编写相机初始化业务,加载本地系统设置参数
039-使用WriteableBitmap对象显示图像到WPF前端
040-创建CameraBox控件(1)
041-创建CameraBox控件(2)
042-VisualBrush画刷制作棋盘背景,编写相机图像显示服务类
043-左右相机图片显示和鼠标框选切换
044-正运动控制卡资料和轴类型枚举
045-正运动控制卡的轴类型和IO点实体定义
046-正运动控制卡的参数实体类开发
047-封装轴的回原点、相对运动、绝对运动和停止运动方法成员
048-封装轴的使能IO点读取待方法成员,创建控制卡抽象基类
049-实现控制卡抽象基类,调用正运动控制卡的轴类型API
050-设置轴速度参数,IO点参数,实时监控运动轴状态
051-在子线程中实时获取控制卡IO点状态
052-单轴移动
053-轴运动时实时获取当前轴的位置和运动状态
054-轴连续运动、轴相对运动、轴停止的同步和异步封装
055-单轴同步和异步回原点
056-设置控制卡输出点,设置轴速度,设置脉冲当量
057-单轴的使能、暂停和恢复
058-创建仿真控制卡模块,实现IControlCard接口成员
059-完成仿真控制卡模块开发,首页导航到设置页面
060-创建运动轴、IO参数、用户和系统参数页面
061-系统设置RadioButton样式和运动轴页面布局
062-增加X轴参数和X轴参数设置布局
063-X轴的运动控制开发
064-Y轴参数设置和运动控制实现
065-Z轴和主轴参数设置及运动控制实现
066-剥刀轴参数设置及属性通知类型开发
067-利用字典实现集合参数的绑定修改与设置
068-左棘轮轴和右棘轮轴的参数设置和运动控制
069-编写控制卡输入点的UI布局
070-输出点的UI布局和输出点与其它设备的关系
071-自定义转换器显示IO点和轴使能状态
072-编写用户设置界面及业务
073-编写系统设置业务
074-相机标定页面布局
075-编定相机标定业务
076-根据控件中的选框坐标转换为相机图像选框坐标
077-创建相机标定服务接口
078-创建C++项目,导入opencv算法库
079-C#调用在C++代码中创建的结构体和函数(重点)
080-编写C++相机标定函数和opencv的Mat图像转换函数
081-8位灰度图像的二值化处理
082-opencv寻找轮廓和绘制轮廓
083-opencv创建轮廓外接矩形,遍历轮廓和排除非目标轮廓
084-创建业务流程状态实体
085-显示相机标定业务流程进度的UI布局
086-导入MARK标定原图,创建MARK标定页面
087-创建MARK标定的相关结构体参数和类型转换
088-编写左相机MARK标定UI布局
089-异步加载本地MARK相关标定参数
090-编写MARK标定业务流程的异步方法
091-添加光源模块,设计光源接口及成员
092-编写光源模块的业务实现
093-内存理解-仿真相机加载本地图片到非托管内存(重点)
094-创建MARK标定函数
095-Opencv霍夫圆函数检测图像中MARK圆点坐标
096-Opencv轮廓函数检测图像矩形坐标
097-WriteableBitmap类显示3通道图像
098-通过MARK点信息计算齿轮孔和元件的ROI参数
099-保存MARK标定参数
100-创建轴标定页面,讲解单应性矩阵
101-X轴和Y轴标定页面布局完成
102-获取相机图像以编写X轴的Y轴标定业务
103-绑定数据问题解决思路
104-Opencv轮廓检测及轮廓绘制
105-opencv凸包计算轮廓的外接矩形中心坐标
106-返回轮廓坐标集合,保存本地图像
107-拾取图像平面坐标点对应的世界坐标点
108-opencv的findHomography函数平面坐标标定
109-调试平面坐标与世界坐标的标定过程
110-创建BOM管理项目和相关数据实体类
111-创建元件表和BOM表的增删改查操作接口和操作类
112-IRegionManager导航到元件管理页员和BOM管理页面
113-元件管理页面布局
114-Button图标按钮样式开发和RelativeSource绑定方式讲解
115-在会话管理类中增加弹窗和遮罩层显示
116-元件管理页面的业务开发
117-分析二值化阈值对轮廓检测的影响
118-创建感兴趣ROI区域并二值化处理区域图像
119-opencv寻找轮廓计算正圆和画圆操作
120-寻找元件区域中的轮廓,初步排除干扰轮廓
121-convexHull凸包函数外接矩形筛选
122-使用平均值和标准差二次筛选元件外接矩形 01
122-使用平均值和标准差二次筛选元件外接矩形 02
123-获取元件矩形识别结果并判断正方形
124-在Mat图像上绘制矩形结果
125-根据指定区域寻找元件外框矩形坐标
126-根据找到的元件外框,在其中寻找元件中心坐标
127-XY轴移动位置计算-图像坐标转换成世界坐标
128-实现相机导航功能
129-添加元件,编写元件类型转换器
130-BOM管理页面布局
131-实现BOM的添加、浏览和删除
132-解决部分BUG,提供解决思路
133-运行页面的RadioButton样式开发
134-编写运行服务类的接口及成员
135-运行页面数据绑定和运行服务类开发
136-增加运行流程管理功能
137-如何获取及更新绑定到WPF前端的数据
138-讲解策略模式在实际项目中的运行
139-讲解工厂模式在项目中的实际运用
140-创建左右物料元件间距对比子线程
141-创建进左右棘轮进料子线程
142-利用opencv函数countNonZero()统计像素点
143-检测左右物料的前2个齿轮孔和元件外框
144-创建方形元件的检空算法
145-完成方框检空算法,改造线程返回值
146-创建贴胶线程,讲解ManualResetEvent线程同步
147-计算物料剪切位及业务线程与贴胶线程同步
148-完成接料业务,并解决C++中的Bug
149-编写元件测量模式下的进料业务流程
150-创建和加载电桥仿真模块
151-编写元件测量的业务流程
152-根据扫码元件型号自动开启测量
153-创建电桥设备的业务管理类,实现电子元件的测量工作
154-编写元件测量业务流程
155-将元件测量结果显示到WPF前端
156-编写元件测量接料业务流程
157-完成测量接料流程
158-优化策略模式
159-讲解定义模板文件时与主业务流程线程同步
160-模板制作界面布局和业务开发
161-opencv裁剪图像操作,定义模板文件
162-opencv保存模板图像到本地
163-解决非托管内存问题
164-opencv高斯滤波的用法
165-opencv模板匹配、图像翻转和图像写入
166-完成丝印检测开发
167-细节优化,图像截图,本地导出
168-课程总结(大结局)
课程资料下载
重庆教主
WPF中文网站长