Opencv 图像识别Android实战(识别扑克牌 5.KNN算法在本例中的应用)

         KNN 算法是一种简单、直观、易于理解的分类方法。举一个非常通俗的例子,你要确定一个人是富人还是普通人,还是穷人,你可以看他经常和谁在一起(和谁的距离比较近)他就是那一类人,所谓物以类聚人以群分,就能很好的说明这个KNN的原始思想,这里就不介绍非常学术化的概念了。

        在本例中我们会把所有的样本数据分成如下类别

       0,1,2,3,4,5,6,7,8,9,方块,黑桃,梅花,黑桃,A,J,K,Q以及X这19个类别,每个类别下,我们分别收集了几十个样本,当我们抓取到一个未知的图片,想知道它到底属于哪一类,只需要和这些类别下的样本分别进行比较,这个未知的图片和哪一个类别下的图片更像,那么他就属于哪一个类,在本例中我们更加简化了这种这种算法,对于未知的图像我们只需要找到一个和它最接近的样本,这个样本的类别就定义为这个未知图像的类别。

        这里为什么会有一个X文件夹呢?想想一下如果抓到一个图像他和哪一类的图片都不想,那么极有可能他不是我们的要找的目标,这类东西我们我们不关心,就把它单独分成一类,我们可以称之为负样本,凡是不是我们想要的都分到这个类别,不影响我们得到正确的数据。

你可能感兴趣的:(Opencv 图像识别Android实战(识别扑克牌 5.KNN算法在本例中的应用))