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

主頁 > 知識庫 > python OpenCV實現(xiàn)答題卡識別判卷

python OpenCV實現(xiàn)答題卡識別判卷

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

本文實例為大家分享了python OpenCV實現(xiàn)答題卡識別判卷的具體代碼,供大家參考,具體內(nèi)容如下

完整代碼:

#導(dǎo)入工具包
import numpy as np
import argparse
import imutils
import cv2
 
# 設(shè)置參數(shù)
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", default="./images/test_03.png",
 help="path to the input image")
args = vars(ap.parse_args())
 
# 正確答案
ANSWER_KEY = {0: 1, 1: 4, 2: 0, 3: 3, 4: 1}
 
def order_points(pts):
 # 一共4個坐標(biāo)點
 rect = np.zeros((4, 2), dtype = "float32")
 
 # 按順序找到對應(yīng)坐標(biāo)0123分別是 左上,右上,右下,左下
 # 計算左上,右下
 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
 
def four_point_transform(image, pts):
 # 獲取輸入坐標(biāo)點
 rect = order_points(pts)
 (tl, tr, br, bl) = rect
 
 # 計算輸入的w和h值
 widthA = np.sqrt(((br[0] - bl[0]) ** 2) + ((br[1] - bl[1]) ** 2))
 widthB = np.sqrt(((tr[0] - tl[0]) ** 2) + ((tr[1] - tl[1]) ** 2))
 maxWidth = max(int(widthA), int(widthB))
 
 heightA = np.sqrt(((tr[0] - br[0]) ** 2) + ((tr[1] - br[1]) ** 2))
 heightB = np.sqrt(((tl[0] - bl[0]) ** 2) + ((tl[1] - bl[1]) ** 2))
 maxHeight = max(int(heightA), int(heightB))
 
 # 變換后對應(yīng)坐標(biāo)位置
 dst = np.array([
  [0, 0],
  [maxWidth - 1, 0],
  [maxWidth - 1, maxHeight - 1],
  [0, maxHeight - 1]], dtype = "float32")
 
 # 計算變換矩陣
 M = cv2.getPerspectiveTransform(rect, dst)
 warped = cv2.warpPerspective(image, M, (maxWidth, maxHeight))
 
 # 返回變換后結(jié)果
 return warped
def sort_contours(cnts, method="left-to-right"):
    reverse = False
    i = 0
    if method == "right-to-left" or method == "bottom-to-top":
        reverse = True
    if method == "top-to-bottom" or method == "bottom-to-top":
        i = 1
    boundingBoxes = [cv2.boundingRect(c) for c in cnts]
    (cnts, boundingBoxes) = zip(*sorted(zip(cnts, boundingBoxes),
                                        key=lambda b: b[1][i], reverse=reverse))
    return cnts, boundingBoxes
def cv_show(name,img):
        cv2.imshow(name, img)
        cv2.waitKey(0)
        cv2.destroyAllWindows()  
 
# 預(yù)處理
image = cv2.imread(args["image"])
contours_img = image.copy()
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (5, 5), 0)
cv_show('blurred',blurred)
edged = cv2.Canny(blurred, 75, 200)
cv_show('edged',edged)
 
# 輪廓檢測
cnts = cv2.findContours(edged.copy(), cv2.RETR_EXTERNAL,
 cv2.CHAIN_APPROX_SIMPLE)[0]
cv2.drawContours(contours_img,cnts,-1,(0,0,255),3) 
cv_show('contours_img',contours_img)
docCnt = None
 
# 確保檢測到了
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
 
# 執(zhí)行透視變換
 
warped = four_point_transform(gray, docCnt.reshape(4, 2))
cv_show('warped',warped)
# Otsu's 閾值處理
thresh = cv2.threshold(warped, 0, 255,
 cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1] 
cv_show('thresh',thresh)
thresh_Contours = thresh.copy()
# 找到每一個圓圈輪廓
cnts = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL,
 cv2.CHAIN_APPROX_SIMPLE)[0]
cv2.drawContours(thresh_Contours,cnts,-1,(0,0,255),3) 
cv_show('thresh_Contours',thresh_Contours)
questionCnts = []
 
# 遍歷
for c in cnts:
 # 計算比例和大小
 (x, y, w, h) = cv2.boundingRect(c)
 ar = w / float(h)
 
 # 根據(jù)實際情況指定標(biāo)準(zhǔn)
 if w >= 20 and h >= 20 and ar >= 0.9 and ar = 1.1:
  questionCnts.append(c)
 
# 按照從上到下進(jìn)行排序
questionCnts = sort_contours(questionCnts,
 method="top-to-bottom")[0]
correct = 0
 
# 每排有5個選項
for (q, i) in enumerate(np.arange(0, len(questionCnts), 5)):
 # 排序
 cnts = sort_contours(questionCnts[i:i + 5])[0]
 bubbled = None
 
 # 遍歷每一個結(jié)果
 for (j, c) in enumerate(cnts):
  # 使用mask來判斷結(jié)果
  mask = np.zeros(thresh.shape, dtype="uint8")
  cv2.drawContours(mask, [c], -1, 255, -1) #-1表示填充
  cv_show('mask',mask)
  # 通過計算非零點數(shù)量來算是否選擇這個答案
  mask = cv2.bitwise_and(thresh, thresh, mask=mask)
  total = cv2.countNonZero(mask)
 
  # 通過閾值判斷
  if bubbled is None or total > bubbled[0]:
   bubbled = (total, j)
 
 # 對比正確答案
 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)
 
 
score = (correct / 5.0) * 100
print("[INFO] score: {:.2f}%".format(score))
cv2.putText(warped, "{:.2f}%".format(score), (10, 30),
 cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 0, 255), 2)
cv2.imshow("Original", image)
cv2.imshow("Exam", warped)
cv2.waitKey(0)

test_03.png

運行效果:

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

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

標(biāo)簽:吉林 泉州 長春 怒江 清遠(yuǎn) 岳陽 安慶 洛陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python OpenCV實現(xiàn)答題卡識別判卷》,本文關(guān)鍵詞  python,OpenCV,實現(xiàn),答題,卡,;如發(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 OpenCV實現(xiàn)答題卡識別判卷》相關(guān)的同類信息!
  • 本頁收集關(guān)于python OpenCV實現(xiàn)答題卡識別判卷的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    男生和女生一起差差差视频| 国产精品久久婷婷六月丁香| 在线免费观看视频网站| 香蕉视频在线免费看| 国产无人区码熟妇毛片多| 韩国中文字幕2020精品| av免费在线播放| 日韩一二三在线视频播| 亚洲在线www| 中文字幕黄色片| 日韩一级黄色大片| 国产欧美日韩麻豆91| 午夜精品久久久久久久99热| 久久一区二区三区电影| 亚洲欧美在线人成swag| 精品美女在线视频| 久久免费看少妇高潮v片特黄| 福利精品视频在线| 动漫美女无遮挡免费| 成人激情电影在线看| 色婷婷综合久久久中文一区二区| 亚洲视频在线视频| 成人欧美一区二区三区在线播放| 国产一区高清在线| 午夜久久久久久噜噜噜噜| 亚洲精品乱码电影在线观看| 久久精品999| 欧美一级艳片视频免费观看| 国产精品萝li| 无码人妻一区二区三区在线视频| 国产精品久久久久aaaa樱花| 久久青草久久| 国产日韩欧美综合在线| 亚洲精品国产一区二区| 国产一区二区在线观看免费| 日本道在线观看一区二区| 日韩大片在线观看| 免费人成在线观看网站| 无码少妇精品一区二区免费动态| 国产精品久久免费视频| 久久精品视频免费观看| 密臀av一区二区三区| 亚欧美在线观看| 精产国品一区二区三区| 日韩电影网在线| 特级西西444www高清大视频| 精品成人久久久| 美日韩在线观看| 自拍偷拍亚洲区| 日本最黄一级片免费在线| 久久综合之合合综合久久| 国产亚洲欧美在线视频| 久久亚洲成人av| h在线观看免费| 精品免费日产一区一区三区免费| 欧美中文日韩| 一区二区三区电影大全| 亚洲第一综合网| 欧美黄色网视频| 97av在线播放| av在线亚洲男人的天堂| 成人毛片在线| 国产成人亚洲综合| heisi视频网在线观看| 国产精品自产拍在线观| 五月婷婷六月合| 国产精品扒开腿做爽爽爽视频| www.日本久久久久com.| 久久久精品久久久久久96| 亚洲另类xxxx| 4438国产精品一区二区| 国产农村一级特黄α**毛片| 一区二区视频| 午夜精品福利一区二区三区蜜桃| 精品国产乱码久久久久久鸭王1| 午夜少妇久久久久久久久| 爆操欧美孕妇| 成人国产精品久久| 最新电影电视剧在线观看免费观看| 国产制服91一区二区三区制服| 亚在线播放中文视频| 欧美日韩中字一区| 成人精品视频一区二区三区尤物| 99re6这里有精品热视频| 日韩欧美一区二区三区在线视频| 天堂成人在线观看| 欧美性xxxx交| 粉嫩av一区二区三区天美传媒| xfplay每日更新av资源在线| 精品国产一区二区在线观看| 日韩精品一区二区三区不卡| 久久大香伊蕉在人线观看热2| 亚洲日本成人在线观看| 韩国一区二区在线播放| 91麻豆国产福利精品| 欧美v亚洲v综合ⅴ国产v| 欧美黑人狂野猛交老妇| 久久99精品久久久久久水蜜桃| 美女福利网站视频在线观看| 99re热这里只有精品免费视频| 国产成人免费高清| 国产成人精品综合在线观看| 色妞色视频一区二区三区四区| 国产中文字幕一区二区三区| 欧美精品一区二区高清在线观看| 日韩欧美国产高清| 欧美国产成人精品一区二区三区| 午夜私人影院久久久久| 亚洲欧美日韩一区成人| 欧美日韩一级片网站| 国产在成人精品线拍偷自揄拍| 成人在线观看免费网站| 在线精品亚洲一区二区不卡| 美女在线一区| 四虎影视最新网址| 亚洲久久中文字幕| 久久综合图片| 精品福利久久久| 色综合色综合网色综合| 国内外成人激情免费视频| 精品一区二区影视| 欧美三级成人观看| 国产网站在线| 国产xxxxx视频| 欧洲黄色一级视频| 性网站在线播放| 国产精品久久久一本精品| 日韩精品第一| 欧美一区二区在线免费播放| 欧美爱爱视频免费看| 五月天久久777| 亚洲在线成人| 成年人的黄色片| 狠狠干综合网| 热舞福利精品大尺度视频| 国产后入清纯学生妹| 黑人与亚洲人色ⅹvideos| 热re久久精品国产99热| 717影院理论午夜伦不卡久久| 亚洲国产一区二区视频| 欧美在线一卡| 日韩免费高清视频网站| 日韩不卡在线观看日韩不卡视频| 国产毛片精品一区| 91caoporm在线视频| 国产福利片一区二区| 久久伊人蜜桃av一区二区| 国偷自产视频一区二区久| 国产超碰在线一区| 性生交大片免费看女人按摩| 午夜精品久久久久久| 亚洲少妇自拍| 亚洲天堂2020| 欧美成人猛片aaaaaaa| 国产美女精品一区二区三区| 成人中文字幕在线播放| 高潮无码精品色欲av午夜福利| 欧美2区3区4区| 韩国自拍一区| 中文字幕成人乱码在线电影| 中文字幕av一区二区三区人| 久久久久看片| 成人免费a级片| 另类小说综合欧美亚洲| 日韩三级精品| 亚洲国产果冻传媒av在线观看| 国产午夜精品一区二区三区四区| 亚洲国产婷婷综合在线精品| 免费男女羞羞的视频网站中文字幕| 在线sese| 日韩综合在线观看| 69av二区| 欧美日精品一区视频| 国模吧一区二区三区| 黄色网页大全| 熟女少妇在线视频播放| 欧美肥老太太性生活| 久草免费在线观看| 国产高清视频一区三区| av中文网站| 久久久精品免费观看| 日韩成人在线一区| 国产69精品久久久久久久| 欧美韩国一区| 亚洲77777| 欧美性大战久久久久久久蜜臀| 乱子伦一区二区| 九色porny视频在线观看| 欧美日韩黄视频| 国产一区二区av在线| 国自产拍偷拍福利精品免费一| 美美哒免费高清在线观看视频一区二区| 最新中文字幕一区二区三区| 午夜精品在线播放| 1pondo在线播放免费| 亚洲精品韩国| 先锋影音av资源在线| 国产中文字幕一区二区三区| 国内av一区二区三区| 日本在线视频网| 一区二区自拍偷拍| 怡红院一区二区| 国产河南妇女毛片精品久久久| 伊人天天久久大香线蕉av色| 亚欧洲乱码视频| 国产精品久久久久久久免费看| 丝袜老师办公室里做好紧好爽| 91免费观看| 久久人人爽人人爽人人片| 日韩欧美一区二区三区免费观看| 偷拍自拍在线看| 美女毛片在线观看| 天堂av一区二区三区在线播放| 97精品人妻一区二区三区| 2021天天操| 神马久久精品综合| 国模视频一区二区三区| 日韩三级中文字幕| av毛片午夜不卡高**水| 激情综合五月天| 亚洲成人不卡| a级黄色一级片| 免费在线毛片网站| 日本一区免费| 久久免费少妇高潮99精品| 神马午夜精品95| 亚洲欧美精品一区二区三区| 91国产在线免费观看| 国产精品久久久免费看| 最近中文字幕2019第二页视频| 国产亚洲色婷婷久久99精品| 高清在线视频日韩欧美| 欧美gay囗交囗交| 久久久久久一区二区三区四区别墅| 成人在线二区| 欧美成人激情图片网| www.麻豆| 色菇凉天天综合网| 亚洲欧美激情网| 精品一区二区在线免费观看| 国产野外战在线播放| 91麻豆精品国产91久久综合| 88av.com| 美女扒开腿免费视频| 欧美69xx性欧美| 国产成人精品亚洲| 国内免费久久久久久久久久久| 麻豆精品在线视频| 一级片视频网站| www.三级.com| 免费观看亚洲视频大全| 日韩精品一区二区三区三区免费| 免费黄色网址网站| 丰满饥渴老女人hd| 成年女人毛片| 91美女在线| 波多野结衣一区| h视频在线免费看| 青青草原综合久久大伊人精品| av观看久久| 国产高清中文字幕在线| 亚洲国模精品一区| 欧美欧美欧美欧美| 亚洲日韩色图| 精品国产一区二区精华| 欧美日韩国内| 亚洲女在线观看| 亚洲人成影院77777| 欧美刺激性大交免费视频| 亚洲欧美日韩国产成人综合一二三区| 国产极品久久久久久久久波多结野| av在线影音| 亚洲制服欧美中文字幕中文字幕| 美女福利一区二区| 一本一道波多野毛片中文在线| 精品国产午夜| 欧美日韩一区二区三区不卡视频| 亚洲国产精品自拍| 美女三级99| 亚洲精品免费网站| 国产在线欧美在线| 国产一区自拍视频| 国产黄色免费| 蜜臀av国产精品久久久久| 成人国产精品久久久| 天天插天天色| 久久久久综合网| 国内精品免费一区二区三区| 日韩中文视频免费在线观看| 国产一区二区四区| 亚洲国产成人不卡| 久久久久久国产免费| 不卡一二三区首页| 国产精品劲爆视频| 神马午夜久久| 日韩123区| 中文在线综合| 好吊日精品视频| 精品国产免费av| 国产亚洲欧美视频| 欧美精品免费视频| 在线播放日韩欧美| 国产免费无码一区二区| 欧美一级在线免费观看| 欧美日韩一卡二卡三卡| 这里只有精品视频在线| 亚洲国产视频一区| 性史性dvd影片农村毛片| 在线视频国内一区二区| 午夜一级黄色片| 日本视频在线免费观看| 超碰97在线人人| 国产一级片免费在线观看| 在线播放豆国产99亚洲| av电影免费在线看| 成人在线视频一区二区| jlzzjlzz亚洲女人| 激情久久久久久久久久久久久久久久| 国产不卡精品| 日韩欧美精品网址| 欧美专区一二三| 亚洲啪啪综合av一区二区三区| 亚洲视频日本| 日韩成人av一区| 精品美女一区二区| 日韩精品视频一区二区在线观看| 欧美日韩中文另类| 米奇777在线欧美播放|