色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運營的一線實戰(zhàn)洞察。

OpenCV模板匹配實戰(zhàn):信用卡卡號識別全流程詳解

OpenCV模板匹配實戰(zhàn):信用卡卡號識別全流程詳解 在我接觸OpenCV的頭半年里做得最多的項目就是各種“數(shù)字識別”儀表盤讀數(shù)、快遞單號、批量文件編號、貨架標簽最后才輪到信用卡卡號。實話實說用模板匹配Template Matching這套路去識別信用卡卡號可以說是OpenCV入門階段最適合練手的實戰(zhàn)項目之一——它不光能讓你把圖像預(yù)處理、輪廓查找、匹配算法這些零散知識點串成一條完整的流水線而且工程落地時遇到的各種奇葩問題足夠你攢下半年的踩坑經(jīng)驗。這個項目解決的并不是什么高深的學(xué)術(shù)問題它的核心邏輯非常簡單準備一套0到9的數(shù)字模板圖然后從信用卡照片里圈出卡號區(qū)域的每個數(shù)字逐一和模板做“長得像不像”的比對像誰就認成誰。這里用到的模板匹配cv2.matchTemplate是OpenCV里一個很基礎(chǔ)但極其好用的工具它對光線、角度變化不敏感的場景非常省事不需要訓(xùn)練數(shù)據(jù)集也不需要GPU只要模板做得干凈識別率能做到很高。這篇文章適合兩類人一類是剛?cè)腴TOpenCV、想找個完整項目練手的新手另一類是想把模板匹配用在實際業(yè)務(wù)場景比如識別會員卡號、訂單號、證件編號但不確定怎么落地的開發(fā)者。我會把整個流程從環(huán)境搭建、圖片處理、輪廓定位到模板匹配和最終識別結(jié)果一條線講清楚包括參數(shù)怎么調(diào)、遇到報錯怎么處理、輪廓排序有哪些深坑全部按我的實際經(jīng)驗來寫。你可以直接照著抄改改路徑就能跑。1. 項目整體設(shè)計與思路拆解1.1 為什么選模板匹配而不直接上深度學(xué)習(xí)很多人一聽到“OCR識別”就覺得得用深度學(xué)習(xí)什么CRNN、CRAFT、PaddleOCR輪番上陣。但實際在做工程選型時我最常說的一句話是如果一把螺絲刀能解決的問題別先扛著電鉆上場。信用卡卡號識別這個場景有一個非常特殊的前提字體是高度統(tǒng)一的。銀行卡號大多是凸印或印刷字體每家銀行雖然有不同的設(shè)計但卡號數(shù)字的字體形態(tài)相對固定。更重要的是模板匹配在OpenCV里有現(xiàn)成的函數(shù)cv2.matchTemplate不需要標注數(shù)據(jù)、不需要訓(xùn)練幾十行代碼就能把識別結(jié)果跑出來。相比之下深度學(xué)習(xí)方案要準備訓(xùn)練集、搭建模型、調(diào)參整個工程鏈路重了不止一個量級。模板匹配的局限也很明顯它對旋轉(zhuǎn)、尺度變化、光照變化比較敏感。但信用卡照片的拍攝環(huán)境通??煽刂灰陬A(yù)處理階段把圖像擺正、統(tǒng)一尺寸模板匹配完全能勝任。所以我個人的選型原則是先評估任務(wù)約束如果字體固定、背景可控模板匹配永遠是最快的方案。反過來如果場景里字體花哨、角度多變那就別硬撐老老實實上深度學(xué)習(xí)。1.2 完整識別流程從圖片到一串?dāng)?shù)字整個識別的流程可以拆成五個環(huán)節(jié)每個環(huán)節(jié)缺一不可模板圖處理準備一張包含0到9十個數(shù)字的模板圖切割成10個小圖每個數(shù)字存成獨立文件或記錄下坐標。信用卡圖像預(yù)處理讀入信用卡照片轉(zhuǎn)灰度、降噪、檢測邊緣找到圖像里的卡片區(qū)域??ㄌ枀^(qū)域定位在卡片區(qū)域內(nèi)根據(jù)輪廓的幾何特征長寬比、面積把卡號區(qū)域的四組數(shù)字框出來。數(shù)字分割把每一組數(shù)字再裁剪成單個數(shù)字的小圖統(tǒng)一縮放到與模板一致的尺寸這一步很關(guān)鍵。匹配識別對每個單數(shù)字小圖和10個模板逐一做匹配取匹配分數(shù)最高的模板作為識別結(jié)果最后拼接成完整的卡號字符串。這個流程看起來平淡無奇但每個環(huán)節(jié)里都有不少細節(jié)。比如第二步如果照片里卡片是傾斜的你可能要先做透視變換把卡片“擺正”否則第四步的縮放和匹配會亂套。再比如第五步匹配算法有TM_CCOEFF_NORMED、TM_CCORR_NORMED、TM_SQDIFF_NORMED三種常見模式選哪個、閾值設(shè)多少都是有講究的。2. 環(huán)境搭建與圖像預(yù)處理基礎(chǔ)2.1 Python與OpenCV環(huán)境安裝實操在開始寫代碼之前先把環(huán)境搞定。很多新手卡在第一步就崩潰了pip install opencv-python裝完一import cv2就報錯ModulenotfoundError或者DLL加載失敗。這里說下我實測下來的安裝方案。我建議直接用Python 3.8到3.11之間的版本太新的Python版本比如3.13剛發(fā)布時容易出現(xiàn)opencv-python輪子還沒跟上導(dǎo)致裝不上的問題。安裝命令很簡單pip install opencv-python pip install numpy如果需要用到cv2.imshow這種圖形界面顯示功能在Windows上沒問題但如果你用的是無桌面環(huán)境的Linux服務(wù)器要額外裝opencv-python-headless而不是opencv-python否則會報找不到顯示設(shè)備的錯。如果你用Anaconda也可以這條路conda install -c conda-forge opencv裝完之后驗證一下python -c import cv2; print(cv2.__version__)能正常輸出版本號說明OpenCV裝好了。另外強烈建議用虛擬環(huán)境不管是conda創(chuàng)建還是python -m venv都比你把所有包堆在全局環(huán)境里省心得多。2.2 PyCharm/VSCode中跑OpenCV項目的配置要點編輯器這塊我日常主力是PyCharm但VSCode我也經(jīng)常用。兩個環(huán)境都不復(fù)雜但有三個通病需要提前避開。第一個通病是解釋器選錯。PyCharm里打開項目后右下角或Settings里一定要確認Project Interpreter選的是你裝好OpenCV的那個虛擬環(huán)境而不是系統(tǒng)默認的Python。選錯的結(jié)果就是你在終端里import cv2沒問題但PyCharm里一運行就紅色波浪線加ModuleNotFoundError。VSCode里則要留意左下角的Python解釋器狀態(tài)點擊后手動選擇虛擬環(huán)境路徑。第二個通病是中文字體亂碼。OpenCV的cv2.putText默認不支持中文往圖上寫漢字會顯示成????。這個項目里識別的都是數(shù)字所以沒這個問題但你以后做別的項目要提前知道。第三個通病是圖像路徑別帶中文。cv2.imread在Windows上對中文路徑支持不好經(jīng)常讀不進圖片返回None半天查不出原因。項目路徑、圖片路徑、模板路徑全部用英文命名。3. 核心實現(xiàn)信用卡卡號識別完整代碼拆解3.1 第一步提取數(shù)字模板模板匹配的前提是有一套規(guī)范的數(shù)字模板。網(wǎng)上能找到不少信用卡模板圖通常是一張包含0到9十個數(shù)字的長條圖。拿到后要做的事是把每個數(shù)字單獨切出來。這里有個技巧不要手動一個個數(shù)字截圖用輪廓查找自動切開。模板圖一般是黑色背景上的白色數(shù)字或者反過來處理起來很直接。import cv2 import numpy as np # 讀入模板圖轉(zhuǎn)灰度再轉(zhuǎn)二值圖像 template_img cv2.imread(template/credit_card_template.png) template_gray cv2.cvtColor(template_img, cv2.COLOR_BGR2GRAY) # 注意這里用二值化把數(shù)字變成白色前景背景為黑色 ret, template_bin cv2.threshold(template_gray, 127, 255, cv2.THRESH_BINARY_INV) # 查找數(shù)字輪廓 cnts, hierarchy cv2.findContours(template_bin.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 可視化看一下提取出的輪廓 cv2.drawContours(template_img, cnts, -1, (0, 0, 255), 2) cv2.imshow(Template Contours, template_img) cv2.waitKey(0)輪廓檢測里有個大坑OpenCV的findContours返回值的寫法在版本間有變化。早期的OpenCV 3.x返回三個值image, contours, hierarchy從OpenCV 4.x開始只返回兩個值。如果你用的是4.x代碼寫成_, cnts, hierarchy cv2.findContours(...)會直接報錯。統(tǒng)一用下面這種寫法最保險cnts, hierarchy cv2.findContours(template_bin.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)3.2. 模板輪廓排序與切割拿到輪廓之后輪廓的排列順序是不固定的需要按x坐標從左到右排序否則模板數(shù)字的順序就亂了。排序之后每個輪廓的最小外接矩形就是數(shù)字的邊界框。# 輪廓排序從左到右 cnts sorted(cnts, keylambda c: cv2.boundingRect(c)[0]) digits {} # 用字典存模板數(shù)字 for i, c in enumerate(cnts): (x, y, w, h) cv2.boundingRect(c) # 過濾掉明顯的噪聲輪廓 if w 10 or h 10: continue roi template_bin[y:yh, x:xw] roi cv2.resize(roi, (57, 88)) # 統(tǒng)一尺寸后面匹配用 digits[i] roi cv2.rectangle(template_img, (x, y), (xw, yh), (0, 255, 0), 2)這里幾個參數(shù)值得說明。尺寸(57,88)是我測過的一組比較穩(wěn)的模板尺寸其實無所謂精確值但必須保證后續(xù)待識別的數(shù)字小圖都縮放到完全一樣的尺寸。resize的時候特別注意模板數(shù)字和待識別數(shù)字的粗細、筆畫寬度要接近否則匹配率會掉很多。3.3 信用卡圖像預(yù)處理灰度、邊緣檢測與卡片區(qū)域提取處理完模板接下來處理信用卡照片。理想情況是一張放在純色背景上的卡片但現(xiàn)實往往是有桌面紋路、光影過渡、甚至手指遮擋。預(yù)處理的目的就是盡可能把這些問題干掉。# 讀入信用卡圖片 card_img cv2.imread(images/credit_card_sample.png) card_gray cv2.cvtColor(card_img, cv2.COLOR_BGR2GRAY) # 降噪高斯模糊 card_gray cv2.GaussianBlur(card_gray, (5, 5), 0) # 邊緣檢測 edged cv2.Canny(card_gray, 75, 200) # 查找輪廓 cnts_card, _ cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) cnts_card sorted(cnts_card, keycv2.contourArea, reverseTrue)[:5]為什么先Canny再findContours因為直接對灰度圖找輪廓會找到一堆紋理噪聲而Canny算子會把圖像的邊緣“骨架”提取出來再找輪廓時就能框出卡片區(qū)域。Canny的兩個閾值參數(shù)75和200是我在大多數(shù)銀行卡照片上測試后的經(jīng)驗值值設(shè)得太低會框出太多無關(guān)邊緣設(shè)得太高卡片邊緣可能斷裂。找到輪廓之后遍歷每個輪廓用cv2.approxPolyDP做多邊形逼近找出有四個頂點的輪廓——因為信用卡是矩形。for c in cnts_card: peri cv2.arcLength(c, True) approx cv2.approxPolyDP(c, 0.02 * peri, True) if len(approx) 4: card_contour approx break拿到卡片輪廓后如果照片里卡片是歪的用cv2.getPerspectiveTransform做透視變換把卡片拉正。這個過程俗稱“擺正圖片”做完之后卡號區(qū)域會是水平的后續(xù)切割數(shù)字會輕松很多。透視變換的代碼之前專門寫過一篇這里直接給最小可用版def order_points(pts): # 按照左上、右上、右下、左下排列四個點 rect np.zeros((4, 2), dtypefloat32) s pts.sum(axis1) rect[0] pts[np.argmin(s)] rect[2] pts[np.argmax(s)] diff np.diff(pts, axis1) rect[1] pts[np.argmin(diff)] rect[3] pts[np.argmax(diff)] return rect rect order_points(card_contour.reshape(4, 2)) (tl, tr, br, bl) rect widthA np.linalg.norm(br - bl) widthB np.linalg.norm(tr - tl) maxWidth max(int(widthA), int(widthB)) heightA np.linalg.norm(tr - br) heightB np.linalg.norm(tl - bl) maxHeight max(int(heightA), int(heightB)) dst np.array([[0, 0], [maxWidth - 1, 0], [maxWidth - 1, maxHeight - 1], [0, maxHeight - 1]], dtypefloat32) M cv2.getPerspectiveTransform(rect, dst) warped cv2.warpPerspective(card_gray, M, (maxWidth, maxHeight))3.4 卡號輪廓定位形態(tài)學(xué)處理與分組卡片擺正后接下來要找到卡號區(qū)域。這里用兩種方式結(jié)合先做大津二值化再用形態(tài)學(xué)操作把相鄰數(shù)字連成一組最后按輪廓篩選??ㄌ枀^(qū)域在大部分信用卡上是“深色背景淺色文字”或“銀白色凸字”光照不同表現(xiàn)差很多。所以我建議先做一步cv2.threshold(card_gray, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)讓OpenCV自動算閾值。然后用一個較大尺寸的內(nèi)核做閉運算把同一組的4個數(shù)字連通成一個或者兩個大輪廓。_, thresh cv2.threshold(warped, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU) # 閉運算先膨脹后腐蝕把相鄰數(shù)字連成組 kernel cv2.getStructuringElement(cv2.MORPH_RECT, (10, 5)) closed cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel) cnts_group, _ cv2.findContours(closed.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)這里的內(nèi)核尺寸(10,5)很關(guān)鍵。信用卡卡號通常是4個數(shù)字一組數(shù)字之間間距較小而組與組之間間距較大。把橫向內(nèi)核寬度設(shè)為10剛好能把一組數(shù)字粘在一起但不會把兩組粘起來。這個值需要根據(jù)你實際圖片的卡號間隔微調(diào)遇到間隔特別大的卡號調(diào)成(20,5)或者用兩輪閉運算。3.5 對每組卡號做數(shù)字切分拿到分組輪廓后按x坐標排序?qū)γ總€組做同樣的事情二值化、找輪廓、按x排序、切分、逐個縮放。# 存儲最終識別結(jié)果 card_number for group in sorted(cnts_group, keylambda c: cv2.boundingRect(c)[0]): (gx, gy, gw, gh) cv2.boundingRect(group) group_roi thresh[gy:gygh, gx:gxgw] # 對組內(nèi)數(shù)字查找輪廓 digit_cnts, _ cv2.findContours(group_roi.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) digit_cnts sorted(digit_cnts, keylambda c: cv2.boundingRect(c)[0]) for dc in digit_cnts: (dx, dy, dw, dh) cv2.boundingRect(dc) # 過濾噪點輪廓 if dw 5 or dh 5: continue digit_roi group_roi[dy:dydh, dx:dxdw] digit_roi cv2.resize(digit_roi, (57, 88)) # 與所有模板做匹配 scores [] for digit, template_roi in digits.items(): result cv2.matchTemplate(digit_roi, template_roi, cv2.TM_CCOEFF_NORMED) _, max_val, _, _ cv2.minMaxLoc(result) scores.append(max_val) # 取匹配度最高的數(shù)字 best_digit np.argmax(scores) conf scores[best_digit] card_number str(best_digit) print(識別結(jié)果, card_number)這段代碼是整個項目的核心里面有幾個點要重點講。第一個是cv2.matchTemplate的返回值。它返回的是一張“相似度圖”每個位置的值代表模板在圖像該位置匹配的程度。用cv2.minMaxLoc可以拿到最大最小值及其位置。因為數(shù)字小圖已經(jīng)和模板resize成一樣大小所以這張相似度圖實際上就一個點或者幾十個像素取最大值就是匹配度。這種方法雖然簡單但在固定字體場景下效果出奇地穩(wěn)。第二個是匹配方法的選擇。我用的是cv2.TM_CCOEFF_NORMED也就是歸一化相關(guān)系數(shù)取值范圍是-1到1越接近1越相似。它對光照變化有一定的抵抗能力是模板匹配里最推薦的方法。TM_SQDIFF_NORMED是歸一化平方差值是越小越相似如果你用這個方法取分邏輯要反過來找最小值。TM_CCORR_NORMED是歸一化互相關(guān)對亮度變化很敏感實際工程里我很少用。第三個是對匹配結(jié)果的置信度判斷。實戰(zhàn)中不能只看最高分還要看這個最高分夠不夠高。比如最高分只有0.4說明這個數(shù)字和任何模板都不像大概率是分割出問題了。實際使用中我一般設(shè)置一個閾值0.6低于這個分數(shù)就把結(jié)果標成?提醒人工復(fù)查。3.6 完整代碼整合把項目跑起來為了保證你能直接復(fù)現(xiàn)我把完整流程整理成了函數(shù)式代碼你把模板圖和信用卡圖換成自己手頭的圖片即可運行。import cv2 import numpy as np def load_template(template_path): 加載模板圖切分出0-9數(shù)字返回字典{數(shù)字: 模板ROI} template_img cv2.imread(template_path) template_gray cv2.cvtColor(template_img, cv2.COLOR_BGR2GRAY) _, template_bin cv2.threshold(template_gray, 127, 255, cv2.THRESH_BINARY_INV) cnts, _ cv2.findContours(template_bin.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) cnts sorted(cnts, keylambda c: cv2.boundingRect(c)[0]) digits {} for i, c in enumerate(cnts): (x, y, w, h) cv2.boundingRect(c) if w 10 or h 10: continue roi template_bin[y:yh, x:xw] roi cv2.resize(roi, (57, 88)) digits[i] roi return digits def recognize_card_number(card_path, digits): 識別信用卡卡號返回識別出的數(shù)字字符串 card_img cv2.imread(card_path) card_gray cv2.cvtColor(card_img, cv2.COLOR_BGR2GRAY) card_gray cv2.GaussianBlur(card_gray, (5, 5), 0) edged cv2.Canny(card_gray, 75, 200) cnts_card, _ cv2.findContours(edged.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) cnts_card sorted(cnts_card, keycv2.contourArea, reverseTrue)[:5] card_contour None for c in cnts_card: peri cv2.arcLength(c, True) approx cv2.approxPolyDP(c, 0.02 * peri, True) if len(approx) 4: card_contour approx break if card_contour is None: print(未找到卡片輪廓) return # 透視變換擺正 rect order_points(card_contour.reshape(4, 2)) (tl, tr, br, bl) rect widthA np.linalg.norm(br - bl) widthB np.linalg.norm(tr - tl) maxWidth max(int(widthA), int(widthB)) heightA np.linalg.norm(tr - br) heightB np.linalg.norm(tl - bl) maxHeight max(int(heightA), int(heightB)) dst np.array([[0, 0], [maxWidth - 1, 0], [maxWidth - 1, maxHeight - 1], [0, maxHeight - 1]], dtypefloat32) M cv2.getPerspectiveTransform(rect, dst) warped cv2.warpPerspective(card_gray, M, (maxWidth, maxHeight)) # 二值化 閉運算 _, thresh cv2.threshold(warped, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU) kernel cv2.getStructuringElement(cv2.MORPH_RECT, (10, 5)) closed cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, kernel) cnts_group, _ cv2.findContours(closed.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 篩選可能是卡號組的輪廓 group_boxes [] for c in cnts_group: (x, y, w, h) cv2.boundingRect(c) if w 40 and 15 h 40: group_boxes.append((x, y, w, h)) group_boxes.sort(keylambda b: b[0]) card_number for (gx, gy, gw, gh) in group_boxes: group_roi thresh[gy:gygh, gx:gxgw] digit_cnts, _ cv2.findContours(group_roi.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) digit_cnts sorted(digit_cnts, keylambda c: cv2.boundingRect(c)[0]) for dc in digit_cnts: (dx, dy, dw, dh) cv2.boundingRect(dc) if dw 5 or dh 5: continue digit_roi group_roi[dy:dydh, dx:dxdw] digit_roi cv2.resize(digit_roi, (57, 88)) scores [] for digit, template_roi in digits.items(): result cv2.matchTemplate(digit_roi, template_roi, cv2.TM_CCOEFF_NORMED) _, max_val, _, _ cv2.minMaxLoc(result) scores.append(max_val) best_digit np.argmax(scores) card_number str(best_digit) return card_number if __name__ __main__: digits_template load_template(template/credit_card_template.png) result recognize_card_number(images/card1.png, digits_template) print(識別結(jié)果, result)4. 常見問題與排查技巧實錄4.1 模板匹配不準問題多半出在預(yù)處理很多人在這個項目里遇到的第一大坑是匹配老是認錯數(shù)字比如把3認成8、把0認成6。這時候別急著調(diào)匹配算法的參數(shù)先檢查兩個地方。第一檢查二值化方向。如果你的模板是白底黑字而信用卡卡號在二值化后是黑底白字或者反過來那匹配率直接崩盤。這種問題用cv2.bitwise_not把圖像顏色反轉(zhuǎn)一下就能解決。我習(xí)慣統(tǒng)一使用“黑底白字”也就是數(shù)字對應(yīng)灰度值255背景為0。第二檢查resize后的比例。模板里的數(shù)字和待識別數(shù)字的寬高比要接近否則縮放到同一尺寸后數(shù)字會被拉伸變形。比如模板數(shù)字偏“瘦長”而你切出來的數(shù)字偏“矮胖”直接resize到一樣大就會變形。解決辦法是在切分模板的時候就歸一化寬高比把模板轉(zhuǎn)正后再統(tǒng)一寬高。4.2 輪廓排序不對導(dǎo)致卡號錯亂這是排序穩(wěn)定性問題。sorted(cnts, keylambda c: cv2.boundingRect(c)[0])這個寫法是按x坐標排序正常情況下沒問題但如果卡片沒完全擺正組內(nèi)四個數(shù)字的x坐標可能不在同一水平線上導(dǎo)致某些數(shù)字的boundingRect起點比前面數(shù)字更靠左。我的經(jīng)驗是先用x坐標排序再檢查每組數(shù)字數(shù)量。如果發(fā)現(xiàn)某一組數(shù)字數(shù)量不是4或預(yù)期值多半是排序或者分割出了問題。此時可以把每個數(shù)字的輪廓畫出來保存成調(diào)試圖一眼就能看出問題在哪。別忘了信用卡卡號一般是4組每組4個數(shù)字也就是總共16個數(shù)字。如果你的結(jié)果不是16個肯定在分組或切分環(huán)節(jié)出了錯。4.3 光線反光導(dǎo)致識別失敗的處理信用卡表面通常有塑料反光拍出來的照片在卡號區(qū)域容易有大片白色反光。反光在灰度圖里表現(xiàn)是局部亮度過高邊緣會淡掉甚至消失。處理方法有兩個第一種在預(yù)處理時試用自適應(yīng)閾值cv2.adaptiveThreshold替代全局閾值。自適應(yīng)閾值會根據(jù)每個像素鄰域的亮度動態(tài)計算閾值對光照不均的圖特別有效代價是會多一些噪聲需要配合中值濾波去噪。第二種在采集端就控制好環(huán)境。如果是做批量識別的設(shè)備盡量用均勻的光源避免點光源直射卡片。這是我做過幾個落地項目后最深的體會很多識別問題不是因為算法弱而是因為圖像質(zhì)量太差。把光源調(diào)好識別率能直接提升20個百分點。4.4 OpenCV版本差異與常見報錯匯總這里把我在這個項目里踩過的環(huán)境問題整理成一個速查表。報錯信息原因分析解決方案ModuleNotFoundError: No module named cv2OpenCV未安裝或解釋器選錯在正確的虛擬環(huán)境執(zhí)行pip install opencv-pythonerror: (-215:Assertion failed) !ssize.empty() in function resizecv2.imread沒讀到圖片后面resize到空圖檢查圖片路徑、路徑是否含中文findContours() takes 2 positional arguments but 3 were given用了OpenCV 3.x的老式三返回值寫法改為cnts, _ cv2.findContours(...)unable to open X serverLinux無圖形界面下用了imshow安裝opencv-python-headless或改用import cv2 HEADLESS模式TypeError: object of type NoneType has no len()上一步處理的圖全是None定位到是imread讀不到圖還是threshold結(jié)果為空4.5 提高識別率的小技巧項目穩(wěn)定跑通之后可以再往上提升識別精度我這里有幾個經(jīng)過實測的小改動。第一個是用多重匹配把TM_CCOEFF_NORMED和TM_SQDIFF_NORMED的結(jié)果綜合起來判斷。如果兩個方法給出的結(jié)果不一致說明這個數(shù)字本身就模糊需要更高置信度才可信。第二個是對最終識別結(jié)果做校驗信用卡卡號有Luhn算法校驗位16位卡號的最后一位是校驗位可以根據(jù)前15位算出來。這個校驗?zāi)軘r住絕大多數(shù)誤識別。第三個是模板不夠用就做數(shù)據(jù)增強對模板做不同尺度的縮放、加一點高斯噪聲、小角度旋轉(zhuǎn)能提高匹配的魯棒性。5. 項目應(yīng)用場景擴展與后續(xù)優(yōu)化方向這個項目的價值遠遠不止于識別信用卡卡號。只要把模板圖換一下同樣的流程可以識別身份證號碼、條碼下方的數(shù)字、快遞單上的單號、實驗室試管的編號、零件上的序列號。我之前就用這套代碼識別過上千張產(chǎn)品標簽上的序列號準確率能到98%以上處理一張圖不到300毫秒完全夠用。后續(xù)優(yōu)化方向有三個一是接一個自動透視校正模塊讓卡片角度隨意也能識別二是把模板替換成自己的數(shù)據(jù)用聚類生成模板適配更多字體三是把圖像處理流程封裝成Docker鏡像或API服務(wù)接到生產(chǎn)環(huán)境里做批量識別。如果你想做實時識別還可以加上一個簡單的視頻幀處理循環(huán)每幀調(diào)用一次識別函數(shù)就是一套卡號識別系統(tǒng)。最后分享一個我在實際使用中的體會模板匹配這種“古老”的技術(shù)在今天依然有它的生態(tài)位。深度學(xué)習(xí)在復(fù)雜場景里確實更強但模板匹配的優(yōu)勢是簡單、干凈、可解釋、不依賴算力。當(dāng)你理解了這套邏輯再看深度學(xué)習(xí)方案里的空間變換網(wǎng)絡(luò)、注意力機制會發(fā)現(xiàn)它們本質(zhì)上也是在解決模板匹配的“不變性問題”。從模板匹配入門你會對圖像處理底層邏輯有個很扎實的理解這對后面學(xué)任何進階方向都特別有幫助。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久热久一区二区三区| 久久国内| 午夜AV污污污| 啊啊啊好湿久久| 欧美人人AAA| 久久国产免费激情视频| 人人艹亚洲| 久久精品人妻一区二区三区| 亚洲日韩久久精品一区| 免费看污网站| 四虎影视在线| 人妻激情另类| 青青草天天亲夜夜操网| 精品亚洲国产成人av网站| 国产午夜精品理论片一二三区区| 欧美综合综合| 大白逼三四级| 九九免费影片| 啊啊啊啊啊啊啊在线| 69精品在线| av资源在线播放天堂| 久久久一区二区三区三州| 日韩97在线| 97超碰欧美手机在线| 亚洲激情 欧美色图| 久久婷五月| 亚洲一区二区精品福利| 亚洲欧美在线观看2021 | 人人贴人人摸| 一级aaaaa欧美中文字幕录像片| 国产主播福利| 成 人 A V免费视频在线观看| 九七超碰| 日B操| 91精品人| A级片日韩欧美国产欧美视频精选观看 | 午夜精品久久999热蜜桃介男人用| 操操操操网黑人| 亚洲图片欧美91N| 国产精品久久久久久久久AV大片| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 丁香五月天堂网| 亚洲综合图文| 91五月天| 亚洲黄色| 国产在线视频午夜精华在| 1769成人国产精品视频| 91人妻做a观看视频| 日韩性爱再线视频| 可以免费观看的AV| 大香蕉伊人网WWWn0n| 熟妇人妻一区二区三区| 韩国三级三级BD在线| 超碰人妻中文在线| 久久久久极品| 蜜臀99久| 日韩亚洲中文字幕在线| 婷婷99狠狠躁天天躁| 狠狠穞A片一區二區三區| 精品少妇一区二区三区免费观看| 大香蕉色网| 伊人久久久日韩一区| 蜜桃视频一区二区三区| 9久久久久久| 亲子敌伦对白在线播放| 日韩乱中文 | 久草线上视频免费看| 超碰97极品9| 精品免费一区| 探花在线免费观看视频国产一区| 91粉芽高清在线一区二区| 亚洲欧美日韩免费观看| 欧美性爱1080p| 国产粉嫩出水在线播放| 国产乱弄免费在线视频。| 岛国不卡超碰护士AV在线播放| 超碰色图| 国产69精品久久久久99尤物| 中国黄色特级精品一区二区三区片| 欧美97se| 欧美亚洲另类在线蜜桃| 久久免费老司机精品| 密臀AV在线| 性欧美第一页| 国产精品永久免费10000| 任你爽视频| 天天做天天爱天天爽AV| 久久东京热成人| 伊人久久综合影院精品久久久| 亚洲精品日日夜夜52| 超碰人人乐97| 日1区2区3区2020| 天天操人人操狠狠插| 大香蕉九九| 蜜臀久久久| 青青操国产夫妻| 黄片免费视频2019| 超碰97爽| 美女性91| 亚洲av强奸乱伦| 粉嫩av一区二区三区四季| 少妇激情AV| 1769一区| 大香蕉伊人一区在线观看| 青青草在线视频美女| 八戒午夜福利理论片| 日本片日本片祼观看网站在线看中文版网页在线看 | 操逼精品视频| 欧美色性爱| 青青草黑寡妇男人天堂| 国产1024在线播放| 亚洲国产一区二区三区在线| 久久精品熟妇丰满人妻99| 99色在线观看| 亚洲国产美女久久久久| 超碰公开久久网| 黄色欧美性爱视频| 亚洲欧美啪啪| 亚洲精品无码少妇久久| 欧美性高潮| 欧美性爱在线无码| 欧美激情亚洲| 中文字幕黑人大片| 国产91福利小视频在线观看| 熟啊v色欧美热| 手机看片91人妻| 99r九九| 久久的免费性爱视频| 国产欧美美女免费观看视频| 高潮的A片激情扒开一区| 日韩9999| 亚洲第一无码播放立川理惠| 日比av无码| 天天综合精品| 国产精品一区二区a| 国产欧美美女免费观看视频| 青娱乐欧美激情一区二区| 欧美天天影院| 婷婷色色五月| 亚洲自拍一区夜夜操| 日韩免费一级性爱视频| 日韩欧美资源| 丁香六月综合激情| 十八禁电影伊人网| 久久激情网| 极品少妇久久久| 欧美少妇性爱网站| 少妇的嫩逼图片| 桃花色涩综合影院| 亚洲日韩精品在线播放| 欧美18 在线观看| 欧美熟妇精品黑人巨大一二三区| 八戒午夜福利理论片| 九区国产| av一区二区三区 中文| 亚洲图片第一页| 超碰激情808| 隔壁邻居波多野结衣中文字幕 | 亚州色图狠狠干| 色欲无码人妻日韩欧美精品| 91综合天天| 久九干| 91社操逼| 最近二区三区视频大全| 97超碰中文| 伊人久久大香大香线蕉中文| dy888午夜老子影视达达兔| 亚洲中文字幕乱码无码一区二区| 美中日韩无码| 91在线免费精品视频| 金典av| 婷婷中文字幕| 日本三级网页| www熟女乱伦com| 亚洲系列欧美| 欧美传媒一区| 嗯啊啊啊轻点视频 | 亚洲视频精选| 久久综合av| 99热免费| 95精品在线| 亚洲国产奇米影视久久| 1769成人国产精品视频| 国产夫妻性生活视频| 国产污视频麻豆传媒一区二区| 国产色呦呦| 99无码狠狠久久| 夜色97| 久久久不能久久久久| 立川理惠无码一区二区| 久久久久久久亚洲Av无码| 人妻偷拍一区二区三区| 热99这里有精品综合久久 | 亚洲一区日韩精品中文字幕| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 人澡逼| 久久色激情一区二区三区| 乱伦系列一区二区| 亚洲最新中文字幕免费| 一本久久久精品| 日本精品久久久久久久| av麻豆啪啪| 亚洲色图91欧美日韩| 懂色AV蜜臀无码精品APP| 一级特黄aaa大片在线观看成人一级片在线观看 | 欧美成人四级在线播放| 亚洲精品国语在线播放| 国产综合久久久麻桃个| 欧美少妇色图| 亚洲va有码在线天堂| 偷拍 欧美 日韩| 四虎国产精品永久入口| 免费一级特黄特色大片在线观看看| 九七超碰| 高清国产无码av| 国产中文字幕在线点播| 精品人妻1区| 污色区网站| 黄骗免费网站| 精品无码久久久久久久杏吧| 中国操逼无码| 天天操天天射天天日| 欧美日韩另类在线播放| 亚洲精品人妻在线| 狠狠综合网| 婷婷久久综合久| 色播丁香| 亚洲综合在线高清| 欧洲一区二区三区免费| 久久一二三四不卡| 久久午夜神马| 香蕉国产精品麻豆亚洲欧美日韩| 久久首页| 成人无码影片视频在线| 欧美性天天影视| 中文乱码99| 日韩人妻无码精品系列| 啊啊啊啊啊舒服| 亚洲久9| 精品午夜福利导航| 无遮挡猛进视频免费无限观看| 99精品久久久久久久婷婷蜜桃| 中国探花熟女| 超碰79人人乐| 蜜臀一二三区| 精品对白久久不卡| 天天爱天天操| 福利色色| 91伊人影视综合| 久久华人网| 夜夜爽夜夜高潮夜夜爽| 欧美性爱91| 国产三级电影免费观看| 另类综合另类| 人妻色情天天操| 一级AV性爱| 激情专区综合| 91久久堂| 一区二区影视| 91丨九色丨43老版熟女| 男女91| 男人成人黄色视频在线观看免费下载| 91白嫩| 老子午夜伦不卡影院| 亚洲国产日韩欧美熟妇在线| 97天天做| 午夜精品久久99蜜桃的功能章节| 黄片www.| 91欧美另类| 久操97| 3D污黄视频在线观看| 精品人妻一区二区免费蜜桃| 啊啊啊骚| 欧美一级黄色18片免费看| 69精品在线| 久久久久久免费电影| 亚洲欧洲av影音| 国产一区二区视频在线播放| 色91综合网| 97超碰精品图片| 日韩欧美亚洲一区二区三区影院| 97干天天| 91综合色噜噜| 大香蕉伊利av| 91bbbbbb| 91美女丝袜诱惑视频| 天天操天天日青青草超碰av| 精品中文字幕一区二区| 欧美久久人妻少妇一区二区| 日韩中文字幕精品一区在线| 日韩不卡网操逼中文字幕日韩| 蜜臀久久99精品久久久久久无删减 | 日韩精品在线观看网站| 成人黄页| 日韩成人大片一区二区| 久久原创中文| 国产成人bd在线观看| 欧洲一区二区三区四区在线观看| 九九干| 超碰夫妻97| 为用户提供免费看黄网址在线观看| 久久久草成人网站久久久草成人久久久草久久久 | 加勒比在线视频一区二区三区| 成人资源中文字幕在线观看天天| 91一区二匹| 91粉嫩萝控精品福利网站_精品影音先锋国| 精品十三区| 性久久久| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 色综合V| 色哟哟-国产专区| 操一操摸一摸| 日本精品国产视频| 久思思热视频在线观看| 亚洲一区亚洲天堂| 大屁股xxxxx| 亚洲交性| 日本亚洲vr欧美不卡高清专区| 91内射| 亚洲精品天天影视综合网 | 日韩强奸av| 久久仑合| 国产精品成人无码av无码免费| 久久精品无码不卡| 亚欧精品久久久久久久久久久| 亚州欧美色图| 亚洲情色综合网| 成人aⅴ一区二区三区| 18+91网站| 伊人久久88国产女| 国产亚洲深夜激情| 久久久一区二区三区麻豆| 中文字幕日韩综合| 免费观看性欧美一级| 97超碰总站| 激情99| 岛国片在线播放| 人澡逼| 久久怡红院| 国产成人精品必看 | 狠狠爱综合| 久久只有精品| 少妇天堂| 亚洲图片 激情小说| www.夜夜| 亚洲精品天堂久久A∨51成人漫 | 欧亚综合一卡二卡中文字幕| 美国人人操人人操| 亚洲不雅视频1区二区| 日韩美女,国产传媒,视频一区| 婷婷丁香五月综合| 亚洲av综合色区图片亚洲| 天天爽入口| 国产男女无套97| 乱伦系列一区二区| 国产亚洲精品A在线观看下载| 亚洲综合有码| 欧美综合在线91| 亚洲 图片 综合91| 爆操无码| 久久精品国产亚洲AV高清演员表| 超碰2017| 亚州精品人妻一二三区| 亚洲天堂情色| 九九热超碰97亚洲最新香蕉| 淫淫总合网| 欧美强奸一区二区诱惑| 黄色区免费观看中文字幕| 91AV入口| 天天视频黄| 久久超碰97| 日日97| 大香蕉综合在线| 欧洲精品在线播放| 日少妇亚洲版| 成人老鸭窝人人在线视频| 午夜精品久久久久久久男人的天堂| 国产成人手机视频激情| 午夜超爽| 操逼片国产| 美女诱惑一区| 日本性爱视频一级| 尤物视频视频官网| 97在线免费观看视频| 久久丝袜| 成人小电影网站tex| 人人九九精| 后入人妻一区| 日韩精品第3页| 蜜桃中文字日产乱幕4区| 天天综合91在线| 97色干| 强奸乱亚洲| 激情五月天社区| 夜色AV无码手机在线影院 | 日韩人妻无码精品系列| 久久精品国产99国产精品亚洲| 久视频在线观看| 激情亚洲天堂| 热久日综合| 91成人社区| 绑缚麻绳人妻寝取完整版| 黑丝日韩av丝袜av| 操曰本熟女| 欧美第五页| 超碰九九| 欧美性爱第一页久久| 日韩欧美操逼xxx| 欧美日韩大黄片| 五月婷婷六月丁香网址| 大香蕉免费乱伦视频| 综合一区中亚洲国产成人综合精品 | 欧美色图天堂在线| 五月婷婷综合网| 欧美18禁91| 欧美日韩亚洲高清不卡一区二区三区| 美女91在线观看| 欧美成人国产精品| 欧美性暴力| 人妻干天天| 岛国黄色短视频| 日本一区三级韩国| 99黄页网站| 成人青青草原伊人| 91大神精品长腿在线观看网站| 一区二区三区亚洲| 亚洲国产激情国产av| 理论久久婷婷网 8| 粉嫩久久久极品| 香蕉99秘 一区精品蜜桃臀| 视频国产成人精品日本亚洲18| 先锋色眉乱伦资源| A V少妇特黄三级| 青女在线| 欧美亚洲中文| 日本日皮视频逼| 91狠婷| 大香蕉综合在线| 久操免费在线| 久久久久久国产无码精品| 伊人影院中文字幕| 一本色道久久综合狠狠操| 中文乱码字字幕在线第5页| 国产精品成人无码a v毛片| 97人人草| 九七人妻在线| 九九精品无码专区免费| 日本天天人人狠狠在线日美女 | 丝袜天堂网| 亚洲欧美首页| 五月丁香六月激情综合| 亚州欧美总和| 狠狠久久手机视频精品| 综合熟女| 91制服丝袜| 亚洲色图殴美色图激情乱伦| 亚洲欧洲色情高清| 久久狠狠色噜噜狠狠狠狠97| 日本三级大片| 99久久久| 国产综合网站在线播放| 91成人社区| 超碰午夜| 91jk色拍| 欧美视频一| 中文字幕二区日韩天堂| 97色综合中文网| 久久久九九网站| 97超色| 欧美日本成人一区二区| 香蕉99秘 精品一区丁香| 四季av一区二区凹凸精品小说| 日韩欧美成人性爱在线| 日夜干射色啊| 亚洲日韩精品一区二区| 夜夜爽77777| 91高潮| 日本三级韩三级99久久| 亚洲爽图| 色女网日韩| 91精品国产91久久青草| 国产suv精品一区二区四| 欧美日韩在线小说| 色婷婷aV一区二区三区麻豆综合| 免费中文综合精品| 超碰538| 国产精品免费日韩| 久久成人午夜狠狠| 一起草精品人妻| 色香网| 国产精点久久久成人| 欧美淫乱视频| 精品久热| 亚洲美女AV无码| 伊人色综合超碰| 操逼无码操逼| 风月影院男女十八禁| 免费福利视频中文字幕| 国产人妻精品一区二区三区秋霞 | 久久毛卡| 91 天天综合| 91蜜臀熟女| 老熟女乱伦片| 亚欧美色图| 天天爽天天爽| 免费无码国产精品v片在线观看| 亚洲精品白丝| 综合婷婷| 黄片免费视频2019| 密臀在线一区尤物| 九九久久国产精品| 九九香蕉网| 一二三区操逼国产91| 国产丰满少妇久久久精品影院| 91成人久久| 综合欧美亚洲| 97视频新免费| 1024亚洲中文字幕久在线看片你懂的| 影音先锋新男人| 啊啊啊啊,啊啊好多水| 夜夜嗨一区二区| 性影在线视频| 国产偷拍网站| 日韩欧美三级| 欧美少妇色综合| 六月激情网| 国产高清26uuu| 婷婷情色综合网| 男同专区一区二区三区在线| 日本岛国黄色网址| 岛国网址国产 | 欧美性爱在线无码| 欧美精品日韩久久久九| 欧美色亚洲| 国产精品爽爽va在线观看98| 五月丁香大香蕉| 亚洲欧美色图小说| 国产精品日日摸天天碰| 国产五码丝袜屁眼| 禁止观看美女黄| 国产欧美一区激情交| 欧美亚洲尤物久久| 久久久一区二区三区三州| 精品国产乱码久久久影院| 无码人妻丰满熟妇奶水区毛片| 日韩丰满熟妇| 成人a级高清视频在线观看| 蜜臀一区二区三区在线| 99久久99九九99九九九| 91操人| 91在线限制级| 久九九九九九九热| 国模限制级电影| 69精品少妇一区二区三区蜜桃| 国产精品色片一区二区| 久久精品日韩| 日韩乱伦AⅤ| 插入逼91| 中文精品一区二去| 国产又黄又爽又刺激久久久久久| 国产精品人妻免费精品| 久久69| 青青草福利视频| 色色九区| 国产午夜精品理论片一二三区区| 欧美999| 九热中文字幕| 亚洲综合电影| 大JI巴好深好爽又大又粗视频| 久久久精选| 91热| 夜夜精品视频| 国产老太乱伦一区| 中文字幕高清精品一区| 成人小说视频在线精品欧美| 性色生活片久久毛片婬片免费放女人一级毛片 | 久都青青视频| 啊啊啊啊二区好大| 亚欧美综合网。| 欧洲亚洲人人爽爽视频| 超碰九九| 亚洲色图欧美| 伊人精品久久网站| 亚洲第一无码播放立川理惠| www久| 国产精品色色| 欧美大香蕉97| 人妻天天操天天爽视频免费| 伊人伊人LD| 亚洲日本天堂| 一二三区精品视频| 97超碰人人操人人操| 俄罗斯一区二区视频在线观看| 国产三级日产三级韩国三级| 91美女丝袜诱惑视频| 亚洲欧美一区二区三区在钱蜜桃| 大香蕉免| 黑人粗大V S日韩女优视频| 综合91网| 国产老太乱伦一区| 亚洲欧美自拍偷拍| 香蕉综合网| 欧美激情欧美精品| 老色鬼成人精品视频下载大在线观看| 欧美一级A一级a爱片久久| 天天躁日日躁AAAAXXXX国产| 人妻22p| 亚洲综合在线高清| 色噜噜狠狠色综无码久久| 乱伦熟女论坛| 欧美日韩岛国大片在线观看| 少妇蜜汁| 91少妇高潮| 成人精品久久久午夜福利| 日本一级性爱| 欲色影视综合吧| 亚洲,欧美,综合网| 午夜视频黄| 日欧操屄视频| 中文字幕视频2区| 久久婷婷成人综合色怡春院| 国产女人与拘做受视频免费| 97超碰jingpin| 乱色老一区二区三区的观看方式| 久久伊人最新网址视频| 亚洲欧美激情另类色图| 超碰日韩美妻| av网站免费看| 99婷婷| 欧美91网站| 蜜乳成人AV| 丝袜美腿诱惑亚洲欧美视频在线观看 | 色盈盈影院| 啊啊啊好大好深| 国产曰批免费观看久久久| 九色97| 午夜噜噜噜| 91久久免费视频互動交流| 久热久一区二区三区| 午夜啊啊| 99精品成人免费看| 91在线/欧洲| av亚欧| 日韩AV一区二区三区四四| 九九九草| 天天草夜夜草高潮片| 久久久久中出| 一区二区三区美女超清| 韩国久久97| 美女十八禁| 日韩女模中文造逼| 91国产丝袜美女| 国产野战露脸在线播放| 日韩钢筋无码高清啾啾啾| 国产毛片片精品天天看视频| 曰韩欧美国产传媒麻豆第一区| 欧美日韩狠狠爱| 99精品成人免费看| 综合情欲网| 欧亚性爱视频免费看| 日本不卡一区二区三区| 亞洲久久直播| 久九九九九九九九热| 操逼日韩无码| 精品国产乱码久久久久久免费| 国产午夜无码片在线观看影视| 中文字幕色AV| 玖玖色综合| 黄页av| 热天堂一区二区| 中文字幕天堂在线| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 熟女探花啪啪| 人人超碰在线观看黄| 99久国产精品午夜性色福利| 精品人妻伦一区二区三区久久| 国产精品成人蜜臀AV在线| 中文字幕av一区二区三区人妻少妇| 99久久精品国产高潮| 清纯唯美第一页| 簧片免费看视频| 久男人久久| 色九区| 欧美不卡五十路| 国产十八禁视频| 国产成人自拍视频在线| 久久超碰日韩精品| 激情文学欧美| 久久性爱大全| 97中文字幕一区| 中文字幕丝袜人妻| 日韩欧美中文日韩欧美色| 亚州,欧美在线| 色av中文字| 国产成人免费观看在线视频| 美女91在线| 10000部十八禁看电影| 在免费jIzzjIzz在线视频| 亚洲天堂资源在线| 二三四区精品| 久久99热这里只频精品6学生| 天堂v无码免费视频| 欧美日韩国产人人| 亚洲另类久操网| 亚洲系列第一页| 精品视频久久| 熟女高潮合集-永久久久-成人AV| 日本岛国黄色网址| 亚洲成人一区二区精品| 蜜臀久久久99久久久久 | 国产精品日日摸天天碰| 国产视频小说| 天堂av2019| 久久亚洲精品成人av| 91在线观看,天天综合| 少妇99成人麻豆| 成人26uuu| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 91在线视频免费中出| 欧美激情中文字幕另类小说| 亚洲性爱免费电影| 国产老太乱伦一区| 男人的天堂com| 超碰97亚洲区| 超碰av人人人| 色播五月婷婷| 操逼视频免费日韩无码| 三级AV入口| 测评在线观看AV| 久久九色| 手机在线大香蕉| 国产精品一区二区麻豆| 亚洲第一二区另类图| 黄网站黄视频网站进入口| 中文无码一二三区| 91丨九色丨大屁股| 99热只有这里有精品| 久久久久久久久成人av解说| 特级特黄一级毛片免费| J?P?NESEHD熟女熟妇伦| 国产AV中文| 超碰在97| 另类图片五月天| 后入福利| 公司1区2区3区精产精| 牛牛久久国产精品视频一二三| 色婷婷蜜臀av| 欧美精品偷拍| 啊啊啊好湿久久| 国产自产91区13区| 神马午夜久久久| 超碰国产情侣自拍网| 综合国产97| 欧美亚洲国产自久久| 色女网日韩| 五月综合久久| 天天躁日日躁XXXXYY| 日韩亚洲Av人人夜夜澡人人爽| 免费在线观看国内色片网站网址| 色情乱伦AV| 操屄不卡视频| 九九热精品| 99激情| 色色操| 操香逼| 亚洲天天影视综合网| 色欧洲97| 欧洲精品二区| 在线视频 亚洲精品| 乱伦日本中文自拍| 国产成人自拍视频视频| 一区二区三区精品视频| 色婷婷丁香五月| 后入 亚洲 美女 射| 伊人网在线观看| 日本在线15p| 天天爱天天操| www.99色| www黄片免费看com| 国产黄a三级三级三级av在线看| 亚洲有薄码区日本系列中文字幕| 日韩av色图综合| 啊啊啊久久久视频| 婷婷超| 高潮的A片激情扒开一区| 日本成人电影资源网| 色婷视频| 精品久久九| 日本韩国五十路六十路七十路老熟女作爱视频网站| 亚洲成成熟女人综合一区二区| 精品免费一区| 中国探花熟女| 日本一二区免费| 亚洲素人网| 亚洲极品| 午夜福利1区2区3区| 人妻少妇av在线观看| 久久一区无码| 97欧美久久久久久久| 爱爱啊啊啊| 伊人久操| 中文字幕视频2区| 一本色道久久综合精品婷婷| 国产超碰AV在线精品| 成人av免费观看| 1区2区3区中文字幕日韩| 色臀AV| 可能人人看人人摸| 理论久久婷婷网 8| 日韩97视频| 免费少妇一区二区| 久久久蜜桃一区二区三区| 久操在97| 日本中文熟女视频| 色色色综合网| 涩涩久久精品| 国产资源中文字幕在线| 日本特黄f c2| 欧美韩日精品99综合| 亚洲 日本 国产 综合| 91大胆欧美| 92久久| 搡老熟女老女人老熟妇免费视频| 精品人妻一区二区乱码一区二区| 国产品精品自在在线午夜免费| 操逼日韩无码 | 亚洲av无线观看| 啊啊啊啊啊操我视频| 日夜伊人网| 色色婷婷五月天| 亚洲在线A| 亚洲午夜福利在线影院| 久久夜嗨| 精品欧美乱码久| www99热| 黄色小说亚洲| 国产精品夜夜| 色婷婷综合网站| 狠狠干妹子| 翔田千里AⅤHD无码| 日韩AV中文字幕电影| 国产精品久久久啊| 后入 亚洲 美女 射| 另类欧美色| 欧美另类色| 上特色A在线| 嗯嗯啊在线视频| 亚欧美色图| 久久久中文| 1024精品在线| 婷婷导航| 肏逼视频日本| 精品v1区| 91久久九九精品国产综合| 国产白嫩精品久久| 伦激情人妻另类人妻| 蜜臀久久99精品久久久久免费观| 亚洲欧美一区二区网址| 日日黄色三级网站| www.黄色在线| 欧美亚洲综合999| 亚洲无码99| 亚洲天天更新| 91在线美女| 蜜臀网 一区| 国产农村妇女精品1区二区| 亚洲色图综合| 青青草啪啪网| 久久精品国产96精品亚洲拳交| 人人九九精| 99自拍视频| 精品无码一区二区三区| 99蜜桃臀久久久欧美精品网站| 18禁网站在线播放| 日韩欧美麻豆| 一区麻豆 高清中文字幕| 国产亚洲日韩欧| 久久久一区二区| 97天天爽| 久久久亚洲Av| 蜜桃传媒视频第一区入口在线看| 日韩 人妻 精品| 7777奇米影视久久| 99这里只有精品| 97爱爱爱综合| 亚洲美女自拍偷拍视频| 9丨久久九九九| 嗯嗯啊啊好疼| 激情六月婷婷| 无码免费在线观看黄色片| 一二视频神马久久传媒| 亚洲精品97在线| 国产欧美成人第一页在线观看| 天操天操夜操夜月月年年操操| 欧美性爱三区二区| 日本影视久久免费| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 91日韩网站| 日韩人妻精品中文字幕| 四虎影院成年人片| 操国产逼| 欧美色图99| 日韩av熟女一区二区三区成人| 亚洲欧美一区二区三区一猛片| 疯操AV| 人人妻人人色| 亚州伊人色综台| 久久精品店| 一二三四视频中文字幕在线看| 日本一卡二区在线| 麻豆福利视频导航| 99.色网| 五月丁香婷婷综合| 色色香蕉| 影视综合无码少妇| 曰韩中文人妻视频| 97亚洲综合在线| 乱子伦一区二区三区国产精品| 95精品在线| 中文字幕高清20页视频 | 青青草华人在线欧美在线| 在线黄色污污网站| 激情综合97| 伊人婷婷五月天| 手机看av网站在线看| 国产欧美精选激情视频| 人人操人人93| 91社区伊人| 熟女人妻一区二区三区| 国产精品另类一区大香蕉| 欧美黑人168页欧美黑人167| 欧美成人综合| 中文字幕乱码人妻一区二区三区,99精品| 丰满人妻一区二区三区| 成人免费福利网站国产| 超碰成人公开| 天天草夜夜草高潮片| 秋霞免费无码视频日韩A片| 97视频在线| 九九九九热只有精品| 四虎精品亚洲| 亚洲久草AV色图| 亚洲图片偷拍欧美| 黑人综合色| 热热色AV| 亚洲图片 欧美电影| 亚洲丝袜二区在线| 精品二区久久| 男女国产精品| 嗯嗯啊啊啊好爽| 中国91AV| 日本精品五区| 国产精品不卡av免费在线观看| 国产精品com| jizz啪啪| 欧美激情性爱视频网站| 亚洲一区二区三区不卡国产欧美| 狠狠色噜噜狠狠狠狠狠色综合久久| 国产乱伦亚洲| 做爱A级亚欧| 激情久久av一区av二区av| 大香蕉五月天婷婷| 亚洲操操| 色综合潮| 91天射| 色九九综合AV| 91亚洲网站| 国产一国产一级毛片古装| 小说区 图片区色 综合区| 国产欧美日韩一区二区三区| 日韩AV无码中文一区二区| 中国探花熟女| 熟妇人妻一区二区三区| 欧美老妇女内射网址| 午夜久久一区二区无码中出| 亚州中文字幕超碰97| 91青青在线视频| 十八禁电影伊人网| 国产久久久久久| 尤物视频一区| 6080YYY午夜理论片在线观看| 欧美顶级黄色大片免费| 午夜精品视频777| 超碰在线974| 伊人aaa| 啊啊啊啊,啊啊好多水| 啊啊啊啊啊啊好多水| 美女熟妇色| 大香蕉久久| 99热精品青草在线| 亚洲女人毛茸茸91| 亚洲成人黄色在线观看| 午夜无码精品免费看性色| 亚洲欧美大| 欧美在线视频观看一二三四区高清 | 日本一级不卡一二区| 久九色| 亚洲欧美国产日本一区二区三区| 日韩亚洲美女一区久久| 欧美成人色| 日本精品999| 日韩av一级黄片| 麻豆精品久久久久久久| 中文子幕一二三| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 亚洲人妻久久久| 岛国大片国产| 天堂精品在线| 亚洲偷91色| 成全在线观看免费观看| 99色在线| 51一区二区三区| 中文字幕,人妻,日韩| 97色色视频| 日韩青久久| 小日子操bb在线看| 98一区二区精品| 全国男人天堂网| 亚洲中文字幕久久人妻| 精品久久視頻在线| 色九九九九九九| 国产亚洲精品激情| 96精品久久久久中文字幕| 综合网少妇| 欧美少妇性爱网站| 美女黑人91神马| 人妻天天爽天天爽三区| 六六久久日韩不卡| 成人情色综合网| 综合在线导航一区| 天美传媒Av在线| 精品蜜乳AV免费观看| 久久99热这里只频精品6学生| 欧美色交| WWW黄片COM| 91精品国| 亚洲精品日日夜夜52| 内射黑丝袜| 精品中文字幕一区二区| 综合网亚| 少妇一级婬片免费放一级a性色.| 精品一区二区三区最新| 9久久精品| 国产久久一区二区午夜| 日本媚薬中文字幕在线| 精品女人999| 老熟女网站| 乱人伦 国语对白:视频直接看| 欧美色九九| 婷婷久久网| 亚洲色图亚洲| 天天干天天日天天射黄色| 男人的天堂一区| 精彩视频日韩| 91社区伊人| 大香网伊人久久综合网eew| 亚洲欧洲av影音| 午夜精品久久久99| 日本狂喷奶水在线播放212| 999综合色| 插欧洲美女欧美精品| 久久久一二三四区| 啪啪啪大香蕉| 色综合国产在线观看| 欧美图片色综合| AV网站高清无码在线观看| 久久机热| 色99视频| 久久中文字幕不卡人妻| 台湾大香蕉99热| 最新日产中文在线麻豆| 色噜噜日韩精品| 国语人妻精彩刺激| JIZZJIZZ亚洲女人被躁| 91欧美美女日韩国产婷婷| h无码动漫在线观看| 夜夜做夜夜爽精品视频| 另类小色呦| 亚洲网污污污污| 大香蕉久操| 国产精品人妻无码久久久老鸭窝 | 少妇久久久久久久| 国产精品视频在线播放| 亚洲码专区| 天天网综合| 天堂综合| 六月丁香网| 亚洲成人av电影在线| 亚洲色图8| 久久97资源 网| 一区二区三区 日韩欧美| 久久9精品网站| 97亚洲国产影视| 国产成人亚洲精品无码古代早漏男| 九九九九九精品视频| 少妇天堂网络| 麻豆人妻精品一区二区| 午夜精品久久久久久久久久蜜桃 | 91精品无码人妻系列| 久久久无码视频| 亚洲精品人伦一区二区| 天美传媒一二三区永久网站| 欧美一区二区观看在线| 啊啊啊啊啊啊啊啊视频| 亚洲欧美一区二区不卡视频播放 | 久久XX| 人人摸人人入| 天天影视之亚洲综合网| 亚洲中文制服诱惑| 亚洲操逼无码| 婷婷超| 亚洲色图日韩丝袜制服一区二区五月在线| 青青草自拍视频在线播放| 91精品大奶人妻| 国产精品一区二区亚洲人成毛片| 蜜桃精品视频一区二区三区| 色91综合网| 99色色网| 国产又色又爽又舒服的三级视频| 99亚洲国产精品色一区二区三区| 96精品久久| 色欧洲97| 中文字幕久久亚州无码| 亚洲综合另类欧美久久久| 亚洲AV无码天美传媒一区| 啪一啪免费视频| 国产一区在线播放| 人妻娇喘 激情视频| 插入粉嫩少妇视频| 国产情色第一第二页在线观看| 久久手机视直播| 亚洲天堂男人在线| 久久久夜夜嗨免费视频| av在线一区二区三区| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 国产精品成久久久久午夜午夜| 欧洲人妻视频| 伊人四虎综合| 久久久久久裸体| 色天堂综合| 亚州日韩97| 亚洲淫色网中文| 91成人无码| nuu12国产麻豆精品| 无码男人天堂| 少妇精品久久久| 开心六月色| 天天香香欲综合| 亚洲免费97免费| 97久久超碰国产网站| 色噜噜人妻丝袜AV资源| 嗯嗯啊啊亚欧精品| 大香蕉综合久久| 天天天天天天天天综合| 老熟妇一区二区三区啪啪| 日日夜夜草草草| 本道在线| 天天综合网视频91| 欧美 亚洲 第一页 |