用python写一个手写数字识别的程序
时间: 2023-10-18 19:04:42 浏览: 84
以下是一个简单的手写数字识别程序,使用了Python的机器学习库scikit-learn和图像处理库PIL:
```python
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
from sklearn.neural_network import MLPClassifier
from PIL import Image
import numpy as np
# 载入数字数据集
digits = load_digits()
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target)
# 训练多层感知机分类器
clf = MLPClassifier(hidden_layer_sizes=(100,), max_iter=500)
clf.fit(X_train, y_train)
# 加载测试图像并进行预测
img = Image.open('test.png').convert('L')
img = img.resize((8, 8))
img_arr = np.array(img)
img_arr = img_arr.reshape(1, -1)
prediction = clf.predict(img_arr)
# 打印预测结果
print("Predicted digit:", prediction[0])
```
使用该程序,可以将手写数字图像(例如PNG格式)放入程序所在目录,然后运行程序即可得到预测结果。该程序使用了一个多层感知机(MLP)分类器,该分类器可以自动学习数字图像的特征,并作出预测。
阅读全文