目录

  • 1 课程导学
    • 1.1 课程标准
    • 1.2 学习指南
    • 1.3 实训指导书
    • 1.4 教学日历
    • 1.5 考核评价
  • 2 模块1:认识Python
    • 2.1 任务1:工作环境搭建
  • 3 模块2:Python基础
    • 3.1 任务2-1:学生体重指数分析
    • 3.2 任务2-2:学生星座分析
  • 4 模块3:程序控制
    • 4.1 任务3-1:学生奖学金发放
    • 4.2 任务3-2:象棋棋盘制作
  • 5 模块4:数据结构
    • 5.1 任务4-1:学生演讲比赛计分
    • 5.2 任务4-2:学生档案建立
  • 6 模块5:函数与模块
    • 6.1 任务5-1:学生成绩管理
    • 6.2 任务5-2:专业学生人数统计
    • 6.3 任务5-3:学生管理系统登录模块设计
  • 7 模块6:文件与数据格式化
    • 7.1 任务6:学生管理系统设计(文件版)
  • 8 模块7:面向对象编程
    • 8.1 任务7:班级通讯录管理
  • 9 模块8:异常处理
    • 9.1 任务8:学生照片格式检测
  • 10 创作模块
    • 10.1 项目1:飞机大战游戏开发
    • 10.2 项目2:大学生就业岗位数据分析
    • 10.3 项目3:网络爬虫爬取东营天气信息
    • 10.4 项目4:识别手写数字图片
  • 11 拓展资源
    • 11.1 任务实施源代码
    • 11.2 教学训练案例
      • 11.2.1 模块2:Python基础
      • 11.2.2 模块3:程序控制
      • 11.2.3 模块4:数据结构
      • 11.2.4 模块5:函数与模块
      • 11.2.5 模块6:文件与数据格式化
      • 11.2.6 模块7:面向对象编程
      • 11.2.7 模块8:异常处理
    • 11.3 实习实训
    • 11.4 专业术语
    • 11.5 试题库
    • 11.6 知识图谱
    • 11.7 职业标准
    • 11.8 企业案例
    • 11.9 学生作品
  • 12 教学资源
    • 12.1 课程整体设计
    • 12.2 课程单元设计
    • 12.3 教学教案
    • 12.4 教学模式
    • 12.5 教学软件
    • 12.6 电子教材
项目4:识别手写数字图片

一、安装第三方库

安装numpy库

pip install numpy

安装 matplotlib库

pip install matplotlib

安装sklearn库

pip install scikit_learn

安装CV2库

pip install opencv_python

安装joblib库

pip install joblib

二、训练模型

import numpy as np
from sklearn.linear_model import LogisticRegression
import os
import joblib

#from sklearn.externals import joblib

# 数据预处理
trainData = np.loadtxt(open('digits_training.csv', 'r'), delimiter=",", skiprows=1)  # 装载数据
MTrain, NTrain = np.shape(trainData)  # 行列数
print("训练集:", MTrain, NTrain)
xTrain = trainData[:, 1:NTrain]
xTrain_col_avg = np.mean(xTrain, axis=0)  # 对各列求均值
xTrain = (xTrain - xTrain_col_avg) / 255  # 归一化
yTrain = trainData[:, 0]

'''================================='''
# 训练模型
model = LogisticRegression(solver='lbfgs', multi_class='multinomial', max_iter=500)
model.fit(xTrain, yTrain)
print("训练完毕")

'''================================='''
# 测试模型
testData = np.loadtxt(open('digits_testing.csv', 'r'), delimiter=",", skiprows=1)
MTest, NTest = np.shape(testData)
print("测试集:", MTest, NTest)
xTest = testData[:, 1:NTest]
xTest = (xTest - xTrain_col_avg) / 255  # 使用训练数据的列均值进行处理
yTest = testData[:, 0]
yPredict = model.predict(xTest)
errors = np.count_nonzero(yTest - yPredict)  # 返回非零项个数
print("预测完毕。错误:", errors, "条")
print("测试数据正确率:", (MTest - errors) / MTest)

'''================================='''
# 保存模型

# 创建文件目录
dirs = 'testModel'
if not os.path.exists(dirs):
   os.makedirs(dirs)
joblib.dump(model, dirs + '/model.pkl')
print("模型已保存")


三、测试模型

import cv2
import numpy as np
from sklearn import svm
import joblib

#from sklearn.externals import joblib

map = cv2.imread(r"a0.png")
GrayImage = cv2.cvtColor(map, cv2.COLOR_BGR2GRAY)
ret, thresh2 = cv2.threshold(GrayImage, 127, 255, cv2.THRESH_BINARY_INV)
Image = cv2.resize(thresh2, (28, 28))
img_array = np.asarray(Image)
z = img_array.reshape(1, -1)

'''================================================'''

model = joblib.load('testModel' + '/model.pkl')
yPredict = model.predict(z)
print(yPredict)
y = str(yPredict)
cv2.putText(map, y, (10, 20), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 0, 255), 2, cv2.LINE_AA)
cv2.imshow("map", map)
cv2.waitKey(0)