青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆-145  評論-173  文章-70  trackbacks-0

OpenCV 學習筆記

?

March 12, 2010

1. ?????? 關于數(shù)據(jù)基本類型的學習

參見代碼:

//2010 3 12 日, Demo 1?? OpenCV 的第一個例子

//author liuchang

#include <cv.h>

#include <iostream>

using namespace std;

int main()

{

???????? CvPoint p = cvPoint(1,3);// 針對整型的類型 CvPoint ,對應有構造函數(shù) cvPoint ,注意大小寫

???????? cout << p.x << " " << p.y << endl;

???????? CvPoint2D32f p2 = cvPoint2D32f(12.34,43.45);

???????? cout << p2.x << " " << p2.y <<endl;

???????? CvPoint3D32f p3 = cvPoint3D32f(12.34,23.45,56.43);

???????? cout << p3.x << " " << p3.y << " " << p3.z << endl;

//=============================================================================

??? CvSize r = cvSize(3,4);??????????????????????????????????????????? // 長方形維數(shù)類型

???????? cout << r.width << " " <<r.height << endl;

???????? CvSize2D32f r2 = cvSize2D32f(23.45,34.56);

???????? cout << r2.width << " " << r2.height << endl;

//=============================================================================

???????? CvRect x = cvRect(3,4,12.34,45.56);

???????? cout << x.x << " " << x.y << " " << x.width << " " << x.height << endl;

?

???????? return 0;

}

總結:學習到集中基本的數(shù)據(jù)類型

1. ?????? 點的類型。包括二維和三維,而每一個坐標又可以分為整型和浮點型。其中對于二維,用 2D 來表示,對于三維,用 3D 來表示。具體的見代碼上,默認的 CvPoint 類型是一個二維的,整型參數(shù)的點。其他的見上。

2. ?????? 長方形維數(shù)類型。長方形已經(jīng)固定時二維的類型,于是,形參就只用兩個,但是類型可以是整型和浮點型,于是又多了 CvSize2D32f 這種類型了。

3. ?????? 有偏移量的長方形維數(shù)類型。此時前面兩個形參就是偏移量的坐標,分別為 x y 。后面的就是寬和高了。注意,形參的類型都是整型,所以,如果像上面的代碼那樣,就會發(fā)生截斷處理,取整數(shù)部分,于是輸出結果就會有所不同。

4. ?????? 注意類型和構造函數(shù)的區(qū)別??纯?,定義一個變量的時候,用的是類型,即: CvPoint,CvSize,CvRect 等等,而對這個類型的變量初始化的時候用的是對應的構造函數(shù),于是是 cvPoint,cvSize,cvRect, 看到規(guī)律了嗎?類型的第一個首字母大寫,而構造函數(shù)則是對應的類型名的第一個字母小寫就可以了。因此, OpneCV 的這種命名方法還是很科學易記的。

附注: OpenCV 的安裝過程以及 Visual C++ 的配置方法:

1. ?????? 下載 OpenCV 并安裝。由于之前已經(jīng)下載了 1.0 的版本,所以這里安裝的是 1.0 ,默認路徑安裝,并選擇注冊環(huán)境變量。

2. ?????? 檢查系統(tǒng)變量是否更改,盡管上面的選項可能會起作用,不過在我的系統(tǒng)中( Windows 7 ),環(huán)境變量還是沒有更改,于是,選擇高級系統(tǒng)設置 --- 環(huán)境變量 系統(tǒng)變量 —path— 編輯,就是在最后添加路徑 ”; C:\Program Files\OpenCV\bin”, 然后點擊確定退出。

3. ?????? 安裝完成后,并不意味著工作就結束了,還需要設定我們的編程環(huán)境。具體來說就是 Visual C++ 6.0 的設置。

?

Visual C++ 6.0 中設置 OpenCV 的步驟:

1. ?????? 選擇 tools---option, 在彈出的對話框中點擊 Directories 標簽,在 Show directories for 下拉選擇 Include files ,在 Directories 中添加路徑:

?? C:\Program Files\OpenCV\cxcore\include

?? C:\Program Files\OpenCV\cv\include

?? C:\Program Files\OpnCV\cvaux\include

?? C:\Program Files\OpenCV\otherlibs\highgui

?? C:\Program Files\OpenCV\otherlibs\cvcam\include

2. ?????? Show directories for 下拉列表框中選擇 Libarary files ,在 Directories 中添加路徑:

?? C:\Program Files\OpenCV\lib

3. ?????? Show directories for 下拉列表框中選擇 Executable files ,在 Directories 中添加路徑:

? C:\Program Files\OpenCV\bin

4. ?????? 配置完畢,退出。

?

配置完畢之后的測試程序( Demo1 ),就是前面的測試程序,編譯,運行, OK ,完全沒有問題,證明配置完畢!

?

?

?

GUI 命令

1. ?????? 使用到圖片處理,顯示,創(chuàng)建窗口等命令的時候,必須要在 Project—Setting 選項中設定相應的參數(shù),否則可能會發(fā)生連接錯誤!這個不同于上面的 Demo1 ,因為 1 中僅僅是用到了一個數(shù)據(jù)類型,而沒有使用 CV 庫函數(shù)的功能,比如顯示,打開一個圖片,運用到第三方庫的話,肯定要調(diào)用 API 來實現(xiàn)功能,所以,鏈接庫的話,必須要加入,為此,可根據(jù)提示信息設置,一般的,進行圖像處理,都需要使用到這個。

?

2. ?????? 路徑的問題。先看看 Demo2 程序 :

#include <cv.h>

#include <highgui.h>

#include <stdio.h>

?

int main()

{

???????? IplImage* image = cvLoadImage("C:\\Users\\liuchang\\test1.bmp");

???????? if(!image){????????????????? // 如果加載失敗

?????????????????? printf("error: 導入圖片出錯,很可能是路徑出錯 !\n");

?????????????????? return 0;

???????? }

???????? cvNamedWindow("win1",CV_WINDOW_AUTOSIZE);??? // 創(chuàng)建一個窗口

???????? cvMoveWindow("win1",100,100);?????????? // 定位一個窗口

???????? cvShowImage("win1",image);??????????????????????????? // 在創(chuàng)建的窗口中顯示一個圖片

//????? cvWaitKey(0);?????????????????????????????????????? ???????? // 等待用戶輸入,否則一閃而過 , 看不到圖片

???????? cvReleaseImage(&image);????????????????????????????????? // 注意使用完后一定要釋放

???????? return 0;

}

此段程序中,功能很簡單,就是幫助用戶顯示一副圖片,運行程序,可以顯示出來一幅已經(jīng)存在的圖片,而不需要任何的其他 API 來實現(xiàn)。在 OpenCV 中,處理圖像的函數(shù)很多,此處只是簡單的圖像顯示命令!

另外,上面的注釋很清楚的顯示了程序的各段代碼的功能,這里不再說明。對于具體的說明,后面還會繼續(xù)!需要注意的一點就是,路徑,需要兩個斜線,此處很重要,因為對于一個字符串,在作為路徑打開的時候,需要 ”\\” 才能夠被解釋為一個斜線,所以如果像上面直接給出路徑的話,需要指定是兩個斜線,否則會出錯!

OK ,下面試試從客戶端來輸入數(shù)據(jù),即利用 main 函數(shù)可以從用戶輸入數(shù)據(jù)來編寫:

#include <cv.h>

#include <highgui.h>

#include <stdio.h>

#include <string.h>

?

int main(int argc, char **argv)

{

???????? char num[20];

???????? char getup[20];

???????? int i ;

???????? itoa(argc,num,10);

???????? puts(num);

???????? puts(argv[0]);

???????? puts(argv[1]);

???????? strcpy(getup,argv[1]);

??? for(i = 0; i < strlen(getup); i++)

?????????????????? putchar(getup[i]);

???????? putchar('\\');?????? // 輸出時一個斜線,而如果僅僅一個斜線的話,會報錯!

? ?????? IplImage* image = cvLoadImage(argv[1]);

???????? if(!image){????????????????? // 如果加載失敗

?????????????????? printf("error: 導入圖片出錯,很可能是路徑出錯 !\n");

?????????????????? return 0;

???????? }

???????? cvNamedWindow("win1",CV_WINDOW_AUTOSIZE);??? // 創(chuàng)建一個窗口

???????? cvMoveWindow("win1",100,100);?????????? // 定位一個窗口

???????? cvShowImage("win1",image);??????????????????????????? // 在創(chuàng)建的窗口中顯示一個圖片

???????? cvWaitKey(0);???????????????????????????????????????????????? // 等待用戶輸入,否則一閃而過 , 看不到圖片

???????? cvReleaseImage(&image);????????????????????????????????? // 注意使用完后一定要釋放

???????? return 0;

}

?

關于 main 函數(shù)參數(shù)的問題,在前面的說明中很清楚,不過這里需要再次說明:

首先, argc 讀入的是輸入?yún)?shù)的個數(shù),比如這里輸入: test2? H:\ray.jpg ,那么讀取的 argc 的個數(shù)就是 2 ,而 argv 是一個數(shù)組,用來存放你輸入的參數(shù),既然參數(shù)為 2 ,那么該數(shù)組就有兩個參數(shù),一個 argv[0] ,即前面的那個程序名 test2 ,而后面的那個參數(shù)就是你讀入的那個路徑。注意的一點是:讀取后存放的路徑和你輸入的數(shù)據(jù)可能不同,具體來說就是,你輸入的是 :H:\ray.jpg ,而在機內(nèi)存儲的這個字符串的內(nèi)容是: H:\\ray.jpg ,也就是說,這個字符串是按照能夠正常顯示那個斜線符來設計的,也就是轉義字符設計的,讀入的數(shù)據(jù)將被轉換成正確的能夠表示的數(shù)據(jù)。從上面的驗證代碼中可以看到。

同時,計算 strlen(argv[1]) 也會發(fā)現(xiàn),兩個斜線 ’\\’ 被解釋成一個字符!

對于, putchar(‘\\’) ,如果僅僅是一個斜線的話,會報錯誤,但是兩個的話就正常顯示一個 ’\’ 了。注意是表示的字符,用的單引號,所以,兩個斜線被解釋為一個字符。

Tips :如果輸入?yún)?shù)是: test2 H:\\ray.jpg ,還是可以正常運行的。

注記:和 C 庫函數(shù)不同,例如 open 函數(shù),路徑是 open(“C:\test.c”,O_RDONLY); 這樣的話,里面就是一個斜線哦。所以 OpenCV 是不同的路徑寫法,一定要注意,還有上面解釋的那個輸入?yún)?shù)的問題,就 OK 了。

如果路徑不對,則會有下面提示信息:

H:\OPENCV\test4\test4.cpp(15) : warning C4129: 'O' : unrecognized character escape sequence

H:\OPENCV\test4\test4.cpp(15) : warning C4129: 'l' : unrecognized character escape sequence

所以,一定要加雙下劃線!

?

3. ?????? 輸入處理:

OpenCV 中如何響應鼠標事件呢?比如,如何響應點擊鼠標,如何響應鼠標被按下呢?

其實,只需要你實現(xiàn)下面 mouseHandler 這個方法就可以了:

void mouseHandler(int event,int x,int y,int flags, void *param)

{

???????? switch (event)

???????? {

???????? case CV_EVENT_LBUTTONDOWN:

?????????????????? if(flags & CV_EVENT_FLAG_CTRLKEY)

??????????????????????????? printf("Left button down with CTRL pressed!\n");

?????????????????? break;

???????? case CV_EVENT_LBUTTONUP:

?????????????????? printf("Left button up!\n");

?????????????????? break;

???????? }

}

那么,如何注冊鼠標監(jiān)聽呢?看下面這段代碼:

???????? int mouserParam = 5;

???????? cvSetMouseCallback("win1",mouseHandler,&mouserParam);

也就是說,具體的實現(xiàn)監(jiān)聽函數(shù)由 mouseHandler 來完成,而要注冊,也就是讓它何時監(jiān)聽,監(jiān)聽哪一個窗口,則需要用 cvSetMouseCallback 函數(shù)來實現(xiàn),具體的參數(shù),可查閱 API 文檔,當然,也可以由上面應用猜測出來。

上面的代碼很容易就實現(xiàn)了鼠標被點擊并且同時按下 CTRL 鍵的監(jiān)聽動作和鼠標釋放的動作,當然,你還可以實現(xiàn)更多的功能,具體的就是使用 event 的判斷,以及和 flags 聯(lián)合實現(xiàn)的復合鍵判斷!

?

?

4. ?????? 前面講到了如何實現(xiàn)監(jiān)聽鼠標事件,那么這里講下如何監(jiān)聽鍵盤事件:

看看下面的代碼:

???????? int key ;

???????? key = cvWaitKey(0);????????????????????????????

???????? if(key == 'q'){

?????????????????? printf("quit\n");

?????????????????? return 0;

???????? }

上面這段代碼的意思就是不斷的等待輸入,如果輸入時 q 的話就退出程序,實驗之,發(fā)現(xiàn)有用。從這里引申下幾點:

(1) ?????? 對于 cvWaitKey 函數(shù)的參數(shù),就是等待的毫秒數(shù),如果是 0 ,則表示不斷的等待輸入,進入一個循環(huán)。而它的返回值,就是你按下的按鈕的鍵值。當然,如果要等待一定的時間,如果沒有輸入還是退出的話,可以采用 cvWaitKey(1000) 這樣的具體參數(shù),這樣在等待的過程沒有輸入的話,還是可以正常退出,而不是想前面的循環(huán)在那里。

(2) ?????? 如果要實現(xiàn)不斷循環(huán)的話,可以采用下面的這個形式:

while(1){

?? key = cvWaitKey(10);

?? if(key == 27)

??????????? break;

?? switch(key){

?? case 'h':

??????????? break;

?? case 'i':

??????????? break;

?? }

}

這種方式也很好的實現(xiàn)了循環(huán)等待多重輸入的形式。

?

?

5. ?????? 如何處理拖動條事件:

上圖即拖動條,如何創(chuàng)建并響應該事件呢?

1. ?????? 創(chuàng)建:

int trackbarVal = 25;

int maxVal = 100;

cvCreateTrackbar("bar1","win1",&trackbarVal,maxVal,trackbarHandler);

這樣就設置了一個名稱為 bar1 的拖動條。

2. ?????? 響應事件:利用函數(shù) trackbarHandler 來實現(xiàn)

void trackbarHandler(int pos)

{

printf("Trackbar position: %d\n",pos);

}

注意這個監(jiān)聽是自動的。也就是說不需要自己進行任何的注冊,只要創(chuàng)建了,并且寫了這個函數(shù),就可以實現(xiàn)自動的監(jiān)聽,因為,在創(chuàng)建的函數(shù)中,最后的一個參數(shù)就是一個監(jiān)聽的函數(shù)。

?

附記:完整的代碼如下:

#include <cv.h>

#include <highgui.h>

#include <stdio.h>

#include <string.h>

?

void mouseHandler(int event,int x,int y,int flags, void *param)

{

???????? switch (event)

???????? {

???????? case CV_EVENT_LBUTTONDOWN:

?????????????????? if(flags & CV_EVENT_FLAG_CTRLKEY)

??????????????????????????? printf("Left button down with CTRL pressed!\n");

?????????????????? break;

???????? case CV_EVENT_LBUTTONUP:

?????????????????? printf("Left button up!\n");

?????????????????? break;

???????? }

}

?

void trackbarHandler(int pos)

{

???????? printf("Trackbar position: %d\n",pos);

}

?

int main(int argc, char **argv)

{

// ??? char num[20];

// ??? char getup[20];

// ??? int i ;

// ??? itoa(argc,num,10);

// ??? puts(num);

// ??? puts(argv[0]);

// ??? puts(argv[1]);

// ??? strcpy(getup,argv[1]);

//???? for(i = 0; i < strlen(getup); i++)

// ???????????? putchar(getup[i]);

// ??? putchar('\\');

? ?????? IplImage* image = cvLoadImage(argv[1]);

???????? if(!image){????????????????? // 如果加載失敗

?????????????????? printf("error: 導入圖片出錯,很可能是路徑出錯 !\n");

?????????????????? return 0;

???????? }

???????? cvNamedWindow("win1",CV_WINDOW_AUTOSIZE);??? // 創(chuàng)建一個窗口

???????? cvMoveWindow("win1",100,100);?????????? // 定位一個窗口

???????? cvShowImage("win1",image);??????????????????????????? // 在創(chuàng)建的窗口中顯示一個圖片

// ??? int mouserParam = 5;

// ??? cvSetMouseCallback("win1",mouseHandler,&mouserParam);

// ??? int key ;

// ??? key = cvWaitKey(0);???????????????????????????? // 等待輸入,等待時間為 1000ms

// ??? if(key == 'q'){

// ???????????? printf("quit\n");

// ???????????? return 0;

// ??? }

???????? int trackbarVal = 25;

???????? int maxVal = 100;

???????? cvCreateTrackbar("bar1","win1",&trackbarVal,maxVal,trackbarHandler);

//????? int pos = cvGetTrackbarPos("bar1","win1");

//? int pos = cvGetTrackbarPos("bar1","win1");

//????? cvSetTrackbarPos("bar1","win1",25);

?

???????? cvWaitKey(0);???????????????????????????????????????????????? // 等待用戶輸入,否則一閃而過 , 看不到圖片

???????? cvReleaseImage(&image);????????????????????????????????? // 注意使用完后一定要釋放

???????? return 0;

}

?

posted on 2010-03-16 13:21 deercoder 閱讀(10834) 評論(7)  編輯 收藏 引用 所屬分類: OpenCV

評論:
# re: OpenCV學習筆記(一) 2010-03-16 17:03 | anon
建議支持學2.0  回復  更多評論
  
# re: OpenCV學習筆記(一) 2010-03-16 22:03 | 劉暢
@anon
謝謝,以前裝過2.0,不過嫌配置比較復雜就沒有做了,貌似最近官方網(wǎng)站有說明,有時間去看看。  回復  更多評論
  
# re: OpenCV學習筆記(一) 2010-03-29 00:30 | df
建議使用VC Express, 2005,2008,2010都好,因為VC6和C++標準不相容,編譯調(diào)試過程中可能會出現(xiàn)一些不可預知的問題。另外,新的OpenCV對C++增強不少,建議看看。  回復  更多評論
  
# re: OpenCV學習筆記(一) 2010-03-29 11:50 | 劉暢
@df
謝謝,有時間一定看看。  回復  更多評論
  
# re: OpenCV學習筆記(一) 2010-06-09 16:17 | Forsure
你好,文章寫得非常的好,雖然很早就學習了這些基礎內(nèi)容,不過今天看了你的覺得還是收獲不少,我最近又回來搞opencv,希望可以一起討論交流。我的郵箱luanwpp#163.com,#號換成@。期待  回復  更多評論
  
# re: OpenCV學習筆記(一) 2011-04-29 23:55 | 鄭鄭鄭
"
4. 注意類型和構造函數(shù)的區(qū)別??纯矗x一個變量的時候,用的是類型,即: CvPoint,CvSize,CvRect 等等,而對這個類型的變量初始化的時候用的是對應的構造函數(shù),于是是 cvPoint,cvSize,cvRect, 看到規(guī)律了嗎?類型的第一個首字母大寫,而構造函數(shù)則是對應的類型名的第一個字母小寫就可以了。因此, OpneCV 的這種命名方法還是很科學易記的。
"
cvPoint,cvSize,cvRect是構造函數(shù)?應該是結構體吧  回復  更多評論
  
# re: OpenCV學習筆記(一) 2011-05-25 10:38 | 劉暢
@鄭鄭鄭
CvPoint Point1; //類型
cvPoint() //構造函數(shù)
初始化CvPoint資料結構,為OpenCV常用資料結構
cvPoint(int型別row,int型別colunm)   回復  更多評論
  

只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            1024亚洲| 国产精品v日韩精品v欧美精品网站| 91久久精品一区| 亚洲一区二区三区久久| 国产真实久久| 欧美日韩一区三区| 久久国产精品72免费观看| 亚洲高清资源| 久久黄色级2电影| 亚洲人成在线影院| 国产精品永久| 欧美人交a欧美精品| 久久爱www| 亚洲精品偷拍| 欧美电影免费观看高清| 亚洲欧美在线看| 亚洲免费观看在线观看| 国产三级精品在线不卡| 欧美日韩精品免费看| 久久久精品国产一区二区三区| 99热这里只有成人精品国产| 欧美aaaaaaaa牛牛影院| 亚洲视频电影图片偷拍一区| 一区二区在线视频| 国产精品一区二区久久久久 | 亚洲精品视频一区| 久久久久久综合| 亚洲午夜激情| 亚洲精品综合精品自拍| 一区二区三区在线观看国产| 国产精品素人视频| 欧美mv日韩mv亚洲| 久久久99国产精品免费| 亚洲欧美激情精品一区二区| 一本大道久久a久久综合婷婷| 亚洲国产天堂久久综合| 裸体歌舞表演一区二区| 久久精品麻豆| 久久aⅴ国产紧身牛仔裤| 亚洲午夜精品网| 99国产精品视频免费观看| 亚洲第一页中文字幕| 国内视频一区| 国产在线不卡视频| 国产精品午夜在线观看| 国产精品国码视频| 国产精品成人v| 欧美精品在线看| 欧美激情导航| 欧美区亚洲区| 欧美精品日韩www.p站| 欧美高清免费| 欧美精品日韩一区| 欧美日韩精品免费看| 欧美日韩精品免费观看视频| 免费看亚洲片| 欧美精品久久久久a| 欧美精品亚洲一区二区在线播放| 免费的成人av| 欧美绝品在线观看成人午夜影视| 欧美黑人多人双交| 欧美成人午夜| 欧美日本在线播放| 欧美性猛交xxxx免费看久久久| 国产伦精品一区二区三| 亚洲成色精品| 亚洲一区在线看| 久久天天躁狠狠躁夜夜av| 亚洲成人在线视频播放 | 亚洲综合三区| 久久精品最新地址| 亚洲国产你懂的| 亚洲图片欧洲图片av| 久久精品综合网| 欧美日韩综合一区| 狠狠v欧美v日韩v亚洲ⅴ| 日韩视频在线观看一区二区| 香蕉国产精品偷在线观看不卡| 欧美成人一区二免费视频软件| 亚洲最新在线视频| 久久久一区二区| 国产精品久久一卡二卡| 在线欧美亚洲| 欧美一区二区三区久久精品| 欧美国产亚洲精品久久久8v| 亚洲在线国产日韩欧美| 欧美大片在线观看| 国产亚洲一区精品| 亚洲视频免费在线观看| 免费观看一区| 性欧美8khd高清极品| 欧美日韩视频第一区| 亚洲成人在线| 欧美在线啊v| 日韩视频免费观看高清完整版| 久久久国产精品一区二区三区| 国产精品福利在线观看| 亚洲精品一二| 免费在线观看精品| 亚欧美中日韩视频| 欧美性猛交视频| 99成人在线| 亚洲成人在线视频播放| 亚洲欧美日韩视频一区| 欧美日韩一区在线观看| 亚洲激情自拍| 乱中年女人伦av一区二区| 亚洲欧美综合一区| 国产精品vvv| 一本色道久久综合狠狠躁篇的优点| 免费观看久久久4p| 欧美一区二区三区四区在线| 国产精品久久久久免费a∨大胸 | 亚洲第一主播视频| 久久国产欧美| 亚洲免费一在线| 国产精品美女www爽爽爽视频| 一区二区不卡在线视频 午夜欧美不卡'| 美日韩丰满少妇在线观看| 性色av香蕉一区二区| 国产女主播一区二区三区| 亚洲欧美国产毛片在线| 国产精品99久久久久久久久| 欧美日韩一区三区四区| 中文在线一区| 一区二区久久| 国产精品超碰97尤物18| 亚洲欧美日韩国产精品| 亚洲无限乱码一二三四麻| 国产精品啊v在线| 先锋影音一区二区三区| 亚洲欧美国产另类| 国产视频亚洲精品| 久久久精品免费视频| 久久精品视频网| 在线看一区二区| 亚洲国产你懂的| 欧美日韩国产成人在线免费| 一区二区三区久久精品| 中国成人黄色视屏| 国产精品久久久久久久电影| 亚洲欧美视频在线| 午夜精品久久久久久久蜜桃app| 国产日韩综合一区二区性色av| 久久电影一区| 久久精品理论片| 亚洲国产另类久久精品| 亚洲精品乱码久久久久久日本蜜臀| 欧美日韩国产一区精品一区 | 欧美一区二区在线免费播放| 狠狠色狠狠色综合日日五| 免费成人高清视频| 欧美精品 日韩| 亚洲欧洲av一区二区| 欧美专区日韩视频| 亚洲韩国日本中文字幕| 日韩一本二本av| 国产一区二区日韩| 亚洲国产mv| 国产精品福利片| 免费观看久久久4p| 欧美三级视频| 久久天堂精品| 欧美日韩美女| 久久久久久久久蜜桃| 欧美激情国产精品| 性做久久久久久久免费看| 久久性天堂网| 亚洲欧美国产高清| 久久夜色精品国产欧美乱极品| 一区二区三区导航| 欧美在线中文字幕| 一区电影在线观看| 久久激情综合网| 亚洲深夜福利视频| 久久米奇亚洲| 亚洲一区亚洲二区| 免费成人激情视频| 欧美中文字幕在线视频| 欧美激情视频网站| 久久久91精品| 欧美偷拍另类| 欧美国产日韩精品| 国产乱码精品一区二区三区五月婷 | 国产一区观看| 一本久道久久久| 亚洲成色777777在线观看影院| 亚洲视频网站在线观看| 亚洲欧洲精品一区二区精品久久久| 一区二区三区视频在线播放| 亚洲国产日韩欧美在线动漫| 午夜精品偷拍| 亚洲午夜精品久久| 欧美成人一区二区| 免费成人美女女| 国产情人节一区| 一区二区三区欧美成人| 日韩视频精品在线| 久久综合久色欧美综合狠狠 | 国产自产精品|