精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

PHP OCR實戰:用Tesseract從圖像中讀取文字

開發 后端
Tesseract是一個能實現OCR的開源項目。你能在*Nix系統,Mac系統和Windows系統上運行這個項目,但是只要使用一個庫,我們就能在PHP項目中使用它了。本教程的目的是教你如何使用。

Optical Character Recognition (OCR)即光學字符辨識是把打印文本轉換成一個數字表示的過程。它有各種各樣的實際應用–從數字化印刷書籍、創建收據的電子記錄,到車牌識別甚至破解基于圖像的驗證碼。

Robotic eye

Tesseract是一個能實現OCR的開源項目。你能在*Nix系統,Mac系統和Windows系統上運行這個項目,但是只要使用一個庫,我們就能在PHP項目中使用它了。本教程的目的是教你如何使用。

安裝

準備

為了讓事情變得簡單和一致的, 我們將使用虛擬機(本文使用Vagrant)來運行應用程序,這會涉及到安裝PHP和Nginx,我們將安裝 Tesseract來分別演示過程。如果你想自己基于現有Debian-based系統安裝Tesseract,你可以跳過下一部分—或者查看the README來獲得在其他*nix上,Mac系統或者Windows的安裝指導.

配置Vagrant

為了配置Vagrant以跟上本教程,完成如下步驟。或者你也可以簡單的從Github獲得代碼。

輸入以下命令來下載Homestead Improved Vagrant配置到一個名為orc的文件夾:

git clone https://github.com/Swader/homestead_improved ocr

將Nginx配置文件Homestead.yml中的以下代碼:

  1. sites: 
  2.     - map: homestead.app 
  3.       to: /home/vagrant/Code/Project/public 

修改成:

  1. sites: 
  2.     - map: homestead.app 
  3.       to: /home/vagrant/Code/public 

同樣要在hosts文件中添加

  1. 192.168.10.10       homestead.app 

安裝Tesseract

下一步是安裝Tesseract

因為Homestead Improved 使用debian,我們可以在使用vagrant ssh登陸虛擬機后使用apt-get 來安裝它,簡單運行如下命令:

  1. sudo apt-get install tesseract-ocr 

正如上文提到的,在the README中有其他的操作系統對應教程。

測試并定制安裝

我們將使用PHP包裝,但是之前我們可以在命令行測試Tesseract。

首先保存這個圖片sign.png

在虛擬機中,執行如下命令來從圖片中讀取文字

 

  1. tesseract sign.png out 

這將在當前文件夾創建一個文件:out.txt里面應該有單詞:CAUTION

現在嘗試sign2.jpg

  1. tesseract sign2.jpg out 

這次產生單詞Einbahnstral’ie。很接近但不正確—雖然圖像中的文字相當清晰,它沒能識別字符ß。

為了獲使Tesseract正常讀取字符串,我們需要安裝一些新的語言文件—就本例來說,德語。

這里有一個全面的可用語言文件列表,但我們直接下載所需的文件:

  1. wget https://tesseract-ocr.googlecode.com/files/tesseract-ocr-3.02.deu.tar.gz 

解壓:

  1. tar zxvf tesseract-ocr-3.02.deu.tar.gz 

然后把文件復制到如下目錄:

  1. /usr/share/tesseract-ocr/tessdata 

例如

  1. cp deu-frak.traineddata /usr/share/tesseract-ocr/tessdata 
  2. cp deu.traineddata /usr/share/tesseract-ocr/tessdata 

現在我們再次執行原來的命令但是要用 –l

 

  1. tesseract sign2.jpg out -l deu 
  2.  
  3.     “deu” 是德語的 ISO 639-3碼. 

這次,文字應該是Einbahnstraße(正確的)。

可以通過重復上述過程來使用任意語言。

配置應用程序

我們將使用這個庫來用PHP使用Tesseract。

我們將建立一個極簡的web應用:用戶上傳圖片,并查看OCR處理結果。我們將使用Silex microframework 來實現。不要擔心你不熟悉它,這個應用本身很簡單。

記住這篇教程的所有代碼都能在Github上獲得。

***步是用Composer來安裝依賴文件:

  1. composer require silex/silex twig/twig thiagoalessio/tesseract_ocr:dev-master 

然后建立三個文件夾:

  1. public 
  2. - uploads 
  3. - views 

我們需要上傳表單(views\index.twig):

  1. <html> 
  2.   <head> 
  3.     <title>OCR</title> 
  4.   </head> 
  5.   <body> 
  6.  
  7.     <form action="" method="post" enctype="multipart/form-data"
  8.       <input type="file" name="upload"
  9.       <input type="submit"
  10.     </form> 
  11.  
  12.   </body> 
  13. </html> 

需要一個結果展示頁面(views\results.twig)::

  1. <html> 
  2.   <head> 
  3.     <title>OCR</title> 
  4.   </head> 
  5.   <body> 
  6.  
  7.     <h2>Results</h2> 
  8.  
  9.     <textarea cols="50" rows="10">{{ text }}</textarea> 
  10.  
  11.     <hr> 
  12.  
  13.     <a href="/">← Go back</a> 
  14.  
  15.   </body> 
  16. </html> 

現在建立skeleton Silex app (public\index.php):

  1. <php 
  2.  
  3. require __DIR__.'/../vendor/autoload.php'
  4.  
  5. use Symfony\Component\HttpFoundation\Request; 
  6.  
  7. $app = new Silex\Application(); 
  8.  
  9. $app->register(new Silex\Provider\TwigServiceProvider(), [ 
  10.   'twig.path' => __DIR__.'/../views'
  11. ]); 
  12.  
  13. $app['debug'] = true; 
  14.  
  15. $app->get('/'function() use ($app) { 
  16.  
  17.   return $app['twig']->render('index.twig'); 
  18.  
  19. }); 
  20.  
  21. $app->post('/'function(Request $requestuse ($app) { 
  22.  
  23.     // TODO 
  24.  
  25. }); 
  26.  
  27. $app->run(); 

如果你在瀏覽器訪問這個應用,你應該能看到一個文件上傳表單。如果你在使用Homestead Improved Vagrant,你可以通過如下鏈接訪問該應用。

 

  1. http://homestead.app/ 

下一步是實現文件上傳。Silex使得這項工作非常簡單;$request包含一個files組件,我們可以通過它來獲得任意上傳的文件,代碼:

  1. // Grab the uploaded file 
  2. $file = $request->files->get('upload'); 
  3.  
  4. // Extract some information about the uploaded file 
  5. $info = new SplFileInfo($file->getClientOriginalName()); 
  6.  
  7. // Create a quasi-random filename 
  8. $filename = sprintf('%d.%s', time(), $info->getExtension()); 
  9.  
  10. // Copy the file 
  11. $file->move(__DIR__.'/../uploads'$filename); 

如你所見,我們產生隨機文件名來減少文件名沖突—但在本應用中,我們怎么命名文件是不重要的。一旦我們在本地有一份文件拷貝,我們就可以產生一個Tessearct庫的實例,然后進行分析:

  1. // Instantiate the Tessearct library 
  2. $tesseract = new TesseractOCR(__DIR__ . '/../uploads/' . $filename); 

在圖像上實現OCR相當簡單,我們只需調用方法recognize()。

  1. // Perform OCR on the uploaded image 
  2. $text = $tesseract->recognize(); 

***我們把結果展示到結果頁面:

  1. return $app['twig']->render( 
  2.     'results.twig'
  3.     [ 
  4.         'text'  =>  $text
  5.     ] 
  6. ); 

在一些圖片上嘗試,看看它效果怎樣。如果你有困難,可以參考這個

一個實際的例子

讓我們來看OCR一個更實用的例子。在本例中,我們嘗試在圖像中找到一個格式化的電話號碼。

看看下面一幅圖,上傳到你的應用:

結果應該如下:

  1. :ii‘i 
  2. Customer Service Helplines 
  3.  
  4. British Airways Helpline 
  5.  
  6. 09040 490 541 

它沒有挑出正文文本,這是我們能料到的,因為圖片質量太差。雖然識別了號碼但是也有一些“噪聲”。

為了提取相關信息,有如下幾件事我們可以做。

你可以讓Tesseract 把它的結果限制在一定的字符集內,所以我們告訴它只返回數字型的內容代碼如下:

  1. $tesseract->setWhitelist(range(0,9)); 

但這樣有個問題。它常常把非數字字符解釋成數字而非忽略它們。比如“Bob”可能被解釋稱數字“808”。

所以我們采用兩步處理。

  1. 嘗試提取可能是電話號碼的數字串。

  2. 用一個庫輪流評估每一個候選字符,一旦找到一個有效電話號碼則停止。

***步,我們可以用一個基本的正則表達式。可以用谷歌電話庫來確定一個數字串是否是合法電話號碼。

備注:我已在Sitepoint 寫過關于谷歌電話庫的內容

讓我們給谷歌電話庫添加一個PHP 端口,修改composer.json,添加:

  1. "giggsey/libphonenumber-for-php""~7.0" 

別忘了升級:

  1. composer update 

現在我們可以寫一個函數,輸入為一個字符串,嘗試提取一個合法的電話號碼

  1. /** 
  2. * Parse a string, trying to find a valid telephone number. As soon as it finds a 
  3. * valid number, it'll return it in E1624 format. If it can't find any, it'll 
  4. * simply return NULL. 
  5. * 
  6. * @param  string   $text           The string to parse 
  7. * @param  string   $country_code   The two digit country code to use as a "hint" 
  8. * @return string | NULL 
  9. */ 
  10. function findPhoneNumber($text$country_code = 'GB') { 
  11.  
  12.   // Get an instance of Google's libphonenumber 
  13.   $phoneUtil = \libphonenumber\PhoneNumberUtil::getInstance(); 
  14.  
  15.   // Use a simple regular expression to try and find candidate phone numbers 
  16.   preg_match_all('/(\+\d+)?\s*(\(\d+\))?([\s-]?\d+)+/'$text$matches); 
  17.  
  18.   // Iterate through the matches 
  19.   foreach ($matches as $match) { 
  20.  
  21.     foreach ($match as $value) { 
  22.  
  23.       try { 
  24.  
  25.         // Attempt to parse the number 
  26.         $number = $phoneUtil->parse(trim($value), $country_code);    
  27.  
  28.         // Just because we parsed it successfully, doesn't make it vald - so check it 
  29.         if ($phoneUtil->isValidNumber($number)) { 
  30.  
  31.           // We've found a telephone number. Format using E.164, and exit 
  32.           return $phoneUtil->format($number, \libphonenumber\PhoneNumberFormat::E164); 
  33.  
  34.         } 
  35.  
  36.       } catch (\libphonenumber\NumberParseException $e) { 
  37.  
  38.         // Ignore silently; getting here simply means we found something that isn't a phone number 
  39.  
  40.       } 
  41.  
  42.     } 
  43.   } 
  44.  
  45.   return null; 
  46.  

希望注釋能解釋這個函數在干什么。注意如果這個庫沒能從字符串中解析出一個合法的電話號碼它會拋出一個異常。這不是什么問題;我們直接忽略它并繼續下一個候選字符。

如果我們找到一個電話號碼,我們以E.164的形式返回它。這提供了一個國際化的號碼,我們可以用來打電話或者發送SMS。

現在我們可以如下使用:

  1. $text = $tesseract->recognize(); 
  2. $number = findPhoneNumber($text'GB'); 

我們需要給谷歌電話庫提供一個提示來說明這個號碼是哪個國家的。你也可以改成你自己的國家。

我們把所有的這些打包在一個新的路由中:

  1. $app->post('/identify-telephone-number'function(Request $requestuse ($app) { 
  2.  
  3.   // Grab the uploaded file 
  4.   $file = $request->files->get('upload'); 
  5.  
  6.   // Extract some information about the uploaded file 
  7.   $info = new SplFileInfo($file->getClientOriginalName()); 
  8.  
  9.   // Create a quasi-random filename 
  10.   $filename = sprintf('%d.%s', time(), $info->getExtension()); 
  11.  
  12.   // Copy the file 
  13.   $file->move(__DIR__.'/../uploads'$filename); 
  14.  
  15.   // Instantiate the Tessearct library 
  16.   $tesseract = new TesseractOCR(__DIR__ . '/../uploads/' . $filename); 
  17.  
  18.   // Perform OCR on the uploaded image 
  19.   $text = $tesseract->recognize(); 
  20.  
  21.   $number = findPhoneNumber($text'GB'); 
  22.  
  23.   return $app->json( 
  24.     [ 
  25.       'number'     =>  $number
  26.     ] 
  27.   ); 
  28.  
  29. }); 

我們現在有簡單的API的基礎—-也就是JSON響應-—我們可以用來作為一個簡單的移動應用的后端,這款應用可以用來從一幅圖中添加聯系人,打電話。

總結

OCR有許多應用——并且很容易整合進你的應用(超過你的預期)。本文中,我們安裝了開源OCR包;并使用一個包裝器庫,把它整合進一個非常簡單的PHP應用。我們只是觸及到了所有可能性的表面,希望這能給你一些想法,幫你想想怎么在你自己的應用中使用OCR。

譯文鏈接:http://www.codeceo.com/article/php-ocr-tesseract-get-text.html
英文原文:OCR in PHP: Read Text from Images with Tesseract

 

 

責任編輯:王雪燕 來源: 碼農網
相關推薦

2021-04-09 20:49:44

PythonOCR圖像

2015-07-09 13:58:28

tesseract教程OCR教程

2023-10-10 08:22:12

Tesseract庫開源

2010-09-09 16:17:10

PHPXMLXML DOM

2020-01-10 22:56:56

Python圖像處理Linux

2024-09-09 00:00:00

2023-04-28 10:31:54

Linux命令圖像

2011-07-07 17:30:25

iPhone Xcode

2024-01-11 11:35:46

Python開發

2024-06-07 11:24:20

2022-11-16 14:05:06

Tesseract應用調用

2013-12-09 09:57:37

2017-09-21 15:43:02

深度序列學習

2010-05-28 16:04:03

讀取MySQL數據庫

2023-09-27 08:51:52

PythonOCR技術

2009-12-04 17:31:32

PHP編碼轉換

2025-06-16 07:30:00

WinForm串口通信開發

2011-07-15 14:29:44

PHPXML

2016-09-29 08:36:38

2011-06-07 13:44:40

VC
點贊
收藏

51CTO技術棧公眾號

日韩中文视频免费在线观看| 精品福利免费观看| 亚洲影院色无极综合| 妺妺窝人体色www聚色窝仙踪| 成功精品影院| 在线免费观看一区| 国产精品视频一二三四区| 人人妻人人澡人人爽人人欧美一区| 亚洲一区二区免费看| 日韩在线视频免费观看| 亚洲视频天天射| 亚洲电影有码| 亚洲18女电影在线观看| 日韩尤物视频| 日本波多野结衣在线| 美女一区二区三区在线观看| 久久人人爽国产| 娇小11一12╳yⅹ╳毛片| 欧美自拍一区| 日韩欧美在线网站| 国产精品人人爽人人爽| 高端美女服务在线视频播放| 亚洲欧美综合色| 日韩国产伦理| 天堂在线中文| 丰满放荡岳乱妇91ww| 国产精品亚洲网站| 天天操夜夜操视频| 最新日韩欧美| 欧美裸身视频免费观看| 三级黄色片在线观看| 蜜臀av免费一区二区三区| 精品对白一区国产伦| 亚洲网中文字幕| 久久精品女人天堂av免费观看| 亚洲一级二级在线| 路边理发店露脸熟妇泻火| av电影在线播放高清免费观看| 99久久久国产精品| 国产91免费视频| 国产高潮流白浆喷水视频| 久久草av在线| 国产日本欧美一区二区三区在线| 亚洲欧美另类在线视频| 亚洲综合国产激情另类一区| 国内揄拍国内精品少妇国语| 久久久美女视频| 国模大胆一区二区三区| 色综合久综合久久综合久鬼88| 日韩在线视频网址| 午夜影院欧美| 久久九九免费视频| 日本精品人妻无码77777| 亚洲乱码在线| 久热99视频在线观看| 青青青在线免费观看| 欧美另类亚洲| 国外成人免费在线播放| 在线观看 中文字幕| 国产欧美一级| 国产成人精品av在线| 91视频久久久| 麻豆精品视频在线| 91亚洲va在线va天堂va国| av网站在线免费看| kk眼镜猥琐国模调教系列一区二区| 国产精品久久久久久久久久直播 | 亚洲熟妇av日韩熟妇在线| 51av在线| 色综合欧美在线| www.亚洲高清| 日韩一区二区三区高清在线观看| 精品日本一线二线三线不卡| 国产老熟女伦老熟妇露脸| 亚洲黄页网站| 日韩视频中文字幕| 精品97人妻无码中文永久在线| 韩日在线一区| 欧美一级bbbbb性bbbb喷潮片| 国语对白做受69按摩| 久久精品国产亚洲a| www.av一区视频| 欧美少妇另类| 亚洲三级电影全部在线观看高清| 日本中文字幕在线视频观看| 中文字幕在线视频久| 欧美狂野另类xxxxoooo| 中国极品少妇xxxx| 日本一本不卡| 92久久精品| 午夜伊人狠狠久久| 欧美日韩中文在线视频| 性欧美freehd18| 日韩欧美精品三级| 国产全是老熟女太爽了| 欧美在线国产| 国产精品第100页| 国内老熟妇对白xxxxhd| 国产校园另类小说区| 国产免费xxx| 亚洲天堂av影院| 欧美一区二区三区爱爱| 国精产品一区二区三区| 欧美激情91| 国产精品欧美日韩| 四虎精品成人免费网站| 自拍偷拍欧美精品| 欧洲av无码放荡人妇网站| 九九九九九九精品任你躁 | 性色av蜜臀av| 久久精品水蜜桃av综合天堂| 91动漫在线看| 亚洲精品成人一区| 亚洲天堂男人天堂| 日本一二三区不卡| 国产一区二区三区四区在线观看| 欧美国产一区二区在线| 欧美人与性动交α欧美精品济南到| 在线免费观看日本欧美| 老熟妇精品一区二区三区| 午夜精品毛片| 国产欧美日韩精品在线观看| 日本护士...精品国| 一区二区三区小说| 国产一级免费大片| 日本一区二区三区视频| 国产97免费视| 青春草在线观看| 亚洲成精国产精品女| 欧美xxxxxbbbbb| 91精品啪在线观看国产18| 国产大片精品免费永久看nba| 天天干天天摸天天操| 亚洲国产婷婷综合在线精品| 天天久久综合网| 欧美3p在线观看| 国产精品久久久久秋霞鲁丝| 色视频在线观看| 欧美日韩亚洲视频一区| 老熟妇精品一区二区三区| 黄色国产精品| 国产精品制服诱惑| 激情在线视频播放| 日韩免费福利电影在线观看| 国产激情无码一区二区三区| 国产真实乱子伦精品视频| 一个色的综合| 精品亚洲a∨一区二区三区18| 两个人的视频www国产精品| 国产精品毛片一区二区在线看舒淇| 亚洲国产经典视频| 在线观看国产一级片| 久久在线免费| 亚洲一区中文字幕| 日韩特级毛片| 亚洲精品久久久久中文字幕欢迎你 | 人人爽人人av| 日韩一区二区中文| 5g影院天天爽成人免费下载| 欧美1—12sexvideos| 日韩av网站在线| 日本黄色一级视频| 中文字幕亚洲成人| 一级全黄裸体片| 亚洲一区二区三区四区五区午夜| 欧美一级二级三级九九九| 日韩一区二区三区在线免费观看 | 国产av第一区| 国产精品nxnn| 国产精品福利在线观看| av免费在线免费| 亚洲国产日韩欧美在线图片| 久久99国产综合精品免费| 中文字幕av一区二区三区免费看| 亚欧精品在线视频| 免费亚洲视频| 咪咪色在线视频| 麻豆一区一区三区四区| 国产精品444| 久操视频在线观看| 日韩电影在线观看永久视频免费网站| 天堂网免费视频| 综合激情成人伊人| 在线观看国产免费视频| 蜜臀av性久久久久av蜜臀妖精| 国产911在线观看| 日韩激情啪啪| 亚洲一区久久久| 奇米777日韩| 欧美xxxx14xxxxx性爽| 日韩大片b站免费观看直播| 欧美日本国产一区| 自拍偷拍欧美亚洲| 亚洲欧美电影一区二区| 在线观看国产精品一区| 国产91精品久久久久久久网曝门| 欧美三级午夜理伦三级| 欧美777四色影| 色阁综合av| 日韩大胆成人| 国产成人精品免费视频大全最热| 成人日韩av| 国内精品小视频| a在线免费观看| 中文字幕亚洲国产| 午夜av免费在线观看| 在线综合亚洲欧美在线视频| 日本中文字幕久久| 性久久久久久久久| 亚洲色婷婷一区二区三区| 久久精品欧美一区二区三区麻豆| 中文字幕视频观看| 国产尤物一区二区| 99sesese| 蜜臀av一区二区在线观看| 妺妺窝人体色www在线小说| 亚洲欧洲日韩| 亚洲午夜精品一区二区| 欧美精选一区二区三区| 国产乱子伦精品| 51精品国产| 亚洲在线视频观看| 99tv成人影院| 国产欧美一区二区三区视频| av在线日韩| 欧美一区视频在线| 欧美男男tv网站在线播放| 久久久久久久久久亚洲| 亚洲区欧洲区| 精品综合久久久久久97| www视频在线免费观看| www国产精品视频| 9191在线| 久久精品电影网站| 男人的天堂在线视频免费观看| 永久免费精品影视网站| 春暖花开成人亚洲区| 亚洲欧洲在线免费| 久草在线网址| 一区二区国产精品视频| 成人在线播放视频| 中文字幕日韩av| 婷婷成人激情| 久久久av一区| 日本在线视频中文有码| 欧美黑人一级爽快片淫片高清| 操你啦在线视频| 久久成年人视频| 日本天码aⅴ片在线电影网站| 九九九久久久久久| zzzwww在线看片免费| 欧美有码在线观看视频| 黑人巨大亚洲一区二区久| 国产精品69av| 四虎影视精品永久在线观看| 91中文在线视频| 风间由美中文字幕在线看视频国产欧美 | 日韩中文字幕视频| 污污网站在线观看| 午夜精品一区二区三区在线视频| sm久久捆绑调教精品一区| 欧美一级在线亚洲天堂| 激情亚洲小说| 亚洲综合色激情五月| 51精品国产| 日本成人三级电影网站| 99久久精品费精品国产| 毛片av在线播放| 国产精品一二| 中文字幕永久有效| 国产成+人+日韩+欧美+亚洲| 亚洲欧美在线不卡| 国产精品五月天| 欧美日韩精品一区二区三区视频播放 | 亚洲大片免费观看| 7777女厕盗摄久久久| 日韩在线观看视频一区| 亚洲全黄一级网站| 在线黄色网页| 日韩免费观看网站| 91精品网站在线观看| 国产伦精品一区二区三区视频孕妇| 欧美极品在线观看| a级片一区二区| 久久婷婷激情| 亚洲五月激情网| 99精品欧美一区二区三区小说| 91激情视频在线观看| 综合在线观看色| 91国产丝袜播放在线| 欧美日韩高清影院| 日韩成人黄色| 久久人人爽亚洲精品天堂| 日韩脚交footjobhd| 日本一二三区在线| 成人影视亚洲图片在线| 国产激情片在线观看| 国产亚洲网站| 伊人免费视频二| 久久久久久久久久美女| 欧美成人777| 欧美自拍偷拍午夜视频| 日本加勒比一区| 操日韩av在线电影| 性欧美超级视频| 国产精品亚洲综合| 国产精品麻豆久久| 成年人网站大全| av一区二区三区黑人| 成年人二级毛片| 欧美视频一区二区在线观看| 日本免费一区视频| 色综合久久悠悠| 不卡一区视频| 日韩欧美视频一区二区三区四区 | av在线观看地址| 精品一区二区三区日韩| 天堂在线中文视频| 一本到不卡免费一区二区| 欧美 日韩 国产 精品| 久久偷看各类女兵18女厕嘘嘘| 欧美色片在线观看| 久久久久久久久久久久久久久久av| 欧美精品99| 亚欧美一区二区三区| 亚洲国产精品av| 国产精品久久久久久久久夜色| 日韩精品电影网| 蜜桃av.网站在线观看| 国产精品自拍首页| 亚洲精品字幕| 欧美激情一区二区三区p站| 一区2区3区在线看| www日本高清| 欧美日韩成人网| ccyy激情综合| 国产真人做爰毛片视频直播| 国产aⅴ综合色| 久久精品欧美一区二区| 精品久久久影院| 99在线视频影院| 久久精品国产精品青草色艺| 雨宫琴音一区二区在线| 免费在线观看日韩av| 又紧又大又爽精品一区二区| www国产一区| 欧美国产在线电影| 亚洲动漫精品| 亚洲少妇第一页| 中文字幕免费不卡| 中文字幕永久在线观看| 精品国产一区二区三区久久狼5月 精品国产一区二区三区久久久狼 精品国产一区二区三区久久久 | 久久精品国产精品亚洲红杏| 亚洲精品自拍视频在线观看| 欧美日韩国产在线观看| 嫩草在线视频| 超碰97人人人人人蜜桃| 国产模特精品视频久久久久| 成都免费高清电影| 在线不卡欧美精品一区二区三区| 在线观看小视频| 国精产品一区二区| 日韩在线一区二区| 欧美成人777| 精品视频在线播放色网色视频| 欧美成人资源| 亚洲国产精品久久久久久久| 欧美亚男人的天堂| 亚洲免费视频一区二区三区| 成人精品一区二区三区电影免费| 久久久久电影| 97人妻精品一区二区三区免费| 欧美日韩国产一区中文午夜| 国产综合在线观看| 成人一区二区电影| 在线观看日韩av电影| 久久久久久久毛片| 日韩一卡二卡三卡| 惠美惠精品网| 中文字幕成人一区| 99在线视频精品| 中文字幕一区二区三区免费看| 欧美成人高清视频| 国产精品欧美三级在线观看| 亚洲av无日韩毛片久久| 五月婷婷久久丁香| 视频一区二区三区不卡| 精品国产乱码久久久久久郑州公司 | 国产一区二区三区高清在线观看| 99精品视频在线免费播放| 阿v天堂2017| 亚洲色图欧美偷拍| 久草在线青青草| 岛国视频一区免费观看| 麻豆精品一区二区三区| 国产亚洲欧美久久久久| 中文字幕一区电影| 日韩影视在线观看| 日韩av成人网| 欧美日韩精品一区视频|