目录

  • 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

二、训练模型

Plain Text

import numpy as npfrom sklearn.linear_model import LogisticRegressionimport osimport 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("模型已保存")


三、测试模型

Plain Text

import cv2import numpy as npfrom sklearn import svmimport 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)