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