Простое распознавание цифр в OpenCV-Python

| | | | | | | | | | | | | | | |

Я пытаюсь реализовать «Распознавание цифр» в OpenCV-Python (cv2). Это просто для целей обучения. Я хотел бы изучить функции KNearest и SVM в OpenCV.

У меня есть 100 образцов (то есть изображений) каждой цифры. Я хотел бы потренироваться с ними.

Существует образец letter_recog.py, который поставляется с образцом OpenCV. Но я все еще не мог понять, как его использовать. Я не понимаю, что такое образцы, ответы и т. д. Кроме того, он сначала загружает текстовый файл, который я сначала не понял.

Позже немного поискав, я смог найти letter_recognition.data в образцах cpp, я использовал его и сделал код для cv2.KNearest в модели letter_recog.py (просто для тестирования):

<код>импортировать numpy как np import cv2 fn = "letter-recognition.data" a = np.loadtxt(fn, np.float32, delimiter=",", converts={ 0: lambda ch: ord(ch)- ord("A") }) выборки, ответы = a[:,1:], a[:,0] model = cv2.KNearest() retval = model.train(samples,responses) retval, results, neigh_resp, dists = model.find_nearest(samples, k = 10) print results.ravel() 

Это дало мне массив размером 20000, я не понимаю, что это такое.

Вопросы:

1) Что такое файл letter_recognition.data? Как создать этот файл из моего собственного набора данных?

2) Что означает results.reval()?

3) Как мы можем написать простой инструмент распознавания цифр, используя файл letter_recognition.data (либо KNearest, либо SVM)?