halcon视频教程如何学习?怎么样才能踏入机器视觉这个行业?
本人是工作八年的视觉工程师,主要从事Halcon和Visionpro视觉开发,谈谈个人对视觉学习看法:
1、HALCON是德国MVtec公司开发的一套完善的标准的机器视觉算法包,它节约了产品成本,缩短了软件开发周期。
Halcon:底层功能算法多,运算性能快,开发需要一定软件功底和图像处理理论。
快速学习做法:研究实例、做实战项目。halcon不能提供相应的界面编程需求,需要和vs来构造MFC界面或者QT使用,才能构成一套完整软件。
2、需求主要有二维三维二维:(1)识别定位;(2)OCR识别;(3)二维码识别;(4)测量;(5)缺陷检测;(6)机器控制等三维:(1)多目标定(2)三维重建(3)三维匹配等
3、成为合格的机器视觉工程师须具备三个方面的知识
图像处理涉及以下几大领域:
A、图像处理的基本理论知识(图像理论的基础知识)
B、图像增强(对比度拉伸、灰度变换等)
C、图像的几何变换(仿射变换,旋转矩阵等)
D、图像的频域处理(傅里叶变换、DFT、小波变换、高低通滤波器设计)
E、形态学(膨胀、腐蚀、开运算和闭运算以及凸壳等)
F、图像分割
G、图像复原
H、运动图像
I、图像配准(模板匹配等)
J、模式识别(分类器训练,神经网络深度学习等)
(2)软件编程功底
具备C,C++,C#及MFC界面开发的功底
A、C语言的学习主要看谭浩强写的C语言相关知识
B、C++主要看C++primerplus书籍
C、MFC的学习主要看孙鑫编写的《VC++深入详解》这本书及相应的视频教程,并在VC++6.0软件或VS2010等软件上编写程序和实践。
D、C#可以看书籍《C#从入门到精通》、《C#入门经典》、《C#图解教程》
(3)光学知识:
光学知识主要在你设计方案时相机、光源、镜头等选型时起到关键作用。
4、学习HALCON最重要的是学习其中的方法、流程和套路
HALCON主要完成图像算法的流程套路如下:
特征提取总结:
1、几何特征(面积、周长、矩形度)
2、纹理特征(与灰度相关,如熵、能量值)
3、颜色特征
4、概率特征
5、算子描述特征
6、Hough特征(梯度直方图特征)
做机器视觉的项目,拿到项目时一般遵循如下流程:
第一步:需求分析,建立相应的方案
第二步:算法流程规划及业务逻辑设计
第三步:模块化编程及集成化实现
第四步:调试,根据反馈结果来不断的修改程序Bug,达到客户需求,最后交付客户及软硬件操作文档。
学习机器视觉的好方法:
1、学习机器视觉一定要结合项目实战,在实践中学 结经验教训,系统化学习所需知识。
2、补充一定的C++和c#知识,进行VS联合开发,客户现场的学习和现场调试,不断学习示例分析,掌握方法套路流程。
3、根据实际问题,学习模块调用,按照方法套路学习。
4、最好是先用HALCON实现图像处理部分,然后在VS2010开发软件中利用MFC图形界面实现出来,实践学习是最好的方法。
这是我搜集的资料分享给大家,有需要的自己保存:
全套链接:https://pan.baidu.com/s/1Emc0uxczk8xA7CnpOiw9gA 提取码:3r6s
发展趋势是结合神经网络、深度学习进行相应的人工智能机器视觉开发。
敲黑板:本人经常会发一些对大家学习非常有参考价值的帖子和分享一些视觉halcon学习的资料,大家可以关注我以及看下我其他帖子。
halcon视频教程如何学习?怎么样才能踏入机器视觉这个行业?的更多相关文章
- 《Java4Android视频教程》学习笔记(一)
此为个人的学习笔记,所以不具备太强的学习性,若有错误请谅解,如果能指出我的错误,我将万分感谢~ 一:java历史 java诞生 前身:Oak->java 曾经的名字C++(++--) 原意是在C ...
- halcon,C# 学习
Halcon学习之一:查询图像参数 1.get_grayval ( Image : : Row, Column : Grayval ) 计算Image图像中坐标为(Row,Column)的点的灰度值G ...
- 《VC++就业培训宝典之MFC视频教程》学习笔记
开发环境:Win7 64位 + VS2013 第三章第二节视频 在Win32工程中学习MFC开发,编译问题: Building MFC application with /MD[d] (CRT dll ...
- PHP高级应用视频教程大全学习
php 是一种服务器端的,嵌入html的脚本语言.php区别其他像客户端java的地方是它的代码在服务器端执行.php能做什么?最低水平,php可以做任何其他cgi程序所能做的事,例如收集表格数据,生 ...
- 《Java4Android视频教程》学习笔记(三)
一:抽象类 接口 1.使用abstract修饰抽象类 抽象函数 2.一个类中有一个或者多个抽象函数,必须定义为抽象类 3.抽象类可以不含有抽象函数 4.抽象类不可以生成对象 tip:如果一个代码在语意 ...
- 《Java4Android视频教程》学习笔记(二)
一:面向对象 1.对象 ①对象的使用方法 对象.变量 对象.方法 ②匿名对象 new A().方法 new A().变量 匿名对象会被分配到对内存中 java内存处理机制会对一定时间内无指针指向的对象 ...
- Halcon例程detect_indent_fft学习
************************************************************************************************ *** ...
- hcode视频教程中心(学习h5和hbuilder等)
网站: http://www.hcoder.net/course
- VB入门在线视频教程大全学习
课程目录 9分钟47秒 课时1第一课:怎么编写程序 14分钟1秒 课时1第十七课第1节:文件读写的几种方式 14分钟14秒 课时2第二课:什么是变量和变量类型 19分钟24秒 课时3第三课:变量的声明 ...
随机推荐
- js&jq遇到的问题(不断更新中)
1.普通事件和事件绑定: 代码: 普通事件: var btn=document.getElementById('btn'); btn.onclick=function(){ alert("c ...
- javaweb各种框架组合案例(一):maven+spring+springMVC+jdbcTemplate
为了体现spring jdbc对于单表操作的优势,我专门对dao层做了一个抽离,使得抽离出的核心dao具有通用性.主要技术难点是对于泛型的反射.注意:单表操作中,数据库表的字段要和实体类的属性名保持高 ...
- java多线程之生产者-消费者
public class Product { private String lock; public Product(String lock) { this.lock = lock; } public ...
- SQL Server 2012完全备份、差异备份、事务日志备份和还原操作;
SQL Server 2012完全备份.差异备份.事务日志备份和还原操作: 1.首先,建立一个测试数据库,TestA:添加一张表,录入二条数据:备份操作这里我就不详细截图和讲解了.相信大家都会备份,我 ...
- 浅析为何使用融合CDN是大趋势?
使用传统CDN的用户遇到的新问题 随着云计算时代的快速发展,尤其是流媒体大视频时代的到来,用户在是使用过往CDN节点资源调配将面临很多问题: 问题1: 流媒体时代不局限于静态内容分发,直播点播等视频服 ...
- Centos6 samba服务配置
1.在阿里虚拟机中配置包源 在ecs的 /etc/yum.repos.d 创建个 alios.repo,内容如下 [alios.$releasever.base.$basearch] name=al ...
- 【简易bat脚本】启动java程序
前置条件:path中添加了JAVAHOME配置了java环境变量 1.新建txt文本文件 2.粘贴以下内容 @echo off set path=%path%;.;java -classpath &q ...
- Python基础(八) 模块的引入与定义
模块定义 什么是模块:一个py文件就是一个模块 模块分为三类: 内置模块,(标准库):.python解释器自带的,time,os,sys,等等.200多种. 自定义模块:自己写的模块 第三方库(模块) ...
- 通用shell函数库
1.输出字体颜色库 #!/bin/bash export black='\E[0m\c' export boldred='\E[1;31m\c' export boldgreen='\E[1;32m\ ...
- Ruby中的常量:引号、%符号和heredoc
数值字面量 没什么好说的,唯一需要说明的是分数字面量:数值后加上一个后缀字母r表示分数字面量. # 整数字面量 0 1 100 10_000_001 # 千分位 # 浮点数字面量 0.1 1.0 1. ...