久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

python基于OpenCV模板匹配識別圖片中的數字

瀏覽:166日期:2022-06-23 16:54:32
前言

本博客主要實現利用OpenCV的模板匹配識別圖像中的數字,然后把識別出來的數字輸出到txt文件中,如果識別失敗則輸出“讀取失敗”。

操作環境:

OpenCV - 4.1.0 Python 3.8.1 程序目標

單個數字模板:(這些單個模板是我自己直接從圖片上截取下來的)

python基于OpenCV模板匹配識別圖片中的數字

要處理的圖片:

python基于OpenCV模板匹配識別圖片中的數字

終端輸出:

python基于OpenCV模板匹配識別圖片中的數字

文本輸出:

python基于OpenCV模板匹配識別圖片中的數字

思路講解

python基于OpenCV模板匹配識別圖片中的數字

代碼講解

首先定義兩個會用到的函數

第一個是顯示圖片的函數,這樣的話在顯示圖片的時候就比較方便了

def cv_show(name, img): cv2.imshow(name, img) cv2.waitKey(0) cv2.destroyAllWindows()

第二個是圖片縮放的函數

def resize(image, width=None, height=None, inter=cv2.INTER_AREA): dim = None (h, w) = image.shape[:2] if width is None and height is None: return image if width is None: r = height / float(h) dim = (int(w * r), height) else: r = width / float(w) dim = (width, int(h * r)) resized = cv2.resize(image, dim, interpolation=inter) return resized

先把這個代碼貼出來,方便后面單個函數代碼的理解。

if __name__ == '__main__': # 存放數字模板列表 digits = [] # 當前運行目錄 now_dir = os.getcwd() print('當前運行目錄:' + now_dir) numbers_address = now_dir + 'numbers' load_digits() times = input('請輸入程序運行次數:') for i in range(1, int(times) + 1): demo(i) print('輸出成功,請檢查本地temp.txt文件') while True: if input('輸入小寫‘q’并回車退出') == ’q’: break

接下來是第一個主要函數,功能是加載數字模板并進行處理。

這個函數使用到了os模塊,所以需要在開頭import os

def load_digits(): # 加載數字模板 path = numbers_address # 這個地方就是獲取當前運行目錄 獲取函數在主函數里面 filename = os.listdir(path) # 獲取文件夾文件 for file in filename: img = cv2.imread(numbers_address + '' + file) # 讀取圖片 img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 灰度處理 # 自動閾值二值化 把圖片處理成黑底白字 img_temp = cv2.threshold(img_gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1] # 尋找數字輪廓 cnt = cv2.findContours(img_temp, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)[0] # 獲取數字矩形輪廓 x, y, w, h = cv2.boundingRect(cnt[0]) # 將單個數字區域進行縮放并存到列表中以備后面使用 digit_roi = cv2.resize(img_temp[y:y+h, x:x+w], (57, 88)) digits.append(digit_roi)

最后一個函數是程序的重點,實現功能就是識別出數字并輸出。

不過這里把這個大函數分開兩部分來講解。

第一部分是對圖片進行處理,最終把圖片中的數字區域圈出來。

# 這兩個都是核,參數可以改變 rectKernel = cv2.getStructuringElement(cv2.MORPH_RECT, (25, 25)) sqKernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) # 這個就是讀取圖片的,可以暫時不理解 target_path = now_dir + '' + 'demo_' + str(index) + '.png' img_origin = cv2.imread(target_path) # 對圖片進行縮放處理 img_origin = resize(img_origin, width=300) # 灰度圖 img_gray = cv2.cvtColor(img_origin, cv2.COLOR_BGR2GRAY) # 高斯濾波 參數可以改變,選擇效果最好的就可以 gaussian = cv2.GaussianBlur(img_gray, (5, 5), 1)、 # 自動二值化處理,黑底白字 img_temp = cv2.threshold( gaussian, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1] # 頂帽操作 img_top = cv2.morphologyEx(img_temp, cv2.MORPH_TOPHAT, rectKernel) # sobel操作 img_sobel_x = cv2.Sobel(img_top, cv2.CV_64F, 1, 0, ksize=7) img_sobel_x = cv2.convertScaleAbs(img_sobel_x) img_sobel_y = cv2.Sobel(img_top, cv2.CV_64F, 0, 1, ksize=7) img_sobel_y = cv2.convertScaleAbs(img_sobel_y) img_sobel_xy = cv2.addWeighted(img_sobel_x, 1, img_sobel_y, 1, 0) # 閉操作 img_closed = cv2.morphologyEx(img_sobel_xy, cv2.MORPH_CLOSE, rectKernel) # 自動二值化 thresh = cv2.threshold( img_closed, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1] # 閉操作 img_closed = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, sqKernel) # 尋找數字輪廓 cnts = cv2.findContours( img_closed.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)[0] # 輪廓排序 (cnts, boundingBoxes) = contours.sort_contours(cnts, 'top-to-bottom') # 存放正確數字序列(包含逗號)的輪廓,即過濾掉不需要的輪廓 right_loc = [] # 下面這個循環是對輪廓進行篩選,只有長寬比例大于2的才可以被添加到列表中 # 這個比例可以根據具體情況來改變。除此之外,還可以通過輪廓周長和輪廓面積等對輪廓進行篩選 for c in cnts: x, y, w, h = cv2.boundingRect(c) ar = w/float(h) if ar > 2: right_loc.append((x, y, w, h))

部分步驟的效果圖:

python基于OpenCV模板匹配識別圖片中的數字

可以看到在進行完最后一次閉操作后,一串數字全部變成白色區域,這樣再進行輪廓檢測就可以框出每一行數字的大致范圍,這樣就可以縮小數字處理的范圍,可以在這些具體的區域內部對單個數字進行處理。

輪廓效果:

python基于OpenCV模板匹配識別圖片中的數字

在這樣進行以上步驟之后,就可以確定一行數字的范圍了,下面就進行輪廓篩選把符合條件的輪廓存入列表。

注意:在代碼中使用了(cnts, boundingBoxes) = contours.sort_contours(cnts, 'top-to-bottom')

這個函數的使用需要導入imutils,這個模塊具體使用方法可以瀏覽我的另一篇博客OpenCV學習筆記

函數的最后一部分就是對每個數字輪廓進行分割,取出單個數字的區域然后進行模板匹配。

for (gx, gy, gw, gh) in right_loc: # 用于存放識別到的數字 digit_out = [] # 下面兩個判斷主要是防止出現越界的情況發生,如果發生的話圖片讀取會出錯 if (gy-10 < 0): now_gy = gy else: now_gy = gy-10 if (gx - 10 < 0): now_gx = gx else: now_gx = gx-10 # 選擇圖片興趣區域 img_digit = gaussian[now_gy:gy+gh+10, now_gx:gx+gw+10] # 二值化處理 img_thresh = cv2.threshold( img_digit, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1] # 尋找所有輪廓 找出每個數字的輪廓(包含逗號) 正確的話應該有9個輪廓 digitCnts = cv2.findContours( img_thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)[0] # 從左到右排列輪廓 # 這樣排列的好處是,正常情況下可以確定逗號的位置方便后面刪除逗號 (cnts, boundingBoxes) = contours.sort_contours(digitCnts, 'left-to-right') # cnts是元組,需要先轉換成列表,因為后面會對元素進行刪除處理 cnts = list(cnts) flag = 0 # 判斷輪廓數量是否有9個 if len(cnts) == 9: # 刪除逗號位置 del cnts[1] del cnts[2] del cnts[3] del cnts[4] # 可以在轉成元組 cnts = tuple(cnts) # 存放單個數字的矩形區域 num_roi = [] for c in cnts: x, y, w, h = cv2.boundingRect(c) num_roi.append((x, y, w, h)) # 對數字區域進行處理,把尺寸縮放到與數字模板相同 # 對其進行簡單處理,方便與模板匹配,增加匹配率 for (rx, ry, rw, rh) in num_roi: roi = img_digit[ry:ry+rh, rx:rx+rw] roi = cv2.resize(roi, (57, 88)) # 高斯濾波 roi = cv2.GaussianBlur(roi, (5, 5), 1) # 二值化 roi = cv2.threshold( roi, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1] # 用于存放匹配率 source = [] # 遍歷數字模板 for digitROI in digits: # 進行模板匹配 res = cv2.matchTemplate( roi, digitROI, cv2.TM_CCOEFF_NORMED) max_val = cv2.minMaxLoc(res)[1] source.append(max_val) # 這個需要仔細理解 這個就是把0-9數字中匹配度最高的數字存放到列表中 digit_out.append(str(source.index(max(source)))) # 打印最終輸出值 print(digit_out) else: print('讀取失敗') flag = 1 # 將數字輸出到txt文本中 t = ’’ with open(now_dir + 'temp.txt', ’a+’) as q: if flag == 0: for content in digit_out: t = t + str(content) + ' ' q.write(t.strip(' ')) q.write(’n’) t = ’’ else: q.write('讀取失敗') q.write(’n’)

注意理解:digit_out.append(str(source.index(max(source))))

這個是很重要的,列表source存放模板匹配的每個數字的匹配率,求出其中最大值的索引值,因為數字模板是按照0-9排列的,索引source的匹配率也是按照0-9排列的,所以每個元素的索引值就與相匹配的數字相同。這樣的話,取得最大值的索引值就相當于取到了匹配率最高的數字。

完整代碼

from imutils import contoursimport cv2import osdef cv_show(name, img): cv2.imshow(name, img) cv2.waitKey(0) cv2.destroyAllWindows()def resize(image, width=None, height=None, inter=cv2.INTER_AREA): dim = None (h, w) = image.shape[:2] if width is None and height is None: return image if width is None: r = height / float(h) dim = (int(w * r), height) else: r = width / float(w) dim = (width, int(h * r)) resized = cv2.resize(image, dim, interpolation=inter) return resizeddef load_digits(): # 加載數字模板 path = numbers_address filename = os.listdir(path) for file in filename: # print(file) img = cv2.imread( numbers_address + '' + file) img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) img_temp = cv2.threshold( img_gray, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1] cnt = cv2.findContours(img_temp, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_NONE)[0] x, y, w, h = cv2.boundingRect(cnt[0]) digit_roi = cv2.resize(img_temp[y:y+h, x:x+w], (57, 88)) # 將數字模板存到列表中 digits.append(digit_roi)def demo(index): rectKernel = cv2.getStructuringElement(cv2.MORPH_RECT, (25, 25)) sqKernel = cv2.getStructuringElement(cv2.MORPH_RECT, (5, 5)) target_path = now_dir + '' + 'demo_' + str(index) + '.png' img_origin = cv2.imread(target_path) img_origin = resize(img_origin, width=300) img_gray = cv2.cvtColor(img_origin, cv2.COLOR_BGR2GRAY) gaussian = cv2.GaussianBlur(img_gray, (5, 5), 1) img_temp = cv2.threshold( gaussian, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1] img_top = cv2.morphologyEx(img_temp, cv2.MORPH_TOPHAT, rectKernel) img_sobel_x = cv2.Sobel(img_top, cv2.CV_64F, 1, 0, ksize=7) img_sobel_x = cv2.convertScaleAbs(img_sobel_x) img_sobel_y = cv2.Sobel(img_top, cv2.CV_64F, 0, 1, ksize=7) img_sobel_y = cv2.convertScaleAbs(img_sobel_y) img_sobel_xy = cv2.addWeighted(img_sobel_x, 1, img_sobel_y, 1, 0) img_closed = cv2.morphologyEx(img_sobel_xy, cv2.MORPH_CLOSE, rectKernel) thresh = cv2.threshold( img_closed, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1] img_closed = cv2.morphologyEx(thresh, cv2.MORPH_CLOSE, sqKernel) cnts = cv2.findContours( img_closed.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)[0] (cnts, boundingBoxes) = contours.sort_contours(cnts, 'top-to-bottom') draw_img = img_origin.copy() draw_img = cv2.drawContours(draw_img, cnts, -1, (0, 0, 255), 1) cv_show('666', draw_img) # 存放正確數字序列(包含逗號)的輪廓,即過濾掉不需要的輪廓 right_loc = [] for c in cnts: x, y, w, h = cv2.boundingRect(c) ar = w/float(h) if ar > 2: right_loc.append((x, y, w, h)) for (gx, gy, gw, gh) in right_loc: # 用于存放識別到的數字 digit_out = [] if (gy-10 < 0): now_gy = gy else: now_gy = gy-10 if (gx - 10 < 0): now_gx = gx else: now_gx = gx-10 img_digit = gaussian[now_gy:gy+gh+10, now_gx:gx+gw+10] # 二值化處理 img_thresh = cv2.threshold( img_digit, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1] # 尋找輪廓 找出每個數字的輪廓(包含逗號) 正確的話應該有9個輪廓 digitCnts = cv2.findContours( img_thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)[0] # 從左到右排列 (cnts, boundingBoxes) = contours.sort_contours(digitCnts, 'left-to-right') cnts = list(cnts) flag = 0 if len(cnts) == 9: del cnts[1] del cnts[2] del cnts[3] del cnts[4] cnts = tuple(cnts) num_roi = [] for c in cnts: x, y, w, h = cv2.boundingRect(c) num_roi.append((x, y, w, h)) for (rx, ry, rw, rh) in num_roi: roi = img_digit[ry:ry+rh, rx:rx+rw] roi = cv2.resize(roi, (57, 88)) roi = cv2.GaussianBlur(roi, (5, 5), 1) roi = cv2.threshold( roi, 0, 255, cv2.THRESH_BINARY_INV | cv2.THRESH_OTSU)[1] source = [] for digitROI in digits: res = cv2.matchTemplate( roi, digitROI, cv2.TM_CCOEFF_NORMED) max_val = cv2.minMaxLoc(res)[1] source.append(max_val) digit_out.append(str(source.index(max(source)))) cv2.rectangle(img_origin, (gx-5, gy-5), (gx+gw+5, gy+gh+5), (0, 0, 255), 1) print(digit_out) else: print('讀取失敗') flag = 1 t = ’’ with open(now_dir + 'temp.txt', ’a+’) as q: if flag == 0: for content in digit_out: t = t + str(content) + ' ' q.write(t.strip(' ')) q.write(’n’) t = ’’ else: q.write('讀取失敗') q.write(’n’)if __name__ == '__main__': # 存放數字模板列表 digits = [] # 當前運行目錄 now_dir = os.getcwd() print('當前運行目錄:' + now_dir) numbers_address = now_dir + 'numbers' load_digits() times = input('請輸入程序運行次數:') for i in range(1, int(times) + 1): demo(i) print('輸出成功,請檢查本地temp.txt文件') cv2.waitKey(0) cv2.destroyAllWindows() while True: if input('輸入小寫‘q’并回車退出') == ’q’: break

整個文件下載地址:https://wwe.lanzous.com/iLSDunf850b

注意:如果想同時識別多個圖片話,需要將圖片統一改名為“demo_ + 數字序號.png” 例如:demo_1.png demo_2.png 同時在運行代碼時輸入圖片個數即可。

總結

這個程序代碼相對來說不算復雜,主要是對圖像的一些基礎處理需要注意。因為不同的圖像想要識別成功需要進行不同程度的基礎處理,所以在做的時候可以多輸出幾張圖片檢查一下那一步效果不太好并及時進行修改調整,這樣才能達到最終比較好的效果。

以上就是python基于OpenCV模板匹配識別圖片中的數字的詳細內容,更多關于python 識別圖片中的數字的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 成人免费一区二区三区视频网站 | 精品一区二区三区不卡 | 国产精品视频 | 美女视频一区二区三区 | 免费一区二区 | 欧美精品综合 | 久久久精品国产 | 国产免费国产 | 国产区视频 | 成人a在线视频免费观看 | 色综合久久久久 | 国产一区中文字幕 | 国产一区久久 | 99热这里有精品 | 国产www在线| 中文字幕二区 | 欧美极品视频 | 亚洲精品一区二区三区在线播放 | 久久99国产精品 | 嫩草私人影院 | 精品国产一区二区三区小蝌蚪 | 国产性猛交xxxx免费看久久 | 色小妹三区 | 毛片视频免费 | 久久久久国产 | 日本污视频在线观看 | 午夜精品久久久久久99热软件 | 亚洲一区视频 | 一级片在线观看免费 | 日本精品视频在线观看 | 久久久久久艹 | 一区二区三区四区久久 | 中文字幕视频在线免费观看 | 成人精品一区二区三区 | 午夜在线观看 | 亚洲欧美国产精品专区久久 | 亚洲视频中文字幕 | 欧美国产日韩另类 | 一级黄色录像免费观看 | 精品国产乱码久久久久久1区2区 | 91精品国产乱码久久久久久久久 | 日本一区视频在线观看 | 成人精品一区二区三区中文字幕 | 国产日韩欧美精品一区二区 | 久久麻豆视频 | 欧美不卡视频 | 成人av免费在线观看 | 91精品国产一区二区三区蜜臀 | 欧美日韩在线电影 | 精品国产福利 | 99久久婷婷国产综合精品电影 | 欧美日韩在线一 | 欧美激情视频久久 | 国产精品永久 | 天天干狠狠干 | 国产高清精品一区二区三区 | 97久久精品午夜一区二区 | 国产精品国产 | 美女福利视频网站 | 欧美福利在线观看 | 国产欧美日韩一区 | 日韩电影一区二区在线观看 | 天堂欧美城网站网址 | 日本欧美大片 | 黄片毛片一级 | 国产一级免费在线观看 | 一级特黄毛片 | 国产成人免费网站 | zzzzyyyy精品国产 | 亚洲国产精品第一区二区 | 精品国产精品三级精品av网址 | 婷婷亚洲五月 | 国产一区二区三区免费 | 超碰3| 国产一二三在线 | 亚洲精品一区二区三区蜜桃久 | 99热在线播放 | 91精品久久久久久久久久小网站 | 99热热热热 | 日韩在线成人 | 在线播放国产一区二区三区 | 日本爱爱| 精品国产一区二区三区小蝌蚪 | 国产无套丰满白嫩对白 | 欧美日韩精品一区二区在线播放 | 欧美日一区二区 | 日本天堂在线播放 | 黄色片一区 | 日韩国产欧美视频 | 久久久夜夜夜 | 日韩色综合 | 国产成人午夜高潮毛片 | 中文字幕国产日韩 | 国产在线不卡 | 久久久免费精品 | 成人精品久久久 | 久久久久国产一区二区三区 | 成人在线视频网站 | 不卡黄色 | 可以免费在线观看av的网站 | 久久亚洲一区二区 | 亚洲人成电影网 | 久久99国产精品久久99大师 | 热久久这里只有精品 | 久久伊人在| 色婷婷国产精品综合在线观看 | 中文字幕在线一区 | 久久免费黄色网址 | 少妇一级淫免费放 | 男女视频一区二区 | 国产激情网站 | 成人午夜在线视频 | 男女小网站 | 国产精品一区一区三区 | 波多野结衣一区二区三区中文字幕 | 日韩视频不卡 | 福利久久 | 涩涩视频在线看 | 欧美精品一区二区三区四区在线 | 成人精品视频在线观看 | 国产人成精品一区二区三 | 欧美1级 | 91精品国产色综合久久不卡98 | 亚洲三级在线看 | 操操操操操操 | 久久国产精品免费一区二区三区 | 国产在线小视频 | 欧美午夜在线观看 | 亚洲永久精品www | 一区二区三区在线播放 | 亚洲成人二区 | 超级乱淫片国语对白免费视频 | 国产视频久久久 | 国产一区二区三区四区在线观看 | 亚洲日本午夜 | av在线成人 | 亚洲成人精品在线观看 | 欧美国产伦久久久久久 | 爱啪导航一精品导航站 | 久久精品麻豆 | 国产激情99 | 日本一级毛片免费看 | 欧美成人a∨高清免费观看 在线视频成人 | 亚洲一区 日韩精品 中文字幕 | 男人天堂网av | 一区二区三区在线播放 | 在线只有精品 | 亚洲一区二区三区视频 | 国产精品女同一区二区久久夜 | 91麻豆精品国产91久久久久久 | 天天看天天爽 | 国产精品久久久久久久久久东京 | 国产精品无码久久久久 | 在线免费视频一区 | 国产电影一区二区在线观看 | 色狠狠一区 | 看亚洲a级一级毛片 | 一区二区免费在线播放 | 亚洲美女视频 | 久久成人免费视频 | 国产精品久久一区二区三区 | 日韩在线免费观看网站 | 91在线精品一区二区三区 | 黄色国产大片 | 久久无码精品一区二区三区 | 91精品久久久久久久久中文字幕 | 天天亚洲 | 一区影院 | 国产人妖在线 | 亚洲综合中文 | 丝袜美腿一区二区三区 | 久久精品亚洲精品国产欧美 | 国产精品久久久久久久 | 一级在线看 | 蜜桃中文字幕 | 在线欧美亚洲 | av超碰 | 国产精品久久久久久久久久久免费看 | 羞羞在线视频 | 国产99免费 | 精品一区二区三区免费看 | 亚洲一区二区三区视频 | 国产精品国色综合久久 | 在线观看日韩精品 | 国产在线免费 | 超碰最新网址 | 久久久蜜臀| 四虎永久免费在线 | 成人午夜激情 | 欧美国产日本一区 | 国内精品99| 看黄网址| 正在播放国产一区 | 亚洲欧美网站 | 日韩精品一区二区三区四区 | 久草中文在线 | 日日操夜夜 | 国产大片久久久 | 在线欧美日韩 | 九九热在线观看 | 亚洲精品自在在线观看 | 91破解版在线 | 亚洲 | 国产精品www | 99热在线播放 | 欧美性猛交一区二区三区精品 | 午夜精品视频在线观看 | 黄色成人免费看 | av毛片免费看 | 久久国产99| 久久久99久久久国产自输拍 | 人人干在线 | 亚洲欧美精品一区二区 | 国产成人在线一区二区 | 男女视频在线观看 | 人人人人澡 | av网站在线免费观看 | 成人精品网站在线观看 | 高清在线一区二区 | 欧美精品一二三 | 亚洲一区在线观看视频 | 国产精品视频入口 | 男人的天堂在线视频 | 久久精品久久久 | 色黄网站 | 久久久久91 | 日韩视频中文字幕 | chengrenzaixian | 久久久久中文字幕 | 亚洲国产高清在线 | 久久精品国产免费 | 久久一精品 | 日韩中文字幕一区 | 国产深夜视频在线观看 | av天天干 | 国产精品国产成人国产三级 | av片网站 | 欧美二三区 | 91精品久久久久久久久中文字幕 | 岛国在线免费 | 国产精品毛片久久久久久久 | 欧美激情在线播放 | 国产一区二区三区在线免费 | 国产成人精品综合 | 一级毛片免费一级 | 2019天天操 | 久草电影网| h视频亚洲 | 亚洲综合色视频在线观看 | 日韩成人在线视频 | www国产成人免费观看视频 | 亚洲午夜精品一区二区三区 | 老司机深夜福利视频 | 一区二区免费视频 | 黄色免费av | 欧美成人精品一区二区三区 | 毛片久久 | 国产一级片| wwwsihu| 午夜视频网站 | 免费无遮挡www小视频 | 国产精品久久久久久久久久久久久 | 九色porny国模私拍av | 国产高清精品一区二区三区 | 欧美一区二区三区 | 国产成人91 | 久久这里只有国产精品 | 日韩免费| 91婷婷射| 久久精品一级 | 草草视频在线免费观看 | 久久国产一区二区 | 在线一区二区三区视频 | 日本一区二区精品视频 | 欧美a网 | cao视频| 欧美极品在线 | 一区二区三区四区在线 | 精品国产不卡一区二区三区 | 亚洲国产精品久久久久久久 | 伊人二区 | 国产精品成人一区二区三区 | 久久精品综合 | 亚洲成人av在线 | 91av视频在线 | 成人精品在线视频 | 久久久蜜桃 | 亚洲视频三区 | 日韩av在线中文字幕 | 欧美视频网站 | 91免费视频观看 | 久久久999成人 | 99精品视频在线观看 | 亚洲精品视频在线看 | 久久久99国产精品免费 | 男女网站在线观看 | 中文字幕乱码亚洲精品一区 | 欧洲成人在线视频 | 91福利电影在线观看 | 婷婷激情在线 | 日日操夜夜操天天操 | 国产高清在线 | 日本一区二区电影 | 最新中文字幕在线资源 | 91在线精品视频 | 午夜激情视频在线观看 | 亚洲国产精品一区二区三区 | 成人久久18 | 国产精品美女久久久久aⅴ国产馆 | 成人在线网址 | 国产成人一区二区三区影院在线 | 国产欧美精品一区二区色综合朱莉 | 国产一级一级国产 | 亚洲视频中文字幕 | 一区二区三区四区av | 日韩在线成人 | 日韩在线播放一区二区三区 | 国产精品婷婷久久久久 | 久久综合久久综合久久综合 | 亚洲综合一区二区三区 | 美女在线视频一区二区 | 亚洲欧洲综合 | 国产精品综合 | 色站综合 | 亚洲在线视频 | 午夜老湿影院 | 欧美精品一区二区三区四区 | 久久精品欧美一区二区三区麻豆 | 国产精品网站在线观看 | 中文字幕成人影院 | 午夜精品在线 | av一级久久 | www.日韩精品.com | 亚洲成a人v欧美综合天堂麻豆 | 极品久久 | 久久亚洲国产 | 99国产精品久久久久久久 | 国产高清精品一区二区三区 | 欧美日韩一区二区在线 | 日穴视频在线观看 | 国产精品久久久久久久久小说 | 国产一区二区精品丝袜 | 久久精品一区二区 | 91av爱爱 | 久久日本视频 | 欧美日本一区 | 91精品久久久久久久久久入口 | 精品久久久一区 | 91久久精品一区 | 中文字幕在线视频第一页 | 免费国产一区 | 国产视频一区二区在线 | 日韩一区二区在线电影 | 丁香婷婷久久久综合精品国产 | 黄瓜av| 成年人网站免费在线观看 | 欧美精品成人一区二区三区四区 | 国产精品九九九 | 亚洲一区二区在线视频 | 日韩有码在线播放 | 精品久久久久一区二区国产 | 亚洲天堂一区 | 国产精品一区二区无线 | 精品久久网 | 久久久香蕉 | 亚洲精品亚洲人成人网 | 91精品国产乱码久久久久久久久 | 亚洲欧美日韩在线一区二区 | 国产区一区| 精品九九九 | 九一精品国产 | 亚洲国产成人在线 | 午夜精品福利一区二区三区蜜桃 | 成人毛片在线观看视频 | 亚洲成av人片在线观看无码 | 亚洲精品一区二区三区在线 | 日韩中出| 国产另类一区 | 91av久久 | 欧美精品网站 | www色婷婷| 欧美一区二区三区男人的天堂 | 色综合二区 | 在线视频这里只有精品 | 综合在线视频 | 永久免费在线 | 国产亚洲精品久久久久久青梅 | 午夜欧美精品久久久久 | 亚洲 欧美 日韩在线 | 日韩一本| 九九热这里只有 | 国产一级片 | 久久免费视频3 | 国产精品人人做人人爽 | 欧美国产日韩一区 | 亚洲 欧美 在线 一区 | 亚洲精品v日韩精品 | 天天干天天看天天操 | 日韩中文字幕av | 久久人人爽人人爽人人片av高清 | 国产精品一区二区三区四区 | 久久综合一区二区三区 | 超碰在线人人 | 精品视频在线免费观看 | 欧美激情国产日韩精品一区18 | 成年人av网站 | 日韩电影一区二区三区 | 国产高清小视频 | 国产在线观看一区二区 | 日韩靠逼| 81精品国产乱码久久久久久 | 中文字幕日韩在线 | 国内精品一级毛片国产99 | 成人看片在线观看 | 婷婷在线视频 | 久久国产精品久久 | 久久精品免费看 | 婷婷亚洲综合 | 亚洲网在线 | 久久作爱视频 | 91黄色免费看 | 国产在线一区二区 | 国产二区免费 | 亚洲第一成年免费网站 | 久久99热精品免费观看牛牛 | 久久99国产精品久久99果冻传媒 | 9久久精品 | 二区在线视频 | 日韩在线精品 | 久久久国产一区二区 | 欧美亚洲另类在线 | av在线一区二区三区 | 精品国产黄a∨片高清在线 日韩一区二 | 欧美精品一区二区三区在线 | 国产一区999| 四虎影音 | 中文在线a在线 | 日本一区二区三区免费观看 | 二区视频 | 成人精品在线观看 | 亚洲区视频在线 | 欧美wwwsss9999| 在线亚洲观看 | 91精产国品一二三区在线观看 | 欧美黄色大片网站 | 毛片99 | 99久久精品免费 | 久久视频一区二区 | 国产成人精品一区二区三区四区 | 一本色道精品久久一区二区三区 | 91成人免费在线视频 | 激情综合网五月婷婷 | 日韩手机专区 | 亚洲精品午夜aaa久久久 | 成人在线免费视频 | 色婷婷国产精品久久包臀 | 久久99精品久久久噜噜最新章节 | 免费黄色片一区二区 | 操操操av| www国产在线观看 | 日韩在线一区二区 | 亚洲成av人片一区二区梦乃 | 久久久久亚洲视频 | 天堂中文在线视频 | yy6080久久伦理一区二区 | 国产精品国产精品国产专区不片 | 国产精品99久久久久久宅男 | 在线视频久 | 99re在线 | 国产午夜精品久久久久久久 | 精品免费久久久久久久苍 | 欧美日韩久久 | 日韩视频在线观看一区二区 | 国产精品女教师av久久 | 91精品国产乱码久久久久久 | 日韩国产在线 | av黄色一级 | 中文字幕色 | 欧美日韩国产中文 | 久久久中文字幕 | 超碰在线看 | 国产在线精品一区二区三区 | 亚洲午夜精品 | 久久视频在线 | 91精品国产日韩91久久久久久 | 黄色a视频| 国产成人精品久久二区二区 | 激情视频在线观看免费 | 亚洲黄色av网站 | 可以免费在线观看av的网站 | 日韩欧美一区二区三区免费观看 | 超碰激情 | 国产一区二区在线免费观看 | 在线 丝袜 欧美 日韩 制服 | 免费国产视频 | 三级特黄特色视频 | 久久国产精品视频一区 | 亚洲人成一区 | 久久久久久久国产 | 日韩成人不卡 | 欧美一级免费在线观看 | 精品久久电影 | 成人亚洲 | 国外成人在线视频网站 | 亚洲一区中文字幕 | 国产专区一区二区三区 | 精品视频一区二区三区 | 国产成人涩涩涩视频在线观看 | 日本一二三区视频 | 久久久久久久一区二区 | 国产精品久久久久久久久久东京 | 欧美久久免费观看 | 久一区二区三区 | 在线观看免费视频日韩 | 中文字幕av第一页 | 国产精品久久久久久亚洲调教 | 人人爱夜夜爽日日视频 | 国产精品99在线观看 | 日韩在线精品视频 | 欧美一区精品 | 精品久久久久久久久久久久 | 欧美乱轮| 成人不卡 | 国产精品美女一区二区三区四区 | 国产91成人video | 在线视频一区二区 | 国精产品一区二区三区有限公司 | 国产精品国产三级国产aⅴ中文 | 91av在| 黄色片在线免费观看 | 精品国产一区探花在线观看 | 久久精品久久久 | 国产免费一区二区三区网站免费 | 一区二区三区在线播放 | 国产黄色影视 | 国产成人精品高清久久 | 久在线 | 日韩一区二区三区在线观看 | 日韩日韩日韩日韩日韩日韩日韩 | 一级毛片av | 一区二区三区在线免费播放 | 色综合欧美 | 国产亚洲综合精品 | 亚洲成av人影片在线观看 | 综合伊人久久 | 久久久久亚洲精品 | 欧美日韩在线观看一区二区 | 国产精品美乳一区二区免费 | 国产精品久久久久久久久久久免费看 | 日本久久久影视 | 欧美成人综合视频 | 日本中文字幕在线播放 | 日韩精品久久久 | 日本免费一区二区在线观看 | 丁香久久| 精品二区| 一级欧美 | 亚洲毛片在线观看 | 色婷婷综合久久久中文字幕 | 午夜免费小视频 | 粉嫩国产精品一区二区在线观看 | 免费看的黄网站 | 久久综合一区二区 | 国产伦精品一区二区三区四区视频 | 视频一区二区三区在线观看 | 香蕉91| 亚洲精品一区二区网址 | 日本精品视频在线播放 | 91精品国产综合久久久蜜臀粉嫩 | 在线日韩视频 | 亚洲欧洲精品在线 | 精品国产乱码久久久久久影片 | 日韩在线国产精品 | 人成亚洲 | 欧美精品www | 日本中文字幕在线观看 | 91在线一区二区 | 成人av在线播放 | 日韩在线免费视频 | 久久精品一区二区三区不卡牛牛 | 亚洲欧美一区二区在线观看 | 欧美日本一区二区三区 | 日韩精品一区二区三区老鸭窝 | 欧美亚洲国产一区 | 欧美成在线观看 | 午夜小视频在线观看 | av黄色一级 | 在线观看国产高清视频 | 桃花久久| 久久久久久免费毛片精品 | 福利一区二区 | 高清国产午夜精品久久久久久 | av在线一区二区 | 色综合久久久久 | 亚洲欧美一区二区精品中文字幕 | 国产二区免费 | 色伊人| 久久精品久久久久久 | 欧产日产国产一区 | 欧美激情久久久 | 中文字幕日韩一区二区不卡 | 欧美一级在线 | 亚洲成人精品在线观看 | 毛片黄片视频 | 韩国av一区二区 | 日韩无| 免费国产一区二区 | 一区二区三区四区免费 | 欧美成人精品激情在线观看 | 欧美一区二区三区视频 | 天堂网色 | 玖玖国产精品视频 | 不卡成人| 成人精品网站在线观看 | 欧美精品国产精品 | 国产亚洲成av人片在线观看桃 |