2022-06-04 18:09:41 索煒達(dá)電子 1699
文件編號(hào):A329
文件大?。?/strong>29M
開(kāi)發(fā)環(huán)境:Python3.8、OpenCV4.5、PyCharm2020
猿創(chuàng)承諾:該項(xiàng)目親測(cè)正常運(yùn)行,需遠(yuǎn)程調(diào)試部署需另外收費(fèi),確保正常使用,不能正常使用全額退款。
簡(jiǎn)要概述:程序支持對(duì)一類(lèi)固定模板的答題卡進(jìn)行檢測(cè)選項(xiàng)、校對(duì)答案的功能。用戶只需拍攝一張角度偏差較小、亮度適中的答題卡照片,再提供標(biāo)準(zhǔn)答案文件,即可進(jìn)行答題卡的掃描與答案評(píng)測(cè)。
**由于采用了比較簡(jiǎn)單的檢測(cè)方法,所以對(duì)圖片的要求較高,最好在答題卡下面放置一張空白A4紙進(jìn)行拍照,拍的照片不要有過(guò)大角度傾斜,拍到的卡要完整,照片內(nèi)不要有其他干擾物品。**
使用說(shuō)明:
到目錄下運(yùn)行excute.py,選擇答題卡圖片、標(biāo)準(zhǔn)答案文件后,可比對(duì)答案并給出對(duì)錯(cuò)和正確率評(píng)判。
環(huán)境變量中需有python3環(huán)境,需要cv2、pyqt5的依賴包。
python excute.py
文件說(shuō)明:
sheet.py -- 讀取/掃描答題卡的功能函數(shù)
mainwindow.py -- 界面類(lèi)
excute.py -- 啟動(dòng)程序
test/ -- 正常的測(cè)試的圖片和答案文件
在運(yùn)行過(guò)程中,當(dāng)前目錄下出現(xiàn)的jpg文件是過(guò)程中產(chǎn)生的臨時(shí)文件
相關(guān)技術(shù):
尋找圖形輪廓
尋找一個(gè)圖形輪廓前,需要先對(duì)輸入的圖片的一個(gè)復(fù)制進(jìn)行以下幾個(gè)操作:
1. 轉(zhuǎn)換成灰度圖
2. 進(jìn)行高斯模糊以消除噪聲、模糊細(xì)節(jié)
3. 用Canny邊緣檢測(cè)獲取圖中的所有輪廓
4. 在輪廓圖中獲取所有輪廓并用極點(diǎn)表示
然后將所有輪廓按照大小進(jìn)行降序排序,在應(yīng)用中認(rèn)為最大的一個(gè)矩形輪廓(有4個(gè)極點(diǎn))就是答題區(qū)域的邊緣矩形。找到的極點(diǎn)坐標(biāo)在原圖上也是在相同的位置。
四點(diǎn)透視變換調(diào)整圖片
手機(jī)拍攝的圖片會(huì)有一些角度的偏轉(zhuǎn),可以找到四個(gè)矩形的極點(diǎn)后,基于這四個(gè)極點(diǎn)對(duì)整張圖片進(jìn)行四點(diǎn)透視變換,把圖片調(diào)整正,以方便進(jìn)一步的使用。
找到涂黑的選項(xiàng)的坐標(biāo)位置
對(duì)于二值化后的圖找輪廓,然后對(duì)輪廓進(jìn)行矩形擬合,如果找到了跟選項(xiàng)框大小相近的輪廓,就認(rèn)為是涂黑的選項(xiàng),然后對(duì)這個(gè)輪廓求矩值,由這個(gè)公式可求出輪廓的重心:cX=int(M["m10"]/M["m00"]),cY=int(M["m01"]/M["m00"])。
劃分各個(gè)涂卡區(qū)域
答題卡上有答題區(qū)域、學(xué)號(hào)區(qū)域、科目區(qū)域,這些區(qū)域都有固定的相對(duì)位置和相對(duì)大小,因此在尋找若干次矩形輪廓并排除掉最大的區(qū)域后(切圖實(shí)現(xiàn)),可在剩余的圖里找輪廓以確定區(qū)域。
確定選項(xiàng)的值與對(duì)應(yīng)題號(hào)
對(duì)答題卡進(jìn)行透視變換后,每個(gè)位置對(duì)應(yīng)的選項(xiàng)和題號(hào)都是固定的,通過(guò)人為的測(cè)量一些位置并記錄,即可確定每個(gè)坐標(biāo)對(duì)應(yīng)的選項(xiàng)與題號(hào)。
按需寫(xiě)作:
演示視頻:
點(diǎn)擊查看:系統(tǒng)演示視頻
運(yùn)行結(jié)果:
遠(yuǎn)程協(xié)助:
溫馨提示:索煒達(dá).猿創(chuàng)官方提供收費(fèi)遠(yuǎn)程協(xié)助,確保您項(xiàng)目運(yùn)行成功。
點(diǎn)擊查看:遠(yuǎn)程協(xié)助相關(guān)事項(xiàng)
我們提供完整項(xiàng)目文件清單如下:
文件目錄
├ 1.項(xiàng)目源碼
├ 2.運(yùn)行截圖
└ 3.演示視頻