我用Python給班主任寫了一個(gè)自動(dòng)閱卷腳本(附源碼)
導(dǎo)語(yǔ)
幼兒園升小學(xué),小學(xué)升中學(xué),中學(xué)升高中..........
每個(gè)人都要經(jīng)歷的九年義務(wù)教育:伴隨的都是作業(yè)、隨堂考、以及每個(gè)科目的大大小小的考試。當(dāng)然小編被考試支配的恐懼以及過去了哈~除了學(xué)生考試的壓力之外。
有調(diào)查發(fā)現(xiàn),目前老師大量的時(shí)間被小型考試,如課堂測(cè)驗(yàn)、周測(cè)等高頻次測(cè)驗(yàn)的批改客觀題、計(jì)分、登分等占用,被迫壓縮了備課、精準(zhǔn)輔導(dǎo)的時(shí)間。
今天小編帶大家做一款解放教師的自動(dòng)閱卷系統(tǒng)。
幾千張的答題卡掃描錄入電腦閱卷系統(tǒng),老師們只需打開電腦登陸,即可找到自己要批改的那道題。
大大提高了改卷效率,降低合分?jǐn)?shù)的錯(cuò)誤率。整個(gè)過程保密學(xué)生姓名,公平公正。
答題卡識(shí)別:
(一)設(shè)置答題卡的位置坐標(biāo)分為左上,右上,右下,左下。
def order_points(pts): # 一共4個(gè)坐標(biāo)點(diǎn) rect = np.zeros((4, 2), dtype = "float32") # 按順序找到對(duì)應(yīng)坐標(biāo)0,1,2,3分別是 左上,右上,右下,左下 # 計(jì)算左上,右下 s = pts.sum(axis = 1) rect[0] = pts[np.argmin(s)] rect[2] = pts[np.argmax(s)] # 計(jì)算右上和左下 diff = np.diff(pts, axis = 1) rect[1] = pts[np.argmin(diff)] rect[3] = pts[np.argmax(diff)] return rect
(二)確保檢測(cè)到:
if len(cnts) > 0: # 根據(jù)輪廓大小進(jìn)行排序 cnts = sorted(cnts, key=cv2.contourArea, reverse=True) for c in cnts: # 遍歷每一個(gè)輪廓 # 近似 peri = cv2.arcLength(c, True) approx = cv2.approxPolyDP(c, 0.02 * peri, True) # 準(zhǔn)備做透視變換 if len(approx) == 4: docCnt = approx break
(三)判斷正確率
# 與正確答案進(jìn)行對(duì)比 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) #繪圖
附源碼:
現(xiàn)代的“機(jī)器閱卷”,工作便捷、效率高、易操作,只需要一個(gè)相機(jī)(手機(jī)),拍照即可獲取成績(jī),可以導(dǎo)入Excel表格便于存檔管理。
總結(jié)
解放老師的雙手,節(jié)省時(shí)間給大家補(bǔ)習(xí) !23333........不用太感謝我,好事不留名!
愛我你怕了嘛??!
源碼基地:## 959755565 ##!歡迎!
到此這篇關(guān)于我用Python給班主任寫了一個(gè)自動(dòng)閱卷腳本(附源碼)的文章就介紹到這了,更多相關(guān)Python自動(dòng)閱卷腳本內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實(shí)現(xiàn)刪除當(dāng)前目錄下除當(dāng)前腳本以外的文件和文件夾實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)刪除當(dāng)前目錄下除當(dāng)前腳本以外的文件和文件夾的方法,涉及Python針對(duì)目錄及文件的刪除技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07Keras中的多分類損失函數(shù)用法categorical_crossentropy
這篇文章主要介紹了Keras中的多分類損失函數(shù)用法categorical_crossentropy,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06python實(shí)現(xiàn)樹的深度優(yōu)先遍歷與廣度優(yōu)先遍歷詳解
這篇文章主要介紹了python實(shí)現(xiàn)樹的深度優(yōu)先遍歷與廣度優(yōu)先遍歷,詳細(xì)分析了樹的深度優(yōu)先遍歷與廣度優(yōu)先遍歷原理及Python相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-10-10利用Python內(nèi)置庫(kù)實(shí)現(xiàn)創(chuàng)建命令行應(yīng)用程序
Python?有一個(gè)叫做argparse的內(nèi)置庫(kù),可以用它來創(chuàng)建一個(gè)命令行界面。本文將詳解如何利用argparse實(shí)現(xiàn)創(chuàng)建一個(gè)命令行應(yīng)用程序,需要的可以參考一下2022-06-06Python圖像運(yùn)算之圖像灰度直方圖對(duì)比詳解
本篇文章將結(jié)合直方圖分別對(duì)比圖像灰度變換前后的變化,方便大家更清晰地理解灰度變換和閾值變換,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-08-08