网络编程
位置:首页>> 网络编程>> Python编程>> 我用Python给班主任写了一个自动阅卷脚本(附源码)

我用Python给班主任写了一个自动阅卷脚本(附源码)

作者:顾木子吖  发布时间:2023-11-16 07:43:25 

标签:python,自动阅卷,脚本,阅卷系统

导语

幼儿园升小学,小学升中学,中学升高中..........

每个人都要经历的九年义务教育:伴随的都是作业、随堂考、以及每个科目的大大小小的考试。当然小编被考试支配的恐惧以及过去了哈~除了学生考试的压力之外。

我用Python给班主任写了一个自动阅卷脚本(附源码)

有调查发现,目前老师大量的时间被小型考试,如课堂测验、周测等高频次测验的批改客观题、计分、登分等占用,被迫压缩了备课、精准辅导的时间。

今天小编带大家做一款解放教师的自动阅卷系统。

我用Python给班主任写了一个自动阅卷脚本(附源码)

几千张的答题卡扫描录入电脑阅卷系统,老师们只需打开电脑登陆,即可找到自己要批改的那道题。

大大提高了改卷效率,降低合分数的错误率。整个过程保密学生姓名,公平公正。

答题卡识别:

(一)设置答题卡的位置坐标分为左上,右上,右下,左下。


def order_points(pts):  
# 一共4个坐标点  
rect = np.zeros((4, 2), dtype = "float32")  
# 按顺序找到对应坐标0,1,2,3分别是 左上,右上,右下,左下  
# 计算左上,右下  
s = pts.sum(axis = 1)  
rect[0] = pts[np.argmin(s)]  
rect[2] = pts[np.argmax(s)]  
# 计算右上和左下  
diff = np.diff(pts, axis = 1)  
rect[1] = pts[np.argmin(diff)]  
rect[3] = pts[np.argmax(diff)]  
return rect

(二)确保检测到:


if len(cnts) > 0:  
# 根据轮廓大小进行排序  
cnts = sorted(cnts, key=cv2.contourArea, reverse=True)  
for c in cnts:
# 遍历每一个轮廓      # 近似      
peri = cv2.arcLength(c, True)      
approx = cv2.approxPolyDP(c, 0.02 * peri, True)      
# 准备做透视变换      
if len(approx) == 4:        
docCnt = approx        
break

(三)判断正确率


# 与正确答案进行对比  
color = (0, 0, 255)  
k = ANSWER_KEY[q]  
# 判断正确   if k == bubbled[1]:      
color = (0, 255, 0)      
correct += 1  
cv2.drawContours(warped, [cnts[k]], -1, color, 3)
#绘图

附源码:

我用Python给班主任写了一个自动阅卷脚本(附源码)我用Python给班主任写了一个自动阅卷脚本(附源码)

我用Python给班主任写了一个自动阅卷脚本(附源码)我用Python给班主任写了一个自动阅卷脚本(附源码)

我用Python给班主任写了一个自动阅卷脚本(附源码)我用Python给班主任写了一个自动阅卷脚本(附源码)

我用Python给班主任写了一个自动阅卷脚本(附源码)我用Python给班主任写了一个自动阅卷脚本(附源码)

现代的“机器阅卷”,工作便捷、效率高、易操作,只需要一个相机(手机),拍照即可获取成绩,可以导入Excel表格便于存档管理。

我用Python给班主任写了一个自动阅卷脚本(附源码)我用Python给班主任写了一个自动阅卷脚本(附源码)

来源:https://blog.csdn.net/weixin_55822277/article/details/119820709

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com