Я хочу сделать программу до узнать цифру на картинке. Я следую учебнику в scikit learn.Scikit-learn распознавание цифр SVM
Я могу поезд и посадка классификатора svm как показано ниже.
Во-первых, я импортировать библиотеки и набор данных
from sklearn import datasets, svm, metrics
digits = datasets.load_digits()
n_samples = len(digits.images)
data = digits.images.reshape((n_samples, -1))
Во-вторых, создать модель SVM и обучать его с набором данных.
classifier = svm.SVC(gamma = 0.001)
classifier.fit(data[:n_samples], digits.target[:n_samples])
И потом, я стараюсь читать свое собственное изображение и использовать функцию predict()
распознавать цифры.
Я перекроить изображение в (8, 8), а затем преобразовать его в 1D массив.
img = misc.imread("w1.jpg")
img = misc.imresize(img, (8, 8))
img = img[:, :, 0]
Наконец, когда я распечатать предсказание, он возвращает [1]
predicted = classifier.predict(img.reshape((1,img.shape[0]*img.shape[1])))
print predicted
Независимо от пользователя я другие изображения, она по-прежнему возвращает [1]
Когда я распечатываю «по умолчанию»набор данных числа„9“, это выглядит следующим образом:
Мои изображения номер„9“:
Вы можете увидеть ненулевое число достаточно велико для мое изображение.
Я не знаю почему. Я ищу помощь для решения моей проблемы. Благодаря
Спасибо, что ответили. Я попробовал ваш метод, и он не работает. Я узнал, что элементы массива моего изображения намного больше, чем набор учебных материалов. Я обновил вопрос – VICTOR
Ну, похоже, вам нужно масштабировать их до диапазона 0-16: http://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_digits.html#sklearn. datasets.load_digits –
@CLWONG - Это решило вашу проблему? –