亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

OpenCV+Python指尖檢測:背景減除、凸包與鍵盤模擬

OpenCV+Python指尖檢測:背景減除、凸包與鍵盤模擬 簡介面向Python與OpenCV開發(fā)者的手勢識別實戰(zhàn)資料基于GitHub開源項目改進(jìn)后支持手指指尖檢測并能在Windows平臺通過手指數(shù)目模擬鍵盤按鍵實現(xiàn)簡單的免觸控交互。整個資源為1個PDF文件僅233KB內(nèi)容以完整源碼為主干配有逐段中文注釋并給出環(huán)境說明Python3.6OpenCV3.4.0與核心參數(shù)的含義及可調(diào)范圍代碼覆蓋背景減除、高斯模糊、二值化、輪廓提取、凸包繪制、指尖定位與計數(shù)、模擬按鍵等關(guān)鍵環(huán)節(jié)從攝像頭讀取到輸出控制一應(yīng)俱全很適合初次接觸手勢識別或希望快速跑通Demo的學(xué)習(xí)者。已有1992人學(xué)習(xí)閱讀時既可以按代碼順序跟蹤處理流程也可以把指尖檢測部分移植到自己的項目中二次開發(fā)或在此基礎(chǔ)上調(diào)整閾值、修改按鍵映射以適配不同場景。1. 手勢識別這可能是你最快跑通的指尖檢測方案用 Python 做手勢識別很多人第一反應(yīng)是上 MediaPipe 或深度學(xué)習(xí)模型但如果你只需要在 Windows 下通過手指數(shù)目觸發(fā)鍵盤操作OpenCV 的經(jīng)典方案反而更直接不需要訓(xùn)練、不需要 GPU、單個 Python 文件就能跑。本文要拆的這個項目來自 GitHub 上的 Fingers-Detection-using-OpenCV-and-Python原作者實現(xiàn)了基于背景減除的指尖檢測我在此基礎(chǔ)上補充了指尖坐標(biāo)過濾邏輯和 win32api 鍵盤模擬讓整個程序可以在 Windows 下用 2 根手指、3 根手指去觸發(fā)按鍵。這個方案的核心思路不是靠膚色檢測而是靠背景減除先讓攝像頭記住一幀沒有手的背景然后把每一幀畫面和背景做差分前景就是你的手。整個過程只依賴 OpenCV 的圖像處理函數(shù)和 numpy 運算原理透明、參數(shù)可調(diào)非常適合作為手勢識別入門項目來復(fù)現(xiàn)。適合的人群很明確想理解 OpenCV 輪廓分析和凸包原理的人、需要在本地用攝像頭做交互控制的人、以及不想引入大模型依賴的嵌入式或桌面端開發(fā)者。2. 從背景建模到二值化先把「手」從畫面里摳出來2.1 為什么選 MOG2 而不是膚色檢測這個項目最關(guān)鍵的一步是cv2.createBackgroundSubtractorMOG2。我去查了原項目的設(shè)計意圖作者選它而不是膚色檢測是因為膚色模型對光線和白平衡極其敏感同一個人的手在暖光燈和 LED 燈下 YCrCb 范圍的分布完全不同膚色閾值調(diào)一次換一個環(huán)境就失效。而背景減除不關(guān)心你手是什么顏色只關(guān)心畫面里什么東西動了、什么東西沒動。MOG2 的全稱是 Mixture of Gaussians v2OpenCV 內(nèi)置的自適應(yīng)混合高斯背景建模。它的工作方式是對每個像素建立多個高斯分布一個像素如果長期保持相近的灰度值就被歸入背景模型一旦某個像素的灰度值和背景模型差異超過閾值就被判定為前景。createBackgroundSubtractorMOG2(history, varThreshold, detectShadows)的三個參數(shù)中history 決定用多少幀來訓(xùn)練背景模型varThreshold 決定判定前景的方差閾值detectShadows 用于是否檢測陰影。bgModel cv2.createBackgroundSubtractorMOG2(0, bgSubThreshold)這段代碼里 history 傳了 0表示使用默認(rèn)的 200 幀bgSubThreshold的值是 50表示像素值和背景模型的馬氏距離超過 50 就認(rèn)為是前景。注意 MOG2 的默認(rèn)參數(shù)對陰影檢測是開啟的原項目沒有單獨處理陰影這在實際運行中會導(dǎo)致手部邊緣出現(xiàn)灰黑色的噪點塊。我一般會把 detectShadows 顯式設(shè)為 False減少后續(xù)輪廓提取的干擾bgModel cv2.createBackgroundSubtractorMOG2(history500, varThresholdbgSubThreshold, detectShadowsFalse)history 從 0 改成 500目的是讓背景模型在窗口移動、窗簾飄動時更穩(wěn)定。如果你的攝像頭固定不動這個值可以更大如果攝像頭是手持的建議降到 100 以下否則背景模型更新太慢手的殘影會殘留在前景里。2.2 removeBG 里的腐蝕操作到底在干什么removeBG函數(shù)是整條處理鏈的入口它做的事情不止是前景提取還加了一次腐蝕def removeBG(frame): fgmask bgModel.apply(frame, learningRatelearningRate) kernel np.ones((3, 3), np.uint8) fgmask cv2.erode(fgmask, kernel, iterations1) res cv2.bitwise_and(frame, frame, maskfgmask) return resbgModel.apply返回的是一張單通道掩膜白色區(qū)域代表前景黑色代表背景。直接用這張掩膜去截原圖你會看到手的邊緣有一圈毛刺——這是攝像頭噪聲和背景模型邊緣像素誤判造成的。腐蝕的作用就是把這些毛刺削掉kernel 是 3×3 的全 1 矩陣iterations1 表示執(zhí)行一次腐蝕效果是讓白色區(qū)域的邊界向內(nèi)收縮 1 個像素。代價是手指尖也會變細(xì)一圈對于指尖檢測來說這反而有利于減少后續(xù)輪廓的鋸齒。learningRate傳的是 0這個參數(shù)另有含義。MOG2 的 apply 方法里learningRate 為負(fù)數(shù)默認(rèn) -1表示自動更新背景模型傳 0 表示這一幀完全不更新背景。原項目里學(xué)習(xí)率恒為 0意味著背景模型只在按 b 鍵那一刻被初始化之后永遠(yuǎn)不會學(xué)習(xí)新的背景變化。這在固定場景下是優(yōu)點——手不會慢慢被融入背景但你如果中途移開攝像頭或者背景里多了個物體前景就會一直存在直到按 r 重置。2.3 雙邊濾波和高斯模糊的分工一個保邊一個降噪預(yù)處理階段有兩個容易搞混的濾波開頭對原始幀做的是cv2.bilateralFilter對前景掩膜做的是cv2.GaussianBlur。前者是雙邊濾波它的特點是同時考慮像素的空間距離和灰度差異所以在平滑噪聲的同時能保留邊緣。用在原始幀上是為了讓背景建模時像素的灰度分布更穩(wěn)定避免傳感器噪點導(dǎo)致背景模型誤判。frame cv2.bilateralFilter(frame, 5, 50, 100)參數(shù)依次是 d5、sigmaColor50、sigmaSpace100。d 是濾波窗口直徑5 意味著考慮每個像素周圍 5×5 的鄰域sigmaColor 越大灰度差異大的像素越容易被一起平滑邊緣保留能力越弱sigmaSpace 越大遠(yuǎn)處像素對當(dāng)前像素的影響越大。我實測下來這三個參數(shù)在 640×480 的攝像頭畫面上表現(xiàn)不錯但如果你用的是 1080p 畫面d 要適當(dāng)加大到 7否則平滑效果不足。高斯模糊則用在灰度圖上目的是消除二值化時產(chǎn)生的椒鹽噪聲blur cv2.GaussianBlur(gray, (blurValue, blurValue), 0)blurValue設(shè)為 41這是一個偏大的核。41×41 的高斯核意味著每個輸出像素是周圍 41×41 范圍內(nèi)像素的加權(quán)平均對輪廓的平滑作用很明顯代價是丟失細(xì)小的凸起。如果手指很細(xì)或者攝像頭距離手較遠(yuǎn)可以考慮把 blurValue 降到 21否則指尖可能被高斯模糊抹平導(dǎo)致后面距離法找不準(zhǔn)最遠(yuǎn)點。2.4 閾值滑塊的正確姿勢先調(diào)亮度再調(diào)閾值程序啟動時會創(chuàng)建一個名為 trackbar 的窗口里面放了一個 threshold 滑條范圍 0 到 100。這里的閾值是二值化的分界線灰度圖上像素值大于 threshold 的變成 255白小于的變成 0黑。cv2.createTrackbar(threshold, trackbar, threshold, 100, printThreshold)中初始值 threshold 是全局變量 60回調(diào)函數(shù) printThreshold 只是把當(dāng)前閾值打印出來。實際操作時我建議按這個順序校準(zhǔn)先按 b 捕獲背景然后對手放在攝像頭前觀察 binary 窗口如果手是黑色、背景是白色說明閾值反了需要把閾值調(diào)低如果手上有大片空洞說明閾值太高背景的灰度值也被算進(jìn)了前景。有個細(xì)節(jié)值得注意cap_region_x_begin 0.5和cap_region_y_end 0.8限定了感興趣區(qū)域。程序只在畫面右半部分、從上往下 80% 高度的區(qū)域內(nèi)做手勢檢測畫面上用紅色矩形標(biāo)出了這個區(qū)域。這個設(shè)計是有意的——大多數(shù)人的操作習(xí)慣是右手放在攝像頭右側(cè)左手操作鍵盤所以只檢測右側(cè)區(qū)域能減少誤判。如果你習(xí)慣左手手勢把cap_region_x_begin改成 0.0 并調(diào)整矩形框繪制邏輯就行。3. 指尖檢測輪廓、凸包和距離法的三角關(guān)系3.1 從二值圖到輪廓findContours 的坑從版本開始二值化之后thresh是一張黑白圖白色區(qū)域就是手。接下來要找到手的輪廓OpenCV 提供了findContours。這里有一個版本差異的坑在文末的補充里明確寫了OpenCV 3.x 時代返回三個值OpenCV 4.0 之后返回兩個值。thresh1 copy.deepcopy(thresh) _, contours, hierarchy cv2.findContours(thresh1, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)第一版代碼針對的是 OpenCV 3.4.0所以用了三個返回值。copy.deepcopy(thresh)很關(guān)鍵——findContours會直接修改輸入圖像如果不拷貝后續(xù)想再顯示二值化結(jié)果就會拿到一張被破壞的圖。cv2.RETR_TREE表示建立輪廓的層級樹cv2.CHAIN_APPROX_SIMPLE則用最少的點來編碼輪廓只保留端點。如果你裝的是 OpenCV 4.x直接跑這段會報錯說解包的值太多解決方式很簡單contours, hierarchy cv2.findContours(thresh1, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)我自己的經(jīng)驗是與其改代碼不如在同一條處理鏈里做版本兼容cnt_info cv2.findContours(thresh1, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) if len(cnt_info) 3: _, contours, hierarchy cnt_info else: contours, hierarchy cnt_info這樣無論隊友用的是 3.4 還是 4.5代碼都不會炸。3.2 為什么只取最大輪廓凸包檢測的數(shù)學(xué)基礎(chǔ)輪廓可能有多個比如手旁邊放了杯水、或者背景減除沒做干凈留下了一塊噪點。項目里用面積法篩掉小輪廓length len(contours) maxArea -1 if length 0: for i in range(length): temp contours[i] area cv2.contourArea(temp) if area maxArea: maxArea area ci i res contours[ci]cv2.contourArea計算的是輪廓包圍的面積不是像素點數(shù)因為輪廓是折線直接數(shù)點數(shù)會低估面積。取最大輪廓后下一步是計算凸包hull cv2.convexHull(res)凸包是包含輪廓所有點的最小凸多邊形。指尖檢測依賴凸包的原因是手指伸出來時指尖是輪廓上離手心最遠(yuǎn)的點同時也是凸包的頂點。非凸的凹點比如指縫不可能是凸包頂點所以凸包可以直接過濾掉指縫形成的干擾點。cv2.drawContours(drawing, [hull], 0, (0, 0, 255), 3)用紅色畫凸包綠色畫原始輪廓調(diào)試時一眼就能看出凸包是否貼合手指外形。3.3 重心距離法找指尖為什么不用凸包缺陷算出凸包之后主流的指尖檢測思路有兩種一種是基于凸包缺陷convexity defects通過尋找輪廓上凹陷最深處的點來推斷指縫位置再反推指尖另一種是本文采用的距離法直接找輪廓上離重心最遠(yuǎn)的點。原作者選擇了后者代碼里先算輪廓的矩moments cv2.moments(res) center (int(moments[m10] / moments[m00]), int(moments[m01] / moments[m00]))這里用零階矩 m00 歸一化一階矩 m10 和 m01得到的是輪廓質(zhì)心。在手勢識別中質(zhì)心和重心的差異可以忽略用矩計算是最穩(wěn)的因為它對輪廓形狀不敏感。指尖檢測的核心邏輯是遍歷輪廓上的每個點計算它到重心的距離平方fingerRes [] max 0; count 0; notice 0; cnt 0 for i in range(len(res)): temp res[i] dist (temp[0][0] - center[0])**2 (temp[0][1] - center[1])**2 if dist max: max dist notice i if dist ! max: count count 1 if count 40: count 0 max 0這段代碼初看有點繞。它不是在找全局最遠(yuǎn)點而是在找「局部最遠(yuǎn)點」每當(dāng) dist 超過當(dāng)前最大值就更新 notice當(dāng) dist 不再是最大值且持續(xù)了 40 個點以上說明當(dāng)前這個最遠(yuǎn)點是一個獨立的凸起把它記下來然后重置 max繼續(xù)找下一個凸起。count 40 是防止噪聲造成的假峰值被當(dāng)作指尖——如果只是少數(shù)幾個點突然變遠(yuǎn)count 還沒到 40 就被重置了。為什么用距離平方而不是實際距離因為math.sqrt是浮點運算在 Python 的循環(huán)里對每個輪廓點都開根號一幀幾十毫秒的延遲就是從這里來的。距離平方的單調(diào)性和距離一致不影響最值比較但省掉了大量開方運算。這是原項目里很實惠的優(yōu)化。3.4 指尖過濾的兩道閘門低于手心不算、靠太近不算找到局部最遠(yuǎn)點之后還有兩道過濾這是原項目里容易被人忽略但實戰(zhàn)價值最高的部分。第一道是高度過濾if center[1] res[notice][0][1]: continuecenter[1]是重心的 y 坐標(biāo)res[notice][0][1]是候選點的 y 坐標(biāo)。圖像坐標(biāo)系里 y 向下增大所以center[1] 候選點 y意味著候選點比重心更低。如果它比手心還低那大概率是小臂或者手腕的邊緣凸起不是手指。這個假設(shè)在手掌朝下、手指向前伸的手勢下成立但如果你做的是手掌朝上的手勢指尖會比重心低這一條會把所有指尖都過濾掉。用這個項目時手勢固定成掌心朝下會更穩(wěn)。第二道是距離過濾for j in range(len(fingerRes)): if abs(res[notice][0][0] - fingerRes[j][0]) 20: flag True break這是檢查候選點和已確認(rèn)的指尖在 x 坐標(biāo)上是否太近。x 坐標(biāo)差小于 20 像素視為同一個手指的重復(fù)檢測。注意這里只比了 x 坐標(biāo)沒比 y 坐標(biāo)——因為手指豎直伸出時同一個手指的輪廓點分布在同一 x 區(qū)間內(nèi)的不同高度x 是最有區(qū)分度的維度。如果攝像頭是橫著放的這個判斷會失效你需要改成同時比較 x 和 y或者干脆算兩點歐氏距離。20 這個閾值對應(yīng)的是 640×480 畫面下正常手指寬度的像素量。攝像頭分辨率更高時這個值要等比放大比如 1280×720 畫面下建議調(diào)到 40。4. 從指尖到手指數(shù)鍵盤模擬與控制邏輯4.1 win32api 模擬按鍵空格鍵的按下與釋放指尖檢測完成后cnt 就是當(dāng)前幀識別到的手指數(shù)。原項目把它用來控制空格鍵win32api.keybd_event(32, 0, 0, 0) win32api.keybd_event(32, 0, win32con.KEYEVENTF_KEYUP, 0)keybd_event的第一個參數(shù)是虛擬鍵碼32 對應(yīng)空格第二個參數(shù)是掃描碼0 表示不指定第三個參數(shù)是標(biāo)志位0 表示按下win32con.KEYEVENTF_KEYUP表示釋放。這里有個容易踩的坑按下和釋放之間沒有延時很多程序檢測不到這么快的擊鍵。我一般會在兩次調(diào)用之間加一個time.sleep(0.05)模擬真實按鍵的持續(xù)時間import time win32api.keybd_event(32, 0, 0, 0) time.sleep(0.05) win32api.keybd_event(32, 0, win32con.KEYEVENTF_KEYUP, 0)還有一個問題是連續(xù)觸發(fā)。只要手勢保持 3 根手指每幀都會觸發(fā)一次按鍵一秒鐘 30 幀就是 30 次空格。原項目沒有做防抖。實際使用時我會引入一個冷卻時間last_trigger_time 0 if triggerSwitch is True and cnt 3: current_time time.time() if current_time - last_trigger_time 0.5: win32api.keybd_event(32, 0, 0, 0) time.sleep(0.05) win32api.keybd_event(32, 0, win32con.KEYEVENTF_KEYUP, 0) last_trigger_time current_time這樣做的好處是想觸發(fā)翻頁就快速比個 3然后放下不用一直舉著手。0.5 秒的冷卻時間不會讓操作變得遲鈍但能擋住 90% 的誤觸。4.2 三種模式的狀態(tài)機(jī)b 捕獲、r 重置、n 開啟程序的交互邏輯通過鍵盤事件切換狀態(tài)核心是一個布爾變量isBgCaptured和triggerSwitch。初始狀態(tài)下isBgCaptured為 0程序只做畫面顯示不做任何手勢檢測按下 b 鍵背景模型建立isBgCaptured變?yōu)?1開始檢測指尖按下 r 鍵背景模型置空回到初始狀態(tài)按下 n 鍵triggerSwitch變?yōu)?True此時檢測到的手指數(shù)目才會觸發(fā)鍵盤事件。k cv2.waitKey(10) if k 27: break elif k ord(b): bgModel cv2.createBackgroundSubtractorMOG2(0, bgSubThreshold) isBgCaptured 1 elif k ord(r): bgModel None triggerSwitch False isBgCaptured 0 elif k ord(n): triggerSwitch True注意cv2.waitKey(10)的返回值。它每 10 毫秒讀取一次鍵盤輸入返回的是按鍵的 ASCII 碼。ord(b)取 b 的 ASCII 碼這樣比較的是數(shù)字而非字符避免編碼問題。還有一個隱藏細(xì)節(jié)cv2.waitKey只有在當(dāng)前窗口獲得焦點時才能收到按鍵所以你必須先點擊 OpenCV 彈出的任一窗口再按這些快捷鍵。這套狀態(tài)機(jī)的設(shè)計思路值得借鑒把「建?!购汀赣|發(fā)」分成兩個開關(guān)避免攝像頭剛啟動背景還沒建模就誤觸發(fā)鍵盤。如果你想加一個暫停功能可以在 n 與 r 之間加一個 p 鍵把triggerSwitch設(shè)回 False這樣就不用重置背景了。4.3 打印的真實作用它是指尖檢測的調(diào)試工具代碼里在每幀檢測完指尖后有一行print(cnt)很多人以為只是單純的手指數(shù)輸出。在實際調(diào)試中這行打印的意義遠(yuǎn)不止于此當(dāng)你把程序連接到其他軟件比如游戲、PPT之前先通過終端觀察 cnt 是否穩(wěn)定可以快速判斷是檢測算法的問題還是鍵盤模擬的問題。我會把它擴(kuò)展成更完整的調(diào)試輸出print(fframe: {frame_id}, fingers: {cnt}, centers: {center})幀號和重心坐標(biāo)一起輸出能幫你判斷指尖檢測是不是發(fā)生了跳變。跳變的特征是相鄰兩幀手指數(shù)從 2 變成 4 又變成 2而你的手根本沒動——這種情況八成是距離法的 count 40 閾值太小或者高斯模糊核不夠大。不要開著攝像頭去猜終端輸出的數(shù)字是最誠實的反饋。5. 避坑指南OpenCV 版本、光照和誤觸這三座大山5.1 坑一OpenCV 4.0 后 findContours 返回值變化現(xiàn)象運行程序直接報錯提示not enough values to unpack (expected 3, got 2)。原因OpenCV 4.0 調(diào)整了findContours的接口舊版本返回(image, contours, hierarchy)三個值新版本只返回(contours, hierarchy)兩個值。項目源代碼按 OpenCV 3.4.0 寫的三個返回值在 4.x 下必然崩。解決兩個方案任選。方案一是降級 OpenCVpip install opencv-python3.4.0.14但要注意 3.4.0 與 Python 3.9 以上版本不兼容如果你是 Python 3.10 以上的環(huán)境這條路走不通。方案二更推薦把解包改成自動適配。cnt_result cv2.findContours(thresh1, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE) contours cnt_result[0] if len(cnt_result) 2 else cnt_result[1] hierarchy cnt_result[1] if len(cnt_result) 2 else cnt_result[2]這段邏輯的含義是返回值長度是 2直接取第 0 個作為輪廓長度是 3說明是老版本輪廓在第 1 個位置。這樣寫的好處是你的代碼在 3.4 到 4.8 的所有版本都能跑。5.2 坑二光照一換手直接融進(jìn)背景現(xiàn)象白天在窗邊跑得好好的晚上把燈一關(guān)手在 binary 窗口里大面積變黑或者背景里出現(xiàn)大片白色噪點指尖數(shù)量亂跳。原因這個項目的背景模型是在按下 b 鍵那一刻固定的后續(xù)完全不更新。白天和晚上的光線色溫不同MOG2 建的模型是基于白天的灰度分布晚上燈光一變所有像素的灰度值整體偏移背景就和手一起變成了前景。光照突變時整個畫面的灰度分布都變了背景模型必然失配。解決三條路。第一固定你的環(huán)境拉窗簾、固定燈光讓背景灰度在運行期間盡量不變。第二把學(xué)習(xí)率從 0 改成-1讓 MOG2 自動更新背景模型——但這樣手靜止不動幾秒手也被融入背景指尖會消失需要你用動手機(jī)制來避免。第三啟動后重新按一下 r 再按 b重新建模。這個方法最直接但治標(biāo)不治本。我實際項目里是加了一個簡單的光照補償取畫面左上角固定區(qū)域的灰度均值如果與初始背景的灰度均值偏差超過閾值自動觸發(fā)一次重新建模。roi frame[0:50, 0:50] current_brightness np.mean(cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY)) if abs(current_brightness - initial_brightness) 15: bgModel cv2.createBackgroundSubtractorMOG2(0, bgSubThreshold) isBgCaptured 1這里 initial_brightness 是按下 b 鍵時從同一個位置采的灰度均值15 的閾值能容忍正常的緩慢光線漂移又能及時響應(yīng)燈光切換。5.3 坑三靜止手勢觸發(fā)鍵盤連發(fā)現(xiàn)象只比了 3 根手指沒有動空格鍵被不停觸發(fā)翻頁根本停不下來。原因代碼沒有防抖。triggerSwitch為 True 后只要 cnt 3每幀約 33 毫秒都執(zhí)行一次keybd_event每秒觸發(fā) 30 次按鍵。這在操作系統(tǒng)層面是合法的但目標(biāo)程序會認(rèn)為你按住空格沒松手。解決加入冷卻時間我自己用的是 0.5 秒閾值在前文有過代碼。這里再補充一點如果你希望手勢保持時只觸發(fā)一次還可以加狀態(tài)鎖prev_cnt 0 if cnt ! prev_cnt and cnt 3: # 觸發(fā)按鍵 prev_cnt cnt邏輯是只有手指數(shù)發(fā)生變化時才觸發(fā)手勢保持不動則不產(chǎn)生新事件。這個方案適合「比 3 翻頁、比 2 返回」的場景因為每次換手勢才需要一次按鍵。如果同一個手勢要連續(xù)觸發(fā)多次比如比 3 連續(xù)翻多頁冷卻時間方案更合適。5.4 坑四mask 窗口全是黑的現(xiàn)象按 b 鍵之后mask 窗口沒有任何白色區(qū)域binary 窗口里也看不到手。原因多半是背景建模時手已經(jīng)在畫面里。MOG2 建模時如果手是靜止的它會被當(dāng)成背景的一部分你把手拿走再比手勢背景模型里那個位置是手的灰度值而新進(jìn)來的手也是那個灰度值差分結(jié)果為零。另一個常見原因是cap_region_x_begin0.5你的手在畫面左側(cè)壓根不在檢測區(qū)域內(nèi)。解決第一步按 b 之前把手從攝像頭畫面里移開等 1 秒再按第二步確認(rèn)手在畫面右側(cè)的紅色矩形框內(nèi)第三步如果還是黑的按 r 重置再重新按 b多試兩次。還不行就把 threshold 滑條往左拖降低到 30 左右讓更多的灰度差異被識別為前景。5.5 坑五同事的電腦上跑不起來現(xiàn)象代碼在自己的機(jī)器上一切正常換一臺電腦報錯ModuleNotFoundError: No module named win32api或者攝像頭一直黑屏。原因win32api 是 pywin32 庫提供的不是 Python 標(biāo)準(zhǔn)庫也不是 OpenCV 自帶的。pip install pywin32不裝這個程序在 Windows 上就跑不了。攝像頭黑屏則可能是電腦自帶攝像頭被占用比如 Zoom、微信等軟件正在使用攝像頭VideoCapture(0)搶不到資源。解決在項目文件頭部加一個依賴檢查try: import win32api import win32con except ImportError: raise SystemExit(Missing pywin32, run: pip install pywin32)攝像頭被占用的問題關(guān)掉所有可能占用攝像頭的軟件然后重啟 Python 進(jìn)程。如果你用的是外接攝像頭把VideoCapture(0)改成VideoCapture(1)設(shè)備索引從 0 開始0 通常是內(nèi)置攝像頭1 是第一個外接攝像頭。設(shè)備忙時 OpenCV 不會報錯只是ret為 False可以在camera.read()后面加個判斷ret, frame camera.read() if not ret: print(Failed to read from camera, check if it is occupied) continue6. 讓指尖檢測更準(zhǔn)的驗證方法單步回放與邊界數(shù)據(jù)整個程序最讓我頭疼的不是算法本身而是「感覺不對但說不清哪里不對」。后來我養(yǎng)成一個習(xí)慣不管項目多小都要給自己留一條單步驗證的路。具體做法是把攝像頭輸入換成本地視頻或圖片序列這樣才能復(fù)現(xiàn)同一組手勢。做法很簡單把camera cv2.VideoCapture(0)換成camera cv2.VideoCapture(test.avi)代碼其他部分不用改。本地視頻不受光線、手的位置影響同一幀跑到那里檢測結(jié)果應(yīng)該完全相同。如果兩次跑同一幀結(jié)果不一樣那一定是程序里有隱式狀態(tài)泄漏。驗證手指數(shù)目有個更系統(tǒng)的辦法錄制 5 段短視頻每段固定比 1 到 5 根手指每段 10 秒。跑完程序后統(tǒng)計每幀輸出的 cnt 分布看這 10 秒內(nèi) dominant出現(xiàn)最多的手指數(shù)是不是和手勢一致。比如比 3 的手指理想輸出是大部分幀 cnt 等于 3偶爾跳到 4 或 2 屬于正常如果超過一半的幀都不在 3 上就要回頭調(diào) threshold 或者 blurValue。我一般會用一個小腳本統(tǒng)計from collections import Counter counts Counter(all_cnts) total_frames len(all_cnts) accuracy counts[expected_fingers] / total_frames print(faccuracy: {accuracy:.2%})把準(zhǔn)確率跟 80% 這個基準(zhǔn)比高于 80%這個手勢可以實際使用低于 80%先別急著上鍵盤模擬回去調(diào)參。影響準(zhǔn)確率的因素按權(quán)重排序第一是光照環(huán)境一致的條件下能顯著提精度第二是 blurValue核太大會把相鄰手指的邊緣糊在一起第三是 threshold它決定手指邊緣的完整度第四才是距離法的 count 參數(shù)。另一個簡潔有效的驗證法是畫輪廓點軌跡。把每一幀的指尖坐標(biāo)存進(jìn)列表跑完一組手勢后一次性畫出來你會直觀地看到指尖檢測的穩(wěn)定性。指尖應(yīng)該是幾個清晰的簇而不是一大片散點import matplotlib.pyplot as plt xs [p[0] for p in tip_history] ys [p[1] for p in tip_history] plt.scatter(xs, ys, s1) plt.show()指尖坐標(biāo)如果散得像噪點說明輪廓不穩(wěn)定優(yōu)先檢查高斯模糊核和 MOG2 的前景閾值而不是去調(diào)指尖檢測邏輯。如果簇很清晰但位置漂移那多半是攝像頭自動白平衡在起作用可以考慮用camera.set(cv2.CAP_PROP_WHITE_BALANCE_BLUE_U, 0)禁用自動白平衡。從那以后我每次拿到這類視覺檢測項目都會強(qiáng)制自己先錄一段固定視頻再跑不把時間浪費在「這次手放的位置跟上次不一樣」這種不可控變量上。這個方法幫我在這個項目里至少省出了半天調(diào)試時間希望你也能用它少走彎路。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
久久三区四区| 美女91在线观看| 超碰97丝袜| 神马久久久久久久久久久久| 日韩精品三区四区| 亚洲色人妻综合| 免费簧片在线观看| 影音先锋日本一区二区| 神马久久午夜| 国产精品视频在线观看| 操91| 欧美在线伊人色| 再深点灬舒服灬太大了好硬好爽| 性爱边摸边日免费AV| 最近二区三区视频大全| 色偷偷2020免费视频播放| 精品国产一区二区三区久久久蜜臀| 国产日本久久免费精品| 中文精品一区二去| 91美女视频在线观看| 欧美偷偷网| 欧美国产有色电影| 上床不卡网站| 91艹逼精品| 青青11操操操操操操操操| 欧美亚洲中文字幕| 免费A V在线播放| 超碰免费人妻人人| 国产97亚洲| 色约约一区=区三区| 91AV天堂| 亚洲天堂久| 欧美色图成人网一区二区| 五月婷婷影院| 岛国小电影| 亚洲天堂区| 婷婷色色五月| www.夜夜操| 久久精品性| 亚洲精品日日夜夜52| 亚洲一区二区精品福利| 桃色五月天| 九九99精品| 久久人妻精品| 98一区二区精品| 欧美九9 9 9| 四色永久成人网站| 久久久9品一区二区三区| 大香蕉综合| 少妇与黑人高潮在线| 啊啊啊好湿久久| 2025亚洲男人天堂| 老司机午夜精品福利视频一区二区| 亚洲情色在线| 999999精品| 97在线免费看视频| wwwxxx日本爽| 亚洲啪啪性视频| 亚洲欧洲另类| 性色中出| 人人澡人人澡人人| 亚洲欧美黄| 1000部熟女视频在线观看| 国产精品黄色三级av| 欧美另类综合久久| 国产四虎在线| 青久久| 丰满人妻一区二区三区免费 | 国产极品粉嫩馒头一线天av| 自拍鲍鱼一区在线高清观看免费| 啪啪视频mP4| 久久综合日韩亚洲欧美| 97精品在线| 91天堂网| 色爱国产| 久草婷婷| 亚洲天堂资源在线| 日韩色欲久久一二三四区| 日韩中文字幕二区| 色天使大香蕉| 99999亚洲| 91伊人久| 久久久久久午夜男人的天堂| 偷拍片久久| 国产精品九九九| 丁香五月激情婷婷| 亚洲日本天堂| 国产精品永久免费10000| 8050午夜少妇无码| 亚洲美女 晚间男人天堂| 亚洲综合色图欧美| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 大香蕉AV丝袜| 精品玖九九久| 亚洲国产麻豆一区二区三区 | 中文字幕一二三| 欧美黄色片AAAAA| 蜜臀色乳| 日韩性爱视频在线免费观看| 狠狠躁AV| 超碰97护士| 日韩乱插| 久久人妻无码毛片A片麻豆| 国产又黄又爽| 欧美亚州手机在线| 高精欧美色| AAAAAAAAA黄片| 物尤视频一区二区| 92性色国产午夜福利在线661| 激情看片网站| 九九九九九九精品| 亚洲第一在线视频| 久操| 欧美极品少妇交| 亚洲综合色图欧美| 观看视频图片一区二区三区| 国产女大学生AV| 日本色色网| 国产免费小视频| 婷婷精品视频| 亚洲 日本 不卡| 全球成人中文在线| 熟女熟妇伦久久影院毛片一区二区 | 久草尤物| 磁力99AV| 操逼大黄片| 丝袜美腿校园春色| 欧美日韩性爱无码| 国内外激情在线| 国产伦精品一区二区三区在线观| 国产久久久久久| 亚洲天堂综合AV| 伊人骚琪琪亚洲天堂网站| 五月婷婷六月丁香| 精品久久无码午夜福利 | 国产Av超碰| 久久久久久久久久黄色网| 亚洲欧美成人网站AAA| 亚洲最大91网| 人人操我人人干| 91撸色网 玖玖网 欧美| 亚洲第2页| 97欧美色综合| 狠狠操天天干| 日本成人A片免费看| 一区二区国产视频在线观看| 东京热免费视频| 91亚洲欧洲| 91美女在线视频| 久久久国产成人一区二区三区在线 | 亚洲熟女诱惑| 久久久久ab| a在线视频免费观看| 9久久精品| 精品人妻一区二区免费蜜桃| 亚洲中文日韩精品| 中文字幕精品探花视频| 国产精品乱码久久久、久久| 久久久久久久久久久久久久久性生活视频 | 亚洲欧美人妻| 外国免费性情大片| 欧美青青草视频| 伊人久久88国产女| 精品人妻一区二区视频| av黄图片在线观看| 四虎884| 污污污8888| 精品一区二区三区蜜桃臀赵总 | 久久男女激情视频网站| 秋霞一集毛片观看| 美女啊啊啊啊啊啊| 欧美综合网站999| 丝袜喷水在线| 丁香五月激情综合| 日韩精品在线观看网站| 亚洲国产精品成人综合| 蜜臀久久久99久久久久 | 国产色精品午夜大片| 欧美性暴力| 夜夜夜夜爽| 欧美黑人与女人91~| 成人性爱电影网| 日本性爰一道本| 久久少妇| 青青在线视频日韩欧美| 美欧色综合| 天天搞欧美| 99精品高潮| 欧洲Au麻豆| 操碰97| 久久草大香蕉| 99re69| 人人摸人人干| 丁香五月婷婷基地| 开心六月色| 中文字幕av亚洲在线| 久久综合国产精品国产| 老司机深夜18禁污污网站| 一区二区播放| 男人的天堂日本东京热| 熟女AV一区| 美女91在线观看| 性感女人网页在线观看视频| 六六久久日韩不卡| 亚洲妇色| 久久综合精品一区二区三区| 夜夜操av亚洲一区二区| 麻豆区99999| 丰满欧美少妇| 九九热视频这里只有精品| 一区二区你上我| 人妻啊啊人妻啊啊| 九九久久九九久久| 四虎 精品 WWW| 日本99视频| 99这里有精品视频| 日韩美脚一区二区网站| 精品人妻一区二区乱码一区二区| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 中文字幕一二三av| 99re免费| 人妻丰满熟妇一区二区三| 亚洲国产91精品一区二区久久| 亚洲欧美高清无码| 欧美性爱www免费版| 国产中文精品一区二区在线观看| 黄片不用下载在线观看| 中文字幕 一区二区 亚洲无码| 青青网三级视频| 国产白领连续中出在线观看| 精品综合久久久久久97| 97亚洲精品超碰| 久久久新亚洲AV| 香蕉国产精品麻豆亚洲欧美日韩| 尤物网址| 久久婷婷视频| 亚洲精品骚逼| 欧成人精品一区二区三区| 亚洲精品99999| 日本乱人伦片中文三区| 日韩,欧美,中文在线| 五月丁香狠狠爱| 9 7超碰在线免费观看| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 国内亚洲高清无码| 破苞ⅩXXX性无码动漫无码| 日韩中文欧美| 91爱看| 91n欧美| 操逼日批| 中文字幕少妇色 | 国内一区二区免费| 熟妇操花| 超碰98综合网| 亚洲一级黄色毛片| 夜夜操2028| 国产青青美女玩逼视频| 中文字幕一二三| 亚洲国产精品无码AV在线| 吻戏激情性巴克| 男人精品天堂一区| 亚洲一二三四区| 性做久久久久久久| 偷窥自拍亚洲色图| 激情内射| 欧美刺激色黄片免费看| 久久久久久久久久久999| 久久国产乱子伦精品免费女,网站| 中文字幕国产| 日韩中文字幕熟妇人妻| 91天堂网| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 极品色综合| 国产亲戚伦亲在线| 级品肉射| 欧美精品久久久久久久丰满| 偷拍 精品另类 凸凹了四区| 精品夜夜澡人妻无码AV| 99精品久久久久久久婷婷蜜桃| 久9久9精品| 亚洲自拍偷拍视频在线| 日韩乱码Av| 欧美日韩亚洲少妇寂寞影院正在播放| 人人操人人摸人人看人人干| 老司机免费视频在线91| 亚洲 自拍偷拍 欧美| 97色冈| 亚洲狠狠入| 国产成人免费观看在线视频| 校园春色美腿丝袜| 青青草丝袜在线视频| 污污污8888| 精品国模无码| 狠狠躁日日躁夜夜躁A| 麻豆国产精品午夜视频| 婷婷成人久久久精品| 91人妻熟女| 91久久精品国产| 欧美综合网| oumeisetu综合| 高清孕妇孕交 交| 久操热线| 免费观看日本操逼视频| 熟女在线视频| 欧美精品成人在线播放| 久久色AV线| 欧美丰满熟妇XXXX性ppX人交| 欧美亚洲色的图| a级理论午夜日本| 人妖欧美一区二区| 啊啊啊啊一区| 久久久久久久久久久免费精品| 天堂国产AV| 操逼操网| 国产激情在线| 综合网欧| 黄片在线免费在线观看| 天天综合青苹果| 日韩偷拍色图| 国产AV激情无码久久无码| 久湿久久| 91色艳| 九九精品无码专区免费| 大香蕉92| 国产久久久9999| 综合欧美激情网| 日日躁天天躁狠狠躁| 99自拍B亚洲 | 亚洲一区深夜| 在线岛| 超碰天天去日穴| 综合网~91综合网| 不卡啪啪视频| 超碰在线人妻中文字幕| 超碰69| 久久久人妻| 极品销魂美女一区二区| 婷婷性网| 青青操视频在线| 亚州国产精品乱| 国产高清吃奶免费视频网站| 97亚洲自在精品在线观看| 青青草在线成人视频| 亚洲天堂中文字| 综合五月天| 97精品97| 老鸭窝亚洲毛片| 色久桃花影院在线观看| 97免费视频在线| 青青欧美| 97大色网| 国产久久久9999| 一区二区三区机械有限公司| 熟女字幕| 岛国激情视频软件| 999久久久免费精品国产牛牛| 无码人妻丰满熟妇区毛片| 吉田爱美AV在线| 蜜臀国产AV中文字幕| 天天干夜夜一操| 中文日本免费高清| 国产对白刺激视频| 日本日逼高清| 91东京热男人的天堂| 97精品在线视频| 大干人妻| 东北操逼| 久久熟女嫩草成人片免费 | 国产辣妈在线视频福利| 玖玖爱影院| 九九热精品视频六| 亚洲色图8| 97视频在线免费播放| 欧美激情欧美精品| 欧美日日夜夜| 精品福利视频| 黄色乱论网站| 免費人妻夜夜爽天天爽爽一区| 五月丁香网站| 日韩精品一二三四| 久操九九九九| 99999精品视频| 久久久一热在线播放| 久都青青视频| 国产精品2020| 中国熟女91| 97视频在线免费播放| 日韩欧美资源| 99999这里都精品| 啊啊啊在线看| 日产精品久久久一区二区| 超碰社区97| 美女爽到高潮91| 亚洲无码一区成人免费午夜| 91人人| 国产精品久久久啊| 国产午夜在线观看视频| 手机在线中文字幕国产| 不卡免费av在线播放| 大香蕉黄色一区| 九九热九九| 久久久久免费少妇| 午夜呻吟欧美| 亚洲熟妇白浆无码AV| 无套后入双马尾| 精品午夜福利| 草草影院最新网址| 五月婷婷色色| 欧美性,色九九| 九九九九九用不成了| 九99久久| 亚洲 欧美 日韩 国产一区二区| 黄色香蕉视频网站一区| 女人爽到高潮潮喷18禁网站| 91xingse| 4虎在线视频| 天天综合中文字幕 91| 牛牛AV人人夜夜澡人人爽| A级毛片在线看免费| 婷婷五月天激情网| 亚洲一二三四区机械| 综合久久99亚洲人妻中文在线| 欧美人妻一区二区| 国产午夜福利专区综合| www色日本| 男人的天堂2018东京热啪啪啪| 欧洲亚洲人妻无码中字久久三区四区| 伊人嫩草| 欧美性爱91| 男人天堂一区二区| 国产欧美黑人丰满在线| 极品国产内射| 乱老女人一区二区视频| 精品96久久| 极品色综合| 国产一区二区精品久久99| 久久久蜜桃一区二区三区| 97 九色| 91性色| 日韩欧美经典在线观看| 嗯嗯啊好大| 999精品乱码| 欧美东京热精品A∨| 厕所偷拍在线| 久久岛国| 色综合久久久久| 国产乱码精品久久久久久 | 2001天天操| 久久国产精品视频| av绯色| 麻豆久久久久久久久丝袜 | 亚洲男人天堂视频| 免费一级黄色录像影片| 乱老熟女一区二区三区| 亚洲国产精品成人久久蜜臀| 久久麻豆一区二区| 久久久人妻| 色噜噜婷婷| 婷婷探花久久精品一区| 操逼逼无码| 欧美日韩美女精品久草一区二区三区| 日韩精品国产一区二区| 情色av电影| 亚洲超碰97| 久久免费老司机精品| 丰满人妻-区二区三区免费看| 国产中文字幕曰本毛片| 国产吹潮女在线观看| 午夜偷拍久久熟女| 久操av在线| 五月丁香社区婷婷日韩欧美精品影院 | 天天淫人人妻日日色| 日韩有码专区| 四虎影视在线| 亚洲密乳AV| 国产中文福利| 色嗨嗨在线| 欧美日韩97在线| 黄色免费网页无码| 黑人精品欧美一区二区蜜桃| 97人人草| 中文字幕在线免费观看2| 亚洲精品一区二区三区新线路| 国产熟女精品一区二区| 欧美少妇第一页| 亚洲一区二区三区不卡国产欧美| 国产精品久久久999| 乱伦AVxx| 久一区久久蜜桃| 国精品一区二区三| 欧美老妇曰批的视频| 久久久91福利姬| 99久久久| 国产亚洲性生活视频播放| 亚洲欧美日韩电影网站一区 | 夜夜精品视频一区二区| 日韩人体偷拍| 久久直播国产| 变态综合色| 嗯嗯啊啊啊好舒服| 亚洲国产欧美另类自拍| 又黄又硬又粗又长国产视频| 不卡人妻少妇精品毛片一区23区视频| 日本黄色大片一级视频免费麻豆| 人妻丰满熟妇av无码区蜜桃| 蜜臀av中字字幕网站| 377p欧洲日本亚洲大胆| 精品久久久久久久| 97在线青| 欧美熟女少妇| 十八禁成人网站在线观看| 国产馆| 欧美色天堂网在线视频| 熟妇熟女视频一区二区三区| 亚洲字幕一区二区| 另类图片天天影视| 狠狠爱AV| 日韩精品三区四区| 久久婷婷影院| 亚洲国产一区二区入口| 神马麻豆福利院| 欧美综合 站| 日韩乱码Av| 粉嫩绯色AV一区二区在线| 日韩免费a级毛片无码a∨| 国产精品粉嫩福利在线| 日日干夜夜操视频h| 五月婷婷性爱| 日韩久久.一级黄色片| 九九九九精品| 久9精品| 一二区在线观看视频| 嗯嗯啊啊好疼| 欧美色图亚州激情| 国模限制级电影| 中文字幕在线日亚洲9| 亚洲小电影免费涩涩成人在线高清| 亚欧美综合网| 欧美性夜| 激情欧美97| 亚洲精品熟妇1区2区3区。| 欧美在线色| 精品无码一二三四区| 91久久精品蜜臀| 大香蕉黄色一区| 99在线观看| 国产欧美亚洲精品a第2页| 久久东京伊人一本到鬼色| 欧美精品精品一区二区| 放黄片放3级黄片没穿衣服| 精产品久久| AV色女综合| 超碰精品97| 久久精品无码熟妇一区二区三区视频导航| 亚洲欧美国产va在线| 欧美亚洲美少妇一区二区| 78p欧美| 久久免费看高潮毛片韩国| 人妻一区二区三区| 久久综合精品一区二区三区| 色色99| 久久久久密臀一区二区| 情色五月天网| 亚洲日韩黑丝| 中文字幕一区二区无码成人| 日本天天干天天操一区| 亚洲精品97| 好色综合| 91丨豆花丨熟女| 黄页视频网站野外| www.av在线观看| 亚洲成av人片色午夜乱码| 免费A V在线| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 婷婷五月天色| 久久熟女人| 久久国产精品,久久国产| 午夜啊啊啊| 青青草中日韩在线| 91精品人妻一区二区三区蜜桃| 三久久久四久久久久| 超碰97人妻免费在线| 黄色激情电影在线观看| 99热只有这里有精品| 97色在线| 妇人噜噜| 不卡二三区人妻少妇| 秋霞Av理论一级在线| 小视频玖玖| 色播丁香| 精品国产乱码久久久兰草影视| 加勒比性爱成人在线| 日韩情色一区二区| 乱伦1色页| 六月婷婷综合| 欧美91精彩| 欧美宗合网| 亚川综合视频| 久久人妻视频网| 亚洲区限制级| 诱惑网综合| 操逼啊啊啊91| 射丝袜高跟鞋99| 九9精品| 天天视频黄| 偷窥自拍亚洲天堂网爆| 97色色国产视频| 欧美一级二级三级| 一级特级aaaa毛片免费观看 | 天美麻豆一区二区三区| 国产东北女人在线视频| 97久久久久久久精| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 欧美拳交在线播放| 欧美日日人人天天| 亚洲国产一区二区日韩专区| 又大又白奶子| 大香蕉一人| 欧美性爱日韩性爱| 又大又长又粗又爽又黄| 色婷婷一区二区三区久久| 丁香六月婷| 国产白丝网站| 欧美无圣光在线| 天天干天天操天天干天天操| 国产精品久久久| 九九九九九九九九九九精品视频| 91chinese在线| 视频一区二区三区精品| 欧美淫乱视频| 超碰97色色| 日本人妻A片成人免费看片| 翔田千里A片一区二区| 欧美高潮| 蜜伊人色综合97| 人人考人人摸人人干| 中文字幕第9页萱萱影音先锋| 欧美在线综合| 欧美综合加勒比在线| 亚洲中文字幕精品久久久久久直播| 中日韩免费看男女操逼大全| 妇女乱色二区| 级品肉射| 久九干| 五月婷婷色色| 久草免费在线一区二区| 久久精品久久久久久久久| 麻豆 美女 丝袜 人妻 中文| 久久久久婷婷精品av电影| 丝袜综合色图| 91婷婷伊人狠人| 国产尹人在线视频免费| 岛国色情视频在线观看| 国产1024在线播放| 亚州男人天堂| 欧美亚洲今日在线| 亚洲有薄码区久久在线一区| 欧美韩日精品资源| 免费网色网站| 美女裸体麻豆天美蜜桃91| 男人的天堂在线有码| 国内精品久久久久影院亚洲| 日韩色| 亚洲熟女精品| 国产一区二区免费福利片| 欧美日韩在线小说| 91性片| 777超碰| 成人国产二区三区在线,男女精品。| 任我爽在线视频免费观看| 大香蕉在线视频重口味毛片在线| 欧美熟妇乱码在线一区| 97精彩视频网站| 超碰97欧美在线| 插入综合网| 亚州少妇| 青青操97| 97色诱| 性色av一区二区| 91日产欧美| 97一区二区三区视频| 亚洲91网站| 日本欧美m v精品网站加| 超碰欧美在线欧美| 九九超碰综合网| 夜夜无码| 男人久久天堂| 人妻一区二区三区四区视频| 国产精品内射婷婷一级二| 欧美成熟性爱精品| 亚洲阿v天堂无码z2018| 欧美一级A片不卡视频。| 男人高清无码一区二区| 午夜精品探花| 99精品在线| 五月久久HDAV| 97国产天堂岛| 51一区二区三区| 久草电影网| 91成人无码| 四虎午夜影院| 日韩成人性爱AV| 五月婷婷丁香| 九九久久久久久爱| 日韩图区| 91制服丝袜| 日本淫乱女一区二区三区视频| 韩三级a视频在线观看| 51一区二区三区| 丁香五月天激情| 欧洲免费一区二| 国产精品天干天干综合网麻豆| 夜夜爽夜夜摸夜夜操免费视频| 久久久久白虎| 久久久国产av美女私房| 成人乱码一区二区三少妇| 久久久97| 亚洲天堂第一页| 免费精品AB| 很很操在线| 日本人人操人人操| 欧美人妻精品| 亚洲在钱| 色欲Av人妻精品一区二| 亚欧高清在线| 少妇天堂网络| 天躁夜夜躁2021| 影音先锋日本一区二区| 国产精品青草综合久久| 激情图片亚洲色图| 97chaopenrihan| 蜜乳中文字幕a在线| 强免费黄色网址| 美国久久一二三四| 777超碰| 老司机射| 精彩国产视频播放1区2区| 精品二区三四区五电影 | 日本熟妇自慰性高潮一区二区三区| 四方色播| 中文字幕免费看大片| 亚洲美欧999| 欧美人妻制服| 免费啪啪一级视频| 口爆欧美91| 亚洲激情视频| 2020国产精品| 欧美性综合| 中文字幕第9页萱萱影音先锋| 曰韩无码777| 97超视频在线观看| 中文AV制服乱伦| 小泽玛利亚一二三| 91欧美少妇| 大香网站| 天天摸天天舔天天操| 在线亚洲 欧美 日本专区| 口爆综合网| 熟人人妻少妇精品久久| 囯产操逼片| 夜夜骑操视频| 国产女人与拘做受视频免费| 天美一二三在线观看Av| 久久精品人妻一区| 夂久色| 欧成人精品一区二区三区| 俺去俺来也在线www| 啊啊啊啊啊啊啊网址在线观看| 久久精品人人做人人看| 夜夜爽妓女| 狠狠操使劲操| 九九热男人天堂| 亚州性9| 国产少妇肉丝在线观看| 欧美亚洲天天| 五月天成人综合| 日比av无码| 久久五月婷| 亚洲激情久久久伊人综合| 在线观看av区| 日韩毛片9| 在线观看日韩av不卡| 99热国产| 欧美成人午夜免费福利785| 日韩精彩视频| 香蕉久久国产AV一区二区| 91热热色| 丝袜美腿欧美| 日韩成人高清一区二区| 97人人中文网| 精品毛片av一区二区| 蜜臀久久99精品| 草草网站影院白丝内射| 亚洲男人天堂视频| 国产亚州日韩欧美看片| 综合少妇网| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 久久精品国产精品亚洲艾通辽熟妇 | 久久精品人妻一区二区| 欧美东京热精品A∨| 黑白配性爱AV成| 日韩精品国产精品五码一区二区| 久久午夜色播影院免费高清| 欧美色图天堂网m| 综合五月婷婷亚洲一区| 欧洲站一级二级三级h| 国产精品大香蕉| 亚洲欧美综合| www.男人天堂| 人人爱操| 51久久夜色精品国产麻豆| 4虎在线视频| 俺去也婷婷| 精品人妻一区二区三区四区石在线 | 偷窥自拍A片| 性色亚洲| 欧美91丝袜| 九九无码| 成人一级性爱| 超碰色大香蕉| 亚洲乱色视频一区、二区在线| 人人操人人插人人摸人人干| 丝袜美腿操av| 色诱中文字幕| 九月婷婷久久| A级毛片在线看免费| 精品少妇一区二区三区| 台湾佬中文娱乐自偷自拍| 欧美日韩香蕉| 亚洲无码电影久久久| 国产精品乱码久久久、久久| 中文字暮97| 黄片无码在线制服| 欧美日本成人一区二区| 学生妹天天看| 啊啊啊好湿国产一二| 抽插无码高清一区| 国语对白露脸XXXXXX | 婷婷五月天久久精品视频一区二区三区 | 九九九九热只有精品| 国产精品乱码久久久久久久久久久久| 亚洲AV无码国产精品久久久久| 国产精品视频内谢女人| 欧美第五页| 青青草啪啪网| 98一区二区精品| 福利在线观看一区二区| 欧美日韩在线视频网站| 综合熟妇一区二区三区| 青青草色插素人| 91色碰| 九九热超碰| 免费啪啪一级视频| 人人做,人人操,人人摸| 精品黄色电影| 日天天九九天堂666| 欧美综合网1| 裸模AV女优| 久久极品一区二区| 性爱乱伦一区| 无码WWW免费视频网站| 国产亚洲福利第一页丝袜| 94色色电影网| a啊啊啊啊啊啊啊啊一区二区| 不卡一区视频| 国产成自自拍在线观看| 精品一区96| 亚洲美乱| 日夜啪电影| 小少妇| 亚洲天堂男人在线| 九九黄色网| 日韩中文字幕二区| 人人爱人人操人人性| 无套内射人妻在线播放| 高潮的A片激情扒开一区| 26uuu久久| 日韩无码极品| 性色AV网站| 大学生美女口爆| 少妇久久久久久| 亚洲另类春色| 日韩亚洲欧美中文字幕| 大香蕉淫人网| 青青草国产欧美非洲黑人| 欧美色图91| 女生久久网| 欧美狠狠| 色吧5亚洲| 中文AV制服乱伦| 天堂69亚洲精品中文字| 被男人吃奶很爽的毛片| 欧美一区二区日韩三区| 精品久久久高清无码| 久草免费福利在线播放| 操我无码| 天天肏夜夜肏| 床上啊啊啊一区二区三区| 加勒比大香蕉视频在线| 丝袜夫妻自拍| 啊啊啊好舒服好爽啊啊啊视频| 国产精品。| 国产乱子伦一区二区三区免看| …中文字幕亚洲乱,97人妻无码费视…| 97超碰欧美手机在线| 伊人宅男大香蕉| 久艹日日日| 国产亚洲福利第一页丝袜| 丰满人妻一区二区三区性色| 亚洲高清无码在线桃色| 国产精品国产拍高清AV| 另类图片五月| 96免费视频在线| 亚洲天堂电影网| 91 天天综合| 国产亚洲99久久精品熟| 国产东北女人在线视频| 国产精品无码AV网站| 男人的天堂亚洲| 日本日日色视频| 97精品网站| 亚洲精品少妇| 巨爆乳一区二区爆乳区| 91在线无码精品秘 软件| 嗯嗯啊中文字幕| 国产人妻一区二区三区欧美毛片| 91激情国产| 伊人天天久久动态图| 韩日性爱av| 欧美亚洲日韩人妻在线观看| 插老姨肥穴| 久久精品成人| 色屁屁影院www国产| 操逼网站视频漫画国产| 天天操女人| 亚洲色图第一页| 97视频免费在线观看| 日韩 欧美 另类 人妻| 五月天激情网站| 一区,二区,三区视频| 久久久久久久久久久久97| 日本黄色精品专区网站| 五月丁香六月婷| 国产偷仑| 91天天综合日韩欧美| 丰满人妻一区二区三区四区| 黑操B| 色97综合中文字幕| 无码直播久久久| 99色| 日本国产二线女色| 国产精品久久久久久久久久梁医生| 超碰免费人人| www.男人天堂| 无码久久国产| 婷婷月色| 偷拍新久久| 精品国产一区二区三区四区在线看| 水野优香在线观看| 加勒比久久av| 国产成人精品必看| 青青草原人妻| 日本熟妇人妻一区二区三区| 秋霞久久亚洲精品成人| 无码欧美有限公司| 九九九九热只有精品| 一本一道vs波多野结衣| 神马久久中文字幕| 欧美999| 可以免费观看的av| 日韩欧美~中文字| 亚洲一卡2卡3卡4卡乱码网站| 好看的91视频| 日韩97| 少妇 综合| 亚洲人妻精品一区二区| 婷婷AV一区二区三区| 亚洲自拍欧美色综合| 精品丝袜无码一区二区三APP| 亚洲av夫妻操穴网| 久久久555| 99操逼| 青草伊人网| 亚洲AV永久无码一区仙野| 秋霞鲁丝午夜无码一区二区三| 国产亚洲日韩欧| 亚洲天堂另类小说男人| 少妇久久久| 女人妻一区| V A在线| 97国产精品国| 久久婷婷电影网| 韩国女主播青草福利视频| 人妻一区二区三区熟女| 色婷婷激情| 亚洲熟女人妻中文字幕一区二区| 婷婷五月天AV| 久久精品久久久久久久| 日韩精品国产精品五码一区二区| 男人的天堂久久| 婷婷五月天激情小说| 欧美激情精品| 91天天日| 亚洲黄色视频在线观看视频| 自拍视频大全亚洲专媒视频/一区二区三区| 中文操逼字幕| 欧美韩国你懂得在线 | 国产精品国产自产拍高清AV| 日本人妻最新在线中| 三级片大波波| 国产一区二区三三视频| 亚洲性猛交| 久久精品国产亚洲AV无码电影| 丰满欧美放荡少妇在线| 五月天大香蕉| 97精品视频| 97久久精品国产| 亞洲久久直播| 久久国产精品一区二区| 殴美性色a级欧美| 操人人| 欧美日韩亚洲国产中文永久天天看| 抽插无码高清一区| 91丝袜| 日韩99神马视频片| 伊人久操| 天天综合-91入口| 欧美 传媒 麻豆 日韩 偷拍| 无码操逼网| 99精品九九九九九九| 97精品国产97久久久久久户外免费| 少妇厨房愉情理伦片bd在线观看| jiujiujiujingpin| 激情五月综合网| www久久国产精品| 免费99精品国产自在在线| 婷婷丁香六月| 嫩草在线视频| 韩日欧亚a级| 麻豆婷婷成人一二三| 玖玖玖玖精品国产剧情| 大香蕉淫人网| 最新av在线| 亚洲激情网| 色翁荡息又大又硬又粗又爽| 四虎影视国产精品| 蜜桃在线观看一区二区三区| 综合欧美日韩在线观看| 欧美色亚洲| 大香蕉92| 麻豆久久久久久久久丝袜| 一级黄色牲爱A级片| 91丝袜在线观看| 欧美骚少妇| 中文字幕版| 五月丁香久久| 国产精品久久久久亚洲av| 日少妇视频| 99re6在线视频精品免费完整版安卓版| 超碰三级秋霞| 在线观看黄色电话| 欧美一级美片在线观看免费| 亚洲欧美激情小说| 一牛一区二区三区久久| www.婷婷| 无码在线亚洲| 精品国产一区二区三区四区在线看| 国产免费内射视频| 色综合超碰超| 色情亚洲日本成人| 欧美淫穴| 五月天婷婷基地| 91快色色色色色| 日韩偷拍一区二区三区| 天天操天天舔| 日日AAvv| 曰韩少妇无码| 啊啊啊啊啊好大好舒服想要| 内射白嫩美女| 涩涩五月天| 久久这里只精品99re66图| 国产av又色又爽又黄| 国产精品久久久久久久久久梁医生| 久久欧美激情| 日本久久久久久久久久| 欧美玖玖爱免费玖玖| 亚爽爽爽爽爽爽爽爽| 欧洲Au麻豆| 中文字幕91综合| 校园春色 男人天堂 | 亚洲中文字幕三级在线| 欧美日韩一区二区三区四区蜜桃| 桃花色综合影院| 69视频入口| 欧美组图日韩亚洲中文字幕| 大奶的诱惑| 欧在线一二区| 后入式免费视频| 1240青青草一区二区三区视频天爱| 欧美天天影院| 国产日韩中文字幕欧美| 91亚洲丝袜| 懂色av中文字幕一区二区三区天美| 好舒服视频| 大香蕉之青青草原| 96国产污污污丝袜| 国产青青美女玩逼视频| 色娱乐色呦呦夜夜夜夜av| 成人一区二区三区四区| 97超碰资源网| 欧美传媒一区| 后入式999| 99在线精品观看视频中文| 33044男人的天堂深夜备| 亚洲天堂久久| 日本欧美不卡| 久久久999| 午夜国产综合视频在线观看| 国产亚洲精品A在线观看下载| 日本黄色精品专区网站| 眼镜人妻101.com| 亚洲第一黄色av网站| 亚洲天堂无码| 亚洲综合在线视频| 九九热免费国产视频婷婷伊人| 69AV女优男人的天堂| 99xav| 日本精品九九九| 这里都是精品| 久久精品一区二区一8| 高颜值美女口爆高潮浪叫| 久久丁香| 九一亚洲国产免费| 诱惑人妻欧美一区在线播放| 黑人精品久久97| 日韩精品资源| 蜜桃av色偷偷av老熟女| 国产精品4p在线观看| 色呦呦呦在线观看视频| av一区二区三区 中文| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 伊人一区二区在线播放| 人妻少妇被猛烈进入中| av资源在线播放天堂| 亚洲精品丝袜-不卡成人免费……| 草b在线| 精彩久久中文| 伊人网高清| 蜜乳Av成人片网站| 凹凸视频特色日本特黄| 亚洲s在线观看| 久久视频,这里只有精品| 欧美综合1性辶| 日韩无码精品综合久久| 亚洲精品日韩国产欧美| 精品国产一区二区久久| 精品妇操一区二区三区| 97免费在线观看| 欧美性爱1080p| 9/A片|