我用Python給班主任寫了一個(gè)自動(dòng)閱卷腳本(附源碼)
導(dǎo)語
幼兒園升小學(xué),小學(xué)升中學(xué),中學(xué)升高中..........
每個(gè)人都要經(jīng)歷的九年義務(wù)教育:伴隨的都是作業(yè)、隨堂考、以及每個(gè)科目的大大小小的考試。當(dāng)然小編被考試支配的恐懼以及過去了哈~除了學(xué)生考試的壓力之外。

有調(diào)查發(fā)現(xiàn),目前老師大量的時(shí)間被小型考試,如課堂測驗(yàn)、周測等高頻次測驗(yàn)的批改客觀題、計(jì)分、登分等占用,被迫壓縮了備課、精準(zhǔn)輔導(dǎo)的時(shí)間。
今天小編帶大家做一款解放教師的自動(dòng)閱卷系統(tǒng)。

幾千張的答題卡掃描錄入電腦閱卷系統(tǒng),老師們只需打開電腦登陸,即可找到自己要批改的那道題。
大大提高了改卷效率,降低合分?jǐn)?shù)的錯(cuò)誤率。整個(gè)過程保密學(xué)生姓名,公平公正。
答題卡識別:
(一)設(shè)置答題卡的位置坐標(biāo)分為左上,右上,右下,左下。
def order_points(pts): # 一共4個(gè)坐標(biāo)點(diǎn) rect = np.zeros((4, 2), dtype = "float32") # 按順序找到對應(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
(二)確保檢測到:
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)行對比 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ī)),拍照即可獲取成績,可以導(dǎo)入Excel表格便于存檔管理。

總結(jié)
解放老師的雙手,節(jié)省時(shí)間給大家補(bǔ)習(xí) !23333........不用太感謝我,好事不留名!
愛我你怕了嘛??!
源碼基地:## 959755565 ##!歡迎!

到此這篇關(guān)于我用Python給班主任寫了一個(gè)自動(dòng)閱卷腳本(附源碼)的文章就介紹到這了,更多相關(guān)Python自動(dòng)閱卷腳本內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信