成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識庫 > Python答題卡識別并給出分數(shù)的實現(xiàn)代碼

Python答題卡識別并給出分數(shù)的實現(xiàn)代碼

熱門標簽:百度地圖標注位置怎么修改 無錫客服外呼系統(tǒng)一般多少錢 老人電話機器人 地圖標注視頻廣告 大連crm外呼系統(tǒng) 洪澤縣地圖標注 北京電信外呼系統(tǒng)靠譜嗎 梅州外呼業(yè)務(wù)系統(tǒng) 高德地圖標注是免費的嗎

  哈嘍大家好,這里是滑稽研究所??催^我們圖像處理系列的朋友,應(yīng)該知道識別答題卡那期文章。其中利用opencv框架,完美的實現(xiàn)了答題卡填涂區(qū)域的識別。在后臺有小伙伴想要我完善一下判斷選項對錯并打分的功能,本期我們就來實現(xiàn)一下。
  那么我們來復(fù)習(xí)一下往期的代碼原理。我們需要對圖片素材進行灰度化處理、透視變換、輪廓檢測、腐蝕膨脹處理、區(qū)域分割、邊框計算、區(qū)域計算。實際上我們是通過像素面積的過濾、填涂區(qū)域優(yōu)化和獲取選項坐標來完成答題卡的識別的。
素材:

  那么在獲取到答題卡的填涂區(qū)域之后就好辦了。我們首先分隔答題卡,去除干擾項,然后把不同的區(qū)域打上標簽。我們的答題卡是自上而下排序的。那么我們獲取到的填涂項的x坐標即橫坐標就派上了用場。選項A~E一定是占據(jù)了五個不同的區(qū)域。我們已經(jīng)為不同區(qū)域打上了標簽。剩下的就是交給我們的if判斷語句了。這時我們已經(jīng)為填涂項賦上了實際的意義。即從像素坐標轉(zhuǎn)換成了具有實際意義的選項。
  那y坐標就沒有用了嗎?非也。經(jīng)過上面的處理我們只是得到了填涂區(qū)域?qū)?yīng)的選項。但是我們還沒有進行排序。大家知道無序的選項是沒有意義的。而剛剛我們說了該答題卡的題號順序是自上而下的。因為我們遍歷選項時,是同時得到x、y坐標的,因此我們可以保證得到的坐標是配對的。
  其中橫縱坐標分別填入兩個list中,然后使用zip方法合并list。這時我們再按照每個list的第二個元素也就是縱坐標進行由小到大的排序,就可以得到正確的順序。
  這時我們才真正獲取到了需要的數(shù)據(jù)。即考生填涂的選項順序,我們再新建一個list放正確的答案,與考生的答案進行對比,經(jīng)計算得出考生的正確率,并給出分數(shù)。
  好,思路清晰,上代碼!

import cv2
import numpy as np

path = './test_01.png'
img = cv2.imread(path)

imgGray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
imgBlur = cv2.GaussianBlur(imgGray,(3,3),1)
imgCanny = cv2.Canny(imgBlur,100,120)

cv2.imshow("O", imgCanny)

imgContour = img.copy()

cnts = cv2.findContours(imgCanny, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)[0]
for cnt in cnts:
    area = cv2.contourArea(cnt)
    # 這個輸出各個輪廓的面積
    #print(area)
#
if area >= 500:
    cv2.drawContours(imgContour, cnt, -1, (255, 0, 0), 3)
    peri = cv2.arcLength(cnt, True)
    # 找出輪廓的突變值
    approx = cv2.approxPolyDP(cnt, 0.02 * peri, True)
    # approx找到的是一個輪廓有幾個突變值,有幾個角就會有幾個突變值
    # 返回的是一個list,輸出他的長度,就可以知道到底有幾個角
    #print(approx)
    a1,a2,a3,a4 = list(approx[0][0]),list(approx[1][0]),list(approx[2][0]),list(approx[3][0])

#cv2.imshow("Canny Image",imgContour)

mat1 = np.array([a1,a2,a3,a4],dtype=np.float32)

#透視變換
#計算矩形寬高
width = 402#int(((a4[0]-a1[0])+(a3[0]-a2[0]))/2)
height = 518#int(((a2[1]-a1[1])+(a3[1]-a4[1]))/2)

#計算還原后的坐標
new_a1 = [0,0]
new_a2 = [0,height]
new_a3 = [width,height]
new_a4 = [width,0]

mat2 = np.array([new_a1,new_a2,new_a3,new_a4],dtype=np.float32)
#計算變換矩陣
mat3 = cv2.getPerspectiveTransform(mat1,mat2)

#進行透視變換
res = cv2.warpPerspective(imgCanny,mat3,(width,height))
res1 = cv2.warpPerspective(img,mat3,(width,height))

imgxx = cv2.cvtColor(res1,cv2.COLOR_BGR2GRAY)
binary = cv2.threshold(imgxx,0,255,cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU )[1]
#變換完成
#cv2.imshow("Output",res1)

cntss = cv2.findContours(res, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)[0]
for cnt1 in cntss:
    area1 = cv2.contourArea(cnt1)
    # 這個輸出各個輪廓的面積
    #print(area)
#
    if area1 >= 1500 and area1=1700:
        #把圓的輪廓畫成黑色
        cv2.drawContours(binary, cnt1, -1, (0, 0, 0), 10)

        kernel = np.ones((5, 5), np.uint8)
        imgDialation = cv2.dilate(binary, kernel, iterations=1)

cv2.imshow("Out", imgDialation)

cntsss = cv2.findContours(imgDialation, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)[0]

l1 = []
l2 = []
l3 = ['B','E','A','D','B']

for cnt2 in cntsss:
    area2 = cv2.contourArea(cnt2)
            #print(area)

    if area2 = 1200 and 800=area2:
                #cv2.drawContours(res1, cnt, -1, (0, 255, 0), 5)
                #輪廓長
        peri = cv2.arcLength(cnt2, True)
                # 找出輪廓的突變值
        approx1 = cv2.approxPolyDP(cnt2, 0.02 * peri, True)

        x, y, w, h = cv2.boundingRect(approx1)
                #外接矩形
        #print(x+w//2,y+h//2)

        m = x+w//2
        n = y+h//2
        l1.append(m)
        l2.append(n)
        #拼接兩個一維列表,使x,y坐標配對。
        mix1 = list(zip(l1,l2))
        #按列表第二個元素升序,即按y值由小到大排列。
        #這是我們得到的答案為正確順序。
        mix1.sort(key=lambda x: x[1])

        if 400>x>80 and 50y350:
            cv2.rectangle(res1, (x, y), (x + w, y + h), (0, 0, 255), 2)
            #圓心
            # (圖像,x.y位置,半徑,顏色,輪廓粗細)
            cv2.circle(res1, (x+w//2,y+h//2), 1, (255, 0, 0), 5)

l4 = []
for i in mix1:
    if 75  i[0]  130:
        print("A")
        l4.append('A')
    elif 130  i[0]  185:
        print("B")
        l4.append('B')
    elif 185  i[0]  240:
        print("C")
        l4.append('C')
    elif 240  i[0]  295:
        print("D")
        l4.append('D')
    elif 295  i[0]  350:
        print("E")
        l4.append('E')

print('正確答案:',l3)
print('考生答案',l4)


h = 0
for i in range(0, len(l3)):
    if l3[i] == l4[i]:
        h=h+1
print('得分:',str(h/5*100)+'分')

cv2.imshow("cc Image",res1)

cv2.imshow("dd Image",binary)

cv2.waitKey(0)

運行結(jié)果:


  以上為兩個圖片素材的運行結(jié)果,我們只放出其中一部分。剩余的素材大家自行實驗。
  可以看到,程序成功的識別了考生填涂的答題卡,并給出了考生答案、正答案和考生最后的得分。
  綜上功能實現(xiàn),任務(wù)完成。大家學(xué)會了嗎?

以上就是Python識別答題卡并給出分數(shù)的詳細內(nèi)容,更多關(guān)于Python識別答題卡的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • python OpenCV實現(xiàn)答題卡識別判卷
  • python實現(xiàn)百萬答題自動百度搜索答案
  • python實現(xiàn)用戶答題功能
  • 答題輔助python代碼實現(xiàn)
  • python3.5+tesseract+adb實現(xiàn)西瓜視頻或頭腦王者輔助答題
  • 從0到1使用python開發(fā)一個半自動答題小程序的實現(xiàn)
  • Python沖頂大會 快來答題!
  • python利用opencv如何實現(xiàn)答題卡自動判卷

標簽:安慶 長春 岳陽 泉州 清遠 洛陽 怒江 吉林

巨人網(wǎng)絡(luò)通訊聲明:本文標題《Python答題卡識別并給出分數(shù)的實現(xiàn)代碼》,本文關(guān)鍵詞  Python,答題,卡,識別,并,給出,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python答題卡識別并給出分數(shù)的實現(xiàn)代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python答題卡識別并給出分數(shù)的實現(xiàn)代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产一区二区三区久久精品| 亚洲精品午夜精品| 欧美在线观看视频在线| 情趣网站在线观看| 亚洲一区二区福利| 爱情岛论坛亚洲首页入口章节| 在线视频1区2区| 国产在线一区二区三区欧美| 亚洲国产你懂的| av片在线观看永久免费| 日日夜夜天堂| 国产精品探花一区二区在线观看| 亚洲av少妇一区二区在线观看| 欧美性猛交xxx高清大费中文| 成人综合婷婷国产精品久久| 国产桃色电影在线播放| 欧美专区日韩专区| 亚洲午夜一区二区| 最新四虎影在线在永久观看www| 国产又粗又长又爽视频| 免费影视亚洲| 人妻无码一区二区三区| 国产精选在线视频拍拍拍| 免费成人深夜夜行p站| 亚洲精品在线网址| 深夜宅男网站免费进入| 一区三区自拍| 99在线免费观看视频| 成人午夜视频精品一区| 精品国产免费无码久久久| 亚洲综合激情在线| www.欧美日韩| 99久热re在线精彩视频| 欧美综合另类| 7777精品久久久大香线蕉小说| 手机视频在线观看| 国产黄大片在线观看| 精品久久久久久中文字幕2017| 99热久久这里只有精品| 色视频线观看在线播放| 91成品人影院| 992tv成人国产福利在线| www.avtt| 亚洲综合爱爱久久网| 秋霞午夜一区二区| 欧美精品九九99久久| 国产高清无密码一区二区三区| 4444欧美成人kkkk| 国产一区二区三区在线视频| 蜜桃导航-精品导航| 精品视频色一区| 91免费国产网站| 另类视频欧美| 中国精品18videos性欧美| 天堂在线中文网| 久久99精品久久久久久噜噜| 国产精品无码毛片| 香港三级日本三级| 亚洲乱码视频| 天堂蜜桃一区二区三区| 久99久精品视频免费观看| 国产在线观看高清视频| 1024手机在线视频| 成人精品视频一区| 免费日韩一区二区| 欧美黄免费看| 亚洲男人天堂手机在线| 亚洲电影一区| 久久久久99精品成人片三人毛片| 91专区在线观看| 91caoporm在线视频| 国产又白又嫩又紧又爽18p| 色综合av综合无码综合网站| 国产不卡精品| 麻豆电影在线观看| 国产精品 欧美激情| 69国产精品视频免费观看| 久久99精品久久久久婷婷| 成人444kkkk在线观看| 在线视频观看国产| 啪啪小视频网站| 性色国产成人久久久精品| 亚洲小说春色综合另类网蜜桃| 欧美不卡高清一区二区三区| 成人免费视频在线观看超级碰| 成年人免费网站在线观看| 日韩脚交footjobhd| 久久精品国产99| 中文视频一区视频二区视频三区| 国产一区二区三区免费播放| 欧美色图亚洲激情| 国产成人免费电影| 我不卡影院28| 欧美日韩久久久| 成人淫片免费视频95视频| 桥本有菜亚洲精品av在线| 国产乱码精品一区二区| 国产精品视频一区二区久久| 国产精品一国产精品k频道56| 9色在线视频网站| 福利91精品一区二区三区| 天天操天天舔| 亚洲福利免费| 在线精品视频播放| 精品视频国产| 日本三日本三级少妇三级66| 国产夫妻在线播放| 国产精久久久久| 中文字幕在线永久| 精品高清美女精品国产区| 亚洲色图17p| 欧美成年人视频| 伊人国产在线视频| 久久精品国语| 人妻少妇精品无码专区久久| 超碰在线中文字幕| 成人影院在线| 国产丰满果冻videossex| 国产精品视频一二三| 欧美极品aaaaabbbbb| 成人免费在线视频| 亚州精品国产| 亚洲区一区二区三| 亚洲精品国产精品国自产| 无需播放器亚洲| 超薄肉色丝袜脚交一区二区| 在线xxxxx| 99久久婷婷这里只有精品| 亚洲精品福利在线观看| 欧美韩国亚洲| 久久99热99| 日韩有码免费视频| 久久精品91久久久久久再现| 亚洲男人天堂av网| 中文字幕在线播放av| 最近中文字幕在线中文高清版| julia一区二区三区中文字幕| 污污的网站免费| 999久久久精品一区二区| 成人在线tv视频| 中文字幕有码在线观看| 嫩草嫩草嫩草嫩草嫩草| 狠狠色2019综合网| 奇米一区二区三区四区久久| 六月丁香婷婷激情| 国产精品久久久久久久久妇女| 图片婷婷一区| 国产精品十八以下禁看| 国内精品久久久久影院薰衣草| 超碰在线播放91| 欧美gvvideo网站| 性做爰过程免费播放| 91精产国品一二三| 91丨porny丨最新| 午夜老司机在线观看| 欧美二区三区91| 国产精品专区h在线观看| 免费欧美一区| 久久久久久午夜| 国产亚洲成av人片在线观看| 亚洲欧洲国产精品| 人妻 日韩 欧美 综合 制服| 三妻四妾的电影电视剧在线观看| 日韩在线观看成人| 亚洲精品在线播放| 亚洲人精品午夜射精日韩| 污污视频在线免费| 国产中文字幕视频| 一区二区三区四区中文字幕| 手机av在线| 欧美色图第一页| 樱桃国产成人精品视频| 2020国产精品久久精品美国| 国产精品第一页在线观看| 国产aⅴ激情无码久久久无码| 日韩视频久久| 国产不卡一区| 女人18毛片水真多免费播放| 国产高清视频免费观看| 免费成人深夜天涯网站| 尤物yw午夜国产精品视频明星| 天天操夜夜欢| 国色天香久久精品国产一区| 老司机久久精品| 新片速递亚洲合集欧美合集| 免费一二一二在线视频| 国产porn在线| 少妇无码av无码专区在线观看| 国产亚洲欧洲黄色| 超碰在线97国产| 中文字幕资源网| 日韩av三级在线观看| 人妻少妇一区二区三区| 美女精品一区最新中文字幕一区二区三区| av片在线免费看| 欧美高清视频www夜色资源网| 黄色在线观看网站| 国产精品69毛片高清亚洲| 久久精品99国产| h网站免费在线观看| 欧美高清视频www夜色资源网| 在线精品视频一区二区三四| 国产女人高潮的av毛片| 黄无遮挡免费网站| 中文字幕 日韩 欧美| 中文字幕观看av| 亚洲欧美高清在线| 中文字幕乱码亚洲无线精品一区| eeuss国产一区二区三区四区| 精品丝袜一区二区三区| 亚洲黄色精品| 91视频免费观看网站| 欧美成人a在线| 天堂а√在线中文在线鲁大师| 免费久久99精品国产自在现线| 污污视频网站在线| 日韩你懂的电影在线观看| 久久国产免费视频| 亚洲精品一区在线| 久久国产高清| 国产女女做受ⅹxx高潮| 日产国产欧美视频一区精品| 五丁香在线视频| 久久久久久久久久久综合| 一级毛片视频在线观看| 波多野结衣电车| 日韩禁在线播放| 天堂中文字幕一二区| 26uuu成人网一区二区三区| 三级网站在线播放| 好吊日精品视频| 永久免费黄色片| 国产精品一区二区不卡| 成人性生交视频免费观看| 羞羞视频在线观看一区二区| 蜜桃久久一区二区三区| 国产综合色激情| 香蕉视频污视频| 中文字幕一区二区三区人妻在线视频| 国产特级黄色录像| 国产精品手机在线| 亚洲精品电影院| 男人天堂中文字幕| 性欧美超级视频| 91人妻一区二区三区蜜臀| 国产亚洲欧美精品久久久久久| 美女视频第一区二区三区免费观看网站| 国产在线观看免费播放| 影音先锋中文在线视频| 久久婷婷一区二区三区| 亚洲一区二区四区蜜桃| 亚洲国产伊人| av一区二区在线观看| 在线免费观看www| 思思99re6国产在线播放| 久久免费视频网站| 欧美日韩老妇| 亚洲中无吗在线| 五月婷婷亚洲| 欧美激情一区二区三区高清视频| 亚洲午夜剧场| 伊人久久五月天| http://嫩草影院| 不卡av电影在线观看| 国产美女免费视频| 精品免费视频一区二区| av在线免费观看网| 亚洲嫩草精品久久| av中文字幕一区二区| 伊人久久免费视频| 在线亚洲a色| a黄色在线观看| 小鲜肉gaygays免费动漫| 日韩一级特黄毛片| 欧美专区在线播放| 全球av集中精品导航福利| 日韩毛片视频在线看| 成人免费在线视频播放| 水蜜桃在线视频| 日本1区2区3区视频| 国产私拍福利精品视频二区| 99re视频精品| 大陆av在线播放| 久久久久久亚洲精品杨幂换脸| 免费亚洲精品视频| h网站在线播放| 中文字幕在线看视频国产欧美在线看完整| 国产欧美日韩综合一区在线观看| www.av在线视频| 3p视频在线观看| 久久国产亚洲| 91精品久久久久久9s密挑| 亚洲综合免费观看高清完整版| 欧美成a人片在线观看久| 日韩女同互慰一区二区| 粉嫩aⅴ一区二区三区| 亚洲人精品午夜| 欧美精品一区二区精品网| 91精品在线免费视频| 绯色av蜜臀vs少妇| gogogo高清在线观看免费完整版| www.99re.av| 国产孕妇孕交大片孕| 国产一区 二区 三区一级| 日韩精品综合一本久道在线视频| 久久一二三四区| 天天干天天爱天天操| 国产精品不卡av| 麻豆成人久久精品二区三区红| 粗暴蹂躏中文一区二区三区| 你懂的好爽在线观看| 新天堂中文资源官网在线观看| 中文字幕精品—区二区四季| av播放官网| 超碰97免费观看| www.日韩欧美| 91在线精品| 骚视频在线观看| 99re在线精品| 免费在线成人激情电影| 黄色影院一级片| 欧美精品国产精品久久久| 黄色性生活一级片| 久久久久99精品| 综合免费一区二区三区| av成人app永久免费| 日韩中文字幕在线不卡| 亚洲欧洲激情在线乱码蜜桃|