Training the classifier

Now it's time to train the classifier.

As with all other machine learning functions, the k-NN classifier is part of OpenCV 3.1's ml module. We can create a new classifier using the following command:

In [15]: knn = cv2.ml.KNearest_create()
In the older versions of OpenCV, this function might be called cv2.KNearest() instead.

We then pass our training data to the train method:

In [16]: knn.train(train_data, cv2.ml.ROW_SAMPLE, labels)
Out[16]: True

Here, we have to tell knn that our data is an N x 2 array (that is, every row is a data point). Upon success, the function returns True.