基于KNN 算法的数字识别程序
时间: 2023-05-27 16:05:35 浏览: 131
以下是基于KNN算法的数字识别程序的示例代码:
```python
import numpy as np
import cv2
from sklearn.neighbors import KNeighborsClassifier
# 读取训练数据
train_data = np.load('train_data.npy')
train_labels = np.load('train_labels.npy')
# 创建KNN分类器
knn = KNeighborsClassifier(n_neighbors=5)
# 训练分类器
knn.fit(train_data, train_labels)
# 读取测试图像
test_img = cv2.imread('test_img.png', cv2.IMREAD_GRAYSCALE)
# 调整图像大小为28x28像素
test_img = cv2.resize(test_img, (28, 28))
# 将图像转换为一维向量
test_data = test_img.reshape(1, 28*28)
# 使用KNN算法进行分类
result = knn.predict(test_data)
# 输出分类结果
print('The digit in the test image is:', result[0])
```
在这个示例代码中,我们首先读取训练数据和标签,然后使用KNN算法训练分类器。接着,我们读取测试图像并将其调整为28x28像素的大小,然后将其转换为一维向量。最后,我们使用训练好的KNN分类器对测试图像进行分类,并输出分类结果。
需要注意的是,训练数据和标签应当是一个二维数组和一个一维数组,其中每一行表示一个训练样本,每一列表示该样本的一个特征。在本例中,每个训练样本都是一个28x28像素的灰度图像,因此每个样本有784个特征(即28x28)。测试数据也应当是一个一维数组,其中每个元素表示一个特征。
阅读全文