qt怎么调用halcon_计算机视觉图像处理怎么学习

计算机视觉图像处理怎么学习

学习人工智能的计算机视觉方向,有二维视觉和三维视觉。相对于二维视觉而言,三维视觉目前的应用场景要少一些,而且项目落地的难度要大一些。二维计算机视觉的更多的应用在面向生产企业的视觉检测方面。

d49cf468eac8948f03a31c0f5e5337c0.png

图1 基于视觉的字符识别

要学习计算机视觉,首要的是学习视觉图像处理。现在有些人一开始就学习深度学习,如果用在二维视觉检测方面,深度学习也只是其中的一种工具,建议从最基础的图像处理算法开始学习。学习图像处理,掌握一种工具非常重要,这工具是指图像处理库函数。虽然有不少图像函数库,比如halcon、visionpro、matlab、labview等。我个人建议采用opencv比较好。opencv使用比较灵活,里面的很多函数都可以找到源代码,知道其实现过程,从而对算法的理解更加深刻。而其他的很多图像库你只是被动的调用其函数,不知道内部过程,对自己能力的提高没有太多帮助。举个简单的例子,一个固定阈值的二值化处理,很多人觉得这个算法没有什么用处。其实,这个算法作为图像处理入门的经典算法,其用处是非常大的,只不过我们很多人不知道怎么发挥这个算法的作用而已。以后会进行介绍。

学习计算机视觉的时候,最好是带着项目进行实践。如果没有实际的项目,也不要只是照着书上把代码输进去运行一遍就结束,可以在熟悉使用一些算法的基础上,找一些实际的图像来进行处理。比如,随便在网上照一张字符图像,自己试着看有什么办法对字符进行分割和识别,会用到哪些算法。这样才能够提高对算法的掌控能力以及实际运用能力。

做视觉项目的时候,很多时候是直接调用现有的函数库。但是,并不是只调用这些函数就能够完成一个项目,通常,在调用这些函数得到一些结果后,自己还要在这些结果上做一些处理,才能够最终得到想要的结果。比如,做边缘检测,但是检测完之后呢?最终是要输出结果的,这个结果可能是圆心的位置、可能是得到某些直线,也可能是根据边界得到某种形状。又比如,通过做图像匹配来寻找某个特定的对象,这时你要想办法消除光照的影响,又要想办法消除模板图像与匹配图像大小不一致的问题,就可能用到多尺度。如果要消除光照不一样的影响,可能要就用差分计算,或者进行差分编码对图像进行变换,而这些操作在opencv里面可以很方便的实现,但是这些操作可能在所有的图像库里面并没有对应的函数,因为这些操作不能归为标准的图像处理算法。而采用其他工具实现起来相对比较麻烦。

对于opencv怎么学,对于完全没有学过程序语言的人来说,可能要先花一些时间去学习C语言或c++。这个基础也不需要太多,能看懂简单的代码应该就可以。刚开始接触opencv的时候,很多人是一头雾水,不知道从何下手。其实,opencv就是在操作二维图像矩阵。从opencv2.0开始,图像数据采用Mat格式存储,Mat里面就是一堆二维数据。所以,我们学习opencv,可以从操作Mat矩阵开始。这个阶段要达到什么程度呢?就是要让自己可以任意操作Mat数组。比如,做算术运算加减乘除,差分绝对值,位运算,均值,偏差,特征值,特征向量,求和,协方差矩阵,翻转,逆矩阵,转置,对数运算,指数运算,幂运算,取子矩阵等等,要熟练掌握这些操作,这样,你遇到图像数据时,如果你想从矩阵中取出自己想要的内容,将会得心应手,而不会不知所措。这些操作刚开始可能需要背下来,以后慢慢用熟练了,自然就会了。比如,我们要做图像匹配,在实际应用中,一般不会将整幅图与模板进行匹配,因为匹配的速度太慢,从图像上观察,要匹配的区域总是在某一个固定的范围内,这时,我们就取图像的子矩阵,将这一部分区域取出来,然后再与模板进行匹配,这样可以在很大程度上提高速度,实际中,为了保证目标在图像内,采集的图像总是较大,而感兴趣的区域总是较小。此外,匹配的时候,不一定是利用opencv自带的方法进行匹配,你可以自己算一些特征值进行匹配,比如算梯度、均值、偏差等,利用这些值进行匹配。而这些操作都是基本的Mat操作。有了这个基础,就可以开始看一些图像处理函数了。当然,根据每个人的基础不一样,学习方法也是灵活多变的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值