opencv是一个开源的数字图像处理库,其中有一个重要功能就是识别
而在opencv中,对识别功能的支持主要在两方面,其一是利用分类器算法,其二是神经网络算法,目前opencv支持级联分类器和深度神经网络,但愿将来能支持卷积神经网络,级联分类器算法的原理和神经网络今后介绍,这里先挖个坑
分类器顾名思义是一个将不同类别的东西分类开来的算法,要实现这个目的,我们需要几个部分
1。输入的图片 2。已知的数据 3。输出类别
程序查看【输入的图片】,然后在【已知的数据】里进行查找,找到对应的【输出类别】将其输出。
要得到这些【已知的数据】,我们需要用一大堆的【带标签数据】来对程序进行训练,用来生成这些【已知的数据】,所谓【带标签的数据】,就是对于每一个图片,给他一个标识符,来告诉程序:
“我给你一堆图片,这张代表苹果,这张代表香蕉…现在你已经知道我的分类标准了,你根据我的分类标准来生产一个普遍性的【已知的数据】,然后我根据【已知的数据】就可以直接知道判断的结果了”
上文中的苹果,香蕉之类的,就是每一张图的标签,而图片显然就是数据
然而,opencv的分类器仅仅能分别是和不是结果,而不能分别苹果,香蕉…
换句话说,他只能知道你的输入到底 是 苹果还是 不是 苹果
那么我们对输入的标签也就简化了,我们只需给定两堆数据集,其中一堆告诉程序&