Skip to content

din0sauria/Dinosheet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dinosheet答题卡识别工具

1. 程序概述

该程序是一个基于Python的答题卡识别工具,使用OpenCV和Tkinter库来实现图像处理和用户界面。它能够扫描并识别答题卡上的填涂答案,并将结果保存到Excel文件中。

2. 功能描述

  • 图像加载与预处理:从本地选择答题卡图片,进行灰度化、高斯模糊和边缘检测等预处理操作。
  • 轮廓检测与透视变换:通过查找轮廓并进行透视变换,将答题卡调整为标准矩形视图。
  • 关键点识别:识别答题卡上的关键点(如题目选项区域),并通过计算非零像素值确定填涂的答案。
  • 结果显示:在界面上显示识别出的答案,并提供保存到Excel文件的功能。
  • 参数设置:用户可以通过界面输入答题卡的行数和总题数,以适应不同格式的答题卡。

3. 使用步骤

3.1 启动程序

双击运行sheetrecognition.py文件,启动程序主窗口。

3.2 设置参数

在主窗口中,根据答题卡的实际格式,设置以下参数:

  • 选项行数:每页答题卡上选项的行数,默认值为16。
  • 题目总数:答题卡上的总题数,默认值为32。

3.3 选择图像

点击“选择图像”按钮,从本地文件系统中选择一张答题卡图片。

3.4 查看识别结果

程序会自动处理所选图片,并在界面上显示识别出的答案。如果识别成功,答案将以题号和选项的形式展示在右侧文本框中;同时,处理后的图像也会显示在界面上。

3.5 保存结果

在“结果保存至”输入框中指定保存路径和文件名(默认为result.xlsx),然后点击“保存”按钮,将识别结果保存到Excel文件中。

4. 注意事项

  • 确保选择的答题卡图片清晰且完整,避免因图片质量问题导致识别失败。
  • 如果识别结果不正确,请检查并调整“选项行数”和“题目总数”的设置。
  • 程序依赖于OpenCV、Tkinter等库,请确保这些库已正确安装。

5. 技术细节

5.1 图像处理流程

  1. 加载图像:使用cv2.imread()读取图片。
  2. 预处理:将图片转换为灰度图,并进行高斯模糊处理,最后使用Canny算法进行边缘检测。
  3. 轮廓检测:通过cv2.findContours()查找图像中的轮廓,并筛选出符合要求的矩形区域。
  4. 透视变换:对筛选出的矩形区域进行四点透视变换,将其调整为标准矩形视图。
  5. 关键点识别:在透视变换后的图像中,识别每个选项区域,并通过计算非零像素值确定填涂的答案。

5.2 用户界面设计

使用Tkinter库创建图形用户界面,包含以下几个主要组件:

  • 输入框:用于设置答题卡的行数和总题数。
  • 按钮:用于选择图像、保存结果等操作。
  • 标签:用于显示处理后的图像和识别结果。

6. 常见问题及解决方法

  • 无法加载图像:请确保选择的图片路径正确且图片格式支持(JPEG、PNG等)。
  • 识别结果为空:检查答题卡图片是否清晰,或调整“选项行数”和“题目总数”的设置。
  • 保存失败:请确保保存路径有效且具有写入权限。

希望这份说明书能帮助您更好地理解和使用本程序。祝您使用愉快!

About

该程序是一个基于Python的答题卡识别工具,使用OpenCV和Tkinter库来实现图像处理和用户界面。它能够扫描并识别答题卡上的填涂答案,并将结果保存到Excel文件中。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages