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第三课:变量的声明 ...
随机推荐
- python 原理
Python原理--总结 基础数据类型: 字符串: upper,lower,startwith,endswith,replace,strip,split,count,isdigit,index ...
- ABP开发框架前后端开发系列---(4)Web API调用类的封装和使用
在前面随笔介绍ABP应用框架的项目组织情况,以及项目中领域层各个类代码组织,以及简化了ABP框架的各个层的内容,使得我们项目结构更加清晰.上篇随笔已经介绍了字典模块中应用服务层接口的实现情况,并且通过 ...
- CentOS7.5上FTP服务的安装与使用
1.FTP简介 1.1FTP:File Transfer Protocol 文件传输协议 FTP是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式.它属于网络传输协议的应用层.文件传送(f ...
- 【JVM】02垃圾回收机制
垃圾回收 垃圾回收策略https://blog.csdn.net/u010425776/article/details/51189318 程序计数器.Java虚拟机栈.本地方法栈都是线程私有的,也就是 ...
- Neo4j 爬坑笔记for3.2.6
官网语法,非常详尽:http://neo4j.com/docs/developer-manual/current/cypher/clauses/match/ A:请对应版本号,不同大版本可能会有很大区 ...
- php对象在内存中创建于释放
<?php /** * 1.对象的创建占用内存, * 对象内存释放,析构方法就是在对象释放前运行最后的一步.可以自动释放和手动释放 * 手动释放:通过unset($p);来释放对象,在这个时候会 ...
- 长春理工大学第十四届程序设计竞赛(重现赛)F
F. Successione di Fixoracci 题目链接:https://ac.nowcoder.com/acm/contest/912/F 题目: 动态规划(Dynamic programm ...
- 趣解 ceph rgw multisite data sync 机制
multisite是ceph rgw对象数据异地容灾备份的一个有效方案,笔者希望深入理解该技术,并应用于生产环境中,然而rgw的这部分代码晦涩难懂,笔者多次尝试阅读,仍云里雾里不解其意,最终流着泪咬着 ...
- 【原创】Docker 搭建Maven私服nexus 3.17初始密码登录不上问题/admin登陆不上问题
[原创-转载请说明出处] 博主最近在虚拟机中搭建Maven私服,遇到了一个关键问题就是nexus 3.17版本后初始密码不是admin/admin123. 对于nexus不熟悉的我弄了很长时间!!!心 ...
- php的开始之路
三大核心:封装,继承,多态 三大核心无处不在,不管是php传统的面向过程化编程,还是后来加入的oop面向对象编程,都一直贯穿整个php的发展进步史. 面向对象,面向接口五大原则:单一职责,封闭-开放, ...