一:opencv与halcon简单的比较
最近又把opencv2.4版本进行大概的学习了一遍,了解opencv2.4提供的功能后,基本满足机器视觉的应用开发,但是个人感觉开发难度来说相对于halcon来说还是大了点。但是opencv提供了很多的帮助,国内研究相关的文章很多,所以方便学习。使用halcon进行机器视觉产品开发,资料少,但是适合快速开发。所以个人认为,刚刚入门搞机器视觉的朋友,可以先学习下opencv,了解更多基础知识后,更容易掌握其它更为灵活的图像处理库。
二:如何下手学习opencv
很多网友都问我要如何进入机器视觉的开发领域,都觉得入门太难,其实机器视觉开发并非如此,如果是做工程项目,并不需要我们掌握多么深的理论,了解现有的算法即可,然后可以学习opencv里面的基本算子,学习opencv 可以根据开发文档的教程进行学习,通过实例学习opencv提供的算子的作用。体验完opencv带来的算子后,就可以研究各个算子直接的联系,最重要的是理解算子处理图像后产生的效果,几个算子叠加后的结果,后续就可以不断的尝试,经过一段时间的练习后,我相信大家一定会有很大的收获。
三:机器视觉项目的关键
从个人做机器视觉项目的感受来说,我理解机器视觉项目其实就是一个软硬件协同工作的系统,因此做机器视觉项目并非会搞图像算法就行。关键需要掌握如下几点:
1:确定检测对象,检测物的材质,形状等基本特征
2:研究此检测对象的工作环境和需要检测的范围(以方便后续的相机 光源 镜头等选型)
3:设计机器视觉系统结构。简要搭建系统,通过初期项目验证,大家可别小看这一步,这一步决定着项目成功的关键。
4:研究检测对象需要达到的目标,例如如果是测量系统,那么就应该知道此对象正常工作情况和非正常情况,最好能了解到非正常工作情况引起的原因。如果是缺陷检测,那就更应该了解出现的缺陷是什么样子的,如果产生的。产生后的缺陷的特征与原检测对象的特征有和差别
四:opencv学习方向
opencv如果要深入学习,可以通过提供的源代码 ,参考现有相关算子的理论知识,彻底了解算子工作原理,对以后进行图像算法研究工作者有很大的帮助,这就不仅仅是应用那么简单,其实目前作为机器视觉应用工程师来说,我个人感觉大可不必,分清自己的工作角色。做好应用也并非容易的事情,(当然了如果你想跟朋友在一起吹牛,说自己多厉害的时候,你这个时候说点算子高深的理论,再适当加入点专业的英语单词,呵呵 )。作为应用我认为通过实际项目,然后采用opencv库进行开发,通过一两个项目,你就应该大致了解了机器视觉开发方向了。