3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

SLAM之特征匹配(一)————RANSAC-------OpenCV中findFundamentalMat函数使用的模型

發布時間:2023/11/27 生活经验 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SLAM之特征匹配(一)————RANSAC-------OpenCV中findFundamentalMat函数使用的模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.RANSAC原理??

2. RANSAC算法步驟:?

3. RANSAC源碼解析

step one niters最初的值為2000,這就是初始時的RANSAC算法的循環次數,getSubset()函數是從一組對應的序列中隨機的選出4組(因為要想計算出一個3X3的矩陣,至少需要4組對應的坐標),m1和m2是我們輸入序列,ms1和ms2是隨機選出的對應的4組匹配。

參考https://blog.csdn.net/laobai1015/article/details/51683076

cv::findFundamentalMat

4. 針孔相機模型和變形

5.照相機定標

5.1 ProjectPoints2

5.2 FindHomographyFindHomography

5.3 CalibrateCamera2

5.4 FindExtrinsicCameraParams2

計算指定視圖的攝像機外參數

5.5 Rodrigues2

5.6 Undistort2

5.7 InitUndistortMap

5. 8 FindChessboardCorners

DrawChessBoardCorners

6. 姿態估計

6.1 CreatePOSITObject

6.2 POSIT

6.3 ReleasePOSITObject

6.4 CalcImageHomography

6.5 FindFundamentalMat

6.6 ComputeCorrespondEpilines


隨機抽樣一致性(RANSAC)算法,可以在一組包含“外點”的數據集中,采用不斷迭代的方法,尋找最優參數模型,不符合最優模型的點,被定義為“外點”。在圖像配準以及拼接上得到廣泛的應用,本文將對RANSAC算法在OpenCV中角點誤匹配對的檢測中進行解析。

1.RANSAC原理??

? OpenCV中濾除誤匹配對采用RANSAC算法尋找一個最佳單應性矩陣H,矩陣大小為3×3。RANSAC目的是找到最優的參數矩陣使得滿足該矩陣的數據點個數最多,通常令h33=1來歸一化矩陣。由于單應性矩陣有8個未知參數,至少需要8個線性方程求解,對應到點位置信息上,一組點對可以列出兩個方程,則至少包含4組匹配點對。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?其中(x,y)表示目標圖像角點位置,(x',y')為場景圖像角點位置,s為尺度參數。

? RANSAC算法從匹配數據集中隨機抽出4個樣本并保證這4個樣本之間不共線,計算出單應性矩陣,然后利用這個模型測試所有數據,并計算滿足這個模型數據點的個數與投影誤差(即代價函數),若此模型為最優模型,則對應的代價函數最小。

-----------------------------------------------------------------------------------------------------------------

2. RANSAC算法步驟:?

? ? ? ? ? 1. 隨機從數據集中隨機抽出4個樣本數據 (此4個樣本之間不能共線),計算出變換矩陣H,記為模型M;

? ? ? ? ? 2. 計算數據集中所有數據與模型M的投影誤差,若誤差小于閾值,加入內點集 I ;

? ? ? ? ? 3. 如果當前內點集 I 元素個數大于最優內點集 I_best , 則更新 I_best = I,同時更新迭代次數k ;

? ? ? ? ? 4. 如果迭代次數大于k,則退出 ; 否則迭代次數加1,并重復上述步驟;

? 注:迭代次數k在不大于最大迭代次數的情況下,是在不斷更新而不是固定的;

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?其中,p為置信度,一般取0.995;w為"內點"的比例 ; m為計算模型所需要的最少樣本數=4;

-----------------------------------------------------------------------------------------------------------------

2.例程

OpenCV中此功能通過調用findHomography函數調用,下面是個例程:

[cpp]?view plain?copy
  1. #include?<iostream>??
  2. #include?"opencv2/opencv.hpp"??
  3. #include?"opencv2/core/core.hpp"??
  4. #include?"opencv2/features2d/features2d.hpp"??
  5. #include?"opencv2/highgui/highgui.hpp"??
  6. using?namespace?cv;??
  7. using?namespace?std;??
  8. int?main(int?argc,?char**?argv)??
  9. {??
  10. ????Mat?obj=imread("F:\\Picture\\obj.jpg");???//載入目標圖像??
  11. ????Mat?scene=imread("F:\\Picture\\scene.jpg");?//載入場景圖像??
  12. ????if?(obj.empty()?||?scene.empty()?)??
  13. ????{??
  14. ????????cout<<"Can't?open?the?picture!\n";??
  15. ????????return?0;??
  16. ????}??
  17. ????vector<KeyPoint>?obj_keypoints,scene_keypoints;??
  18. ????Mat?obj_descriptors,scene_descriptors;??
  19. ????ORB?detector;?????//采用ORB算法提取特征點??
  20. ????detector.detect(obj,obj_keypoints);??
  21. ????detector.detect(scene,scene_keypoints);??
  22. ????detector.compute(obj,obj_keypoints,obj_descriptors);??
  23. ????detector.compute(scene,scene_keypoints,scene_descriptors);??
  24. ????BFMatcher?matcher(NORM_HAMMING,true);?//漢明距離做為相似度度量??
  25. ????vector<DMatch>?matches;??
  26. ????matcher.match(obj_descriptors,?scene_descriptors,?matches);??
  27. ????Mat?match_img;??
  28. ????drawMatches(obj,obj_keypoints,scene,scene_keypoints,matches,match_img);??
  29. ????imshow("濾除誤匹配前",match_img);??
  30. ??
  31. ????//保存匹配對序號??
  32. ????vector<int>?queryIdxs(?matches.size()?),?trainIdxs(?matches.size()?);??
  33. ????for(?size_t?i?=?0;?i?<?matches.size();?i++?)??
  34. ????{??
  35. ????????queryIdxs[i]?=?matches[i].queryIdx;??
  36. ????????trainIdxs[i]?=?matches[i].trainIdx;??
  37. ????}?????
  38. ??
  39. ????Mat?H12;???//變換矩陣??
  40. ??
  41. ????vector<Point2f>?points1;?KeyPoint::convert(obj_keypoints,?points1,?queryIdxs);??
  42. ????vector<Point2f>?points2;?KeyPoint::convert(scene_keypoints,?points2,?trainIdxs);??
  43. ????int?ransacReprojThreshold?=?5;??//拒絕閾值??
  44. ??
  45. ??
  46. ????H12?=?findHomography(?Mat(points1),?Mat(points2),?CV_RANSAC,?ransacReprojThreshold?);??
  47. ????vector<char>?matchesMask(?matches.size(),?0?);????
  48. ????Mat?points1t;??
  49. ????perspectiveTransform(Mat(points1),?points1t,?H12);??
  50. ????for(?size_t?i1?=?0;?i1?<?points1.size();?i1++?)??//保存‘內點’??
  51. ????{??
  52. ????????if(?norm(points2[i1]?-?points1t.at<Point2f>((int)i1,0))?<=?ransacReprojThreshold?)?//給內點做標記??
  53. ????????{??
  54. ????????????matchesMask[i1]?=?1;??
  55. ????????}?????
  56. ????}??
  57. ????Mat?match_img2;???//濾除‘外點’后??
  58. ????drawMatches(obj,obj_keypoints,scene,scene_keypoints,matches,match_img2,Scalar(0,0,255),Scalar::all(-1),matchesMask);??
  59. ??
  60. ????//畫出目標位置??
  61. ????std::vector<Point2f>?obj_corners(4);??
  62. ????obj_corners[0]?=?cvPoint(0,0);?obj_corners[1]?=?cvPoint(?obj.cols,?0?);??
  63. ????obj_corners[2]?=?cvPoint(?obj.cols,?obj.rows?);?obj_corners[3]?=?cvPoint(?0,?obj.rows?);??
  64. ????std::vector<Point2f>?scene_corners(4);??
  65. ????perspectiveTransform(?obj_corners,?scene_corners,?H12);??
  66. ????line(?match_img2,?scene_corners[0]?+?Point2f(static_cast<float>(obj.cols),?0),???
  67. ????????scene_corners[1]?+?Point2f(static_cast<float>(obj.cols),?0),Scalar(0,0,255),2);??
  68. ????line(?match_img2,?scene_corners[1]?+?Point2f(static_cast<float>(obj.cols),?0),???
  69. ????????scene_corners[2]?+?Point2f(static_cast<float>(obj.cols),?0),Scalar(0,0,255),2);??
  70. ????line(?match_img2,?scene_corners[2]?+?Point2f(static_cast<float>(obj.cols),?0),???
  71. ????????scene_corners[3]?+?Point2f(static_cast<float>(obj.cols),?0),Scalar(0,0,255),2);??
  72. ????line(?match_img2,?scene_corners[3]?+?Point2f(static_cast<float>(obj.cols),?0),??
  73. ????????scene_corners[0]?+?Point2f(static_cast<float>(obj.cols),?0),Scalar(0,0,255),2);??
  74. ??
  75. ????imshow("濾除誤匹配后",match_img2);??
  76. ????waitKey(0);??
  77. ??????
  78. ????return?0;??
  79. }??


3. RANSAC源碼解析

(1)findHomography內部調用cvFindHomography函數

srcPoints:目標圖像點集

dstPoints:場景圖像點集

method: 最小中值法、RANSAC方法、最小二乘法

ransacReprojTheshold:投影誤差閾值

mask:掩碼

[cpp]?view plain?copy
  1. cvFindHomography(?const?CvMat*?objectPoints,?const?CvMat*?imagePoints,??
  2. ??????????????????CvMat*?__H,?int?method,?double?ransacReprojThreshold,??
  3. ??????????????????CvMat*?mask?)??
  4. {??
  5. ????const?double?confidence?=?0.995;??//置信度??
  6. ????const?int?maxIters?=?2000;????//迭代最大次數??
  7. ????const?double?defaultRANSACReprojThreshold?=?3;?//默認拒絕閾值??
  8. ????bool?result?=?false;??
  9. ????Ptr<CvMat>?m,?M,?tempMask;??
  10. ??
  11. ????double?H[9];??
  12. ????CvMat?matH?=?cvMat(?3,?3,?CV_64FC1,?H?);??//變換矩陣??
  13. ????int?count;??
  14. ??
  15. ????CV_Assert(?CV_IS_MAT(imagePoints)?&&?CV_IS_MAT(objectPoints)?);??
  16. ??
  17. ????count?=?MAX(imagePoints->cols,?imagePoints->rows);??
  18. ????CV_Assert(?count?>=?4?);???????????//至少有4個樣本??
  19. ????if(?ransacReprojThreshold?<=?0?)??
  20. ????????ransacReprojThreshold?=?defaultRANSACReprojThreshold;??
  21. ??
  22. ????m?=?cvCreateMat(?1,?count,?CV_64FC2?);??//轉換為齊次坐標??
  23. ????cvConvertPointsHomogeneous(?imagePoints,?m?);??
  24. ??
  25. ????M?=?cvCreateMat(?1,?count,?CV_64FC2?);//轉換為齊次坐標??
  26. ????cvConvertPointsHomogeneous(?objectPoints,?M?);??
  27. ??
  28. ????if(?mask?)??
  29. ????{??
  30. ????????CV_Assert(?CV_IS_MASK_ARR(mask)?&&?CV_IS_MAT_CONT(mask->type)?&&??
  31. ????????????(mask->rows?==?1?||?mask->cols?==?1)?&&??
  32. ????????????mask->rows*mask->cols?==?count?);??
  33. ????}??
  34. ????if(?mask?||?count?>?4?)??
  35. ????????tempMask?=?cvCreateMat(?1,?count,?CV_8U?);??
  36. ????if(?!tempMask.empty()?)??
  37. ????????cvSet(?tempMask,?cvScalarAll(1.)?);??
  38. ??
  39. ????CvHomographyEstimator?estimator(4);??
  40. ????if(?count?==?4?)??
  41. ????????method?=?0;??
  42. ????if(?method?==?CV_LMEDS?)??//最小中值法??
  43. ????????result?=?estimator.runLMeDS(?M,?m,?&matH,?tempMask,?confidence,?maxIters?);??
  44. ????else?if(?method?==?CV_RANSAC?)????//采用RANSAC算法??
  45. ????????result?=?estimator.runRANSAC(?M,?m,?&matH,?tempMask,?ransacReprojThreshold,?confidence,?maxIters);//(2)解析??
  46. ????else??
  47. ????????result?=?estimator.runKernel(?M,?m,?&matH?)?>?0;?//最小二乘法??
  48. ??
  49. ????if(?result?&&?count?>?4?)??
  50. ????{??
  51. ????????icvCompressPoints(?(CvPoint2D64f*)M->data.ptr,?tempMask->data.ptr,?1,?count?);??//保存內點集??
  52. ????????count?=?icvCompressPoints(?(CvPoint2D64f*)m->data.ptr,?tempMask->data.ptr,?1,?count?);??
  53. ????????M->cols?=?m->cols?=?count;??
  54. ????????if(?method?==?CV_RANSAC?)??//??
  55. ????????????estimator.runKernel(?M,?m,?&matH?);??//內點集上采用最小二乘法重新估算變換矩陣??
  56. ????????estimator.refine(?M,?m,?&matH,?10?);//???
  57. ????}??
  58. ??
  59. ????if(?result?)??
  60. ????????cvConvert(?&matH,?__H?);??//保存變換矩陣??
  61. ??
  62. ????if(?mask?&&?tempMask?)??
  63. ????{??
  64. ????????if(?CV_ARE_SIZES_EQ(mask,?tempMask)?)??
  65. ???????????cvCopy(?tempMask,?mask?);??
  66. ????????else??
  67. ???????????cvTranspose(?tempMask,?mask?);??
  68. ????}??
  69. ??
  70. ????return?(int)result;??
  71. }??

(2) runRANSAC
maxIters:最大迭代次數

m1,m2 :數據樣本

model:變換矩陣

reprojThreshold:投影誤差閾值

confidence:置信度 ?0.995

[cpp]?view plain?copy
  1. bool?CvModelEstimator2::runRANSAC(?const?CvMat*?m1,?const?CvMat*?m2,?CvMat*?model,??
  2. ????????????????????????????????????CvMat*?mask0,?double?reprojThreshold,??
  3. ????????????????????????????????????double?confidence,?int?maxIters?)??
  4. {??
  5. ????bool?result?=?false;??
  6. ????cv::Ptr<CvMat>?mask?=?cvCloneMat(mask0);??
  7. ????cv::Ptr<CvMat>?models,?err,?tmask;??
  8. ????cv::Ptr<CvMat>?ms1,?ms2;??
  9. ??
  10. ????int?iter,?niters?=?maxIters;??
  11. ????int?count?=?m1->rows*m1->cols,?maxGoodCount?=?0;??
  12. ????CV_Assert(?CV_ARE_SIZES_EQ(m1,?m2)?&&?CV_ARE_SIZES_EQ(m1,?mask)?);??
  13. ??
  14. ????if(?count?<?modelPoints?)??
  15. ????????return?false;??
  16. ??
  17. ????models?=?cvCreateMat(?modelSize.height*maxBasicSolutions,?modelSize.width,?CV_64FC1?);??
  18. ????err?=?cvCreateMat(?1,?count,?CV_32FC1?);//保存每組點對應的投影誤差??
  19. ????tmask?=?cvCreateMat(?1,?count,?CV_8UC1?);??
  20. ??
  21. ????if(?count?>?modelPoints?)??//多于4個點??
  22. ????{??
  23. ????????ms1?=?cvCreateMat(?1,?modelPoints,?m1->type?);??
  24. ????????ms2?=?cvCreateMat(?1,?modelPoints,?m2->type?);??
  25. ????}??
  26. ????else??//等于4個點??
  27. ????{??
  28. ????????niters?=?1;?//迭代一次??
  29. ????????ms1?=?cvCloneMat(m1);??//保存每次隨機找到的樣本點??
  30. ????????ms2?=?cvCloneMat(m2);??
  31. ????}??
  32. ??
  33. ????for(?iter?=?0;?iter?<?niters;?iter++?)??//不斷迭代??
  34. ????{??
  35. ????????int?i,?goodCount,?nmodels;??
  36. ????????if(?count?>?modelPoints?)??
  37. ????????{??
  38. ???????????//在(3)解析getSubset??
  39. ????????????bool?found?=?getSubset(?m1,?m2,?ms1,?ms2,?300?);?//隨機選擇4組點,且三點之間不共線,(3)解析??
  40. ????????????if(?!found?)??
  41. ????????????{??
  42. ????????????????if(?iter?==?0?)??
  43. ????????????????????return?false;??
  44. ????????????????break;??
  45. ????????????}??
  46. ????????}??
  47. ??
  48. ????????nmodels?=?runKernel(?ms1,?ms2,?models?);??//估算近似變換矩陣,返回1??
  49. ????????if(?nmodels?<=?0?)??
  50. ????????????continue;??
  51. ????????for(?i?=?0;?i?<?nmodels;?i++?)//執行一次???
  52. ????????{??
  53. ????????????CvMat?model_i;??
  54. ????????????cvGetRows(?models,?&model_i,?i*modelSize.height,?(i+1)*modelSize.height?);//獲取3×3矩陣元素??
  55. ????????????goodCount?=?findInliers(?m1,?m2,?&model_i,?err,?tmask,?reprojThreshold?);??//找出內點,(4)解析??
  56. ??
  57. ????????????if(?goodCount?>?MAX(maxGoodCount,?modelPoints-1)?)??//當前內點集元素個數大于最優內點集元素個數??
  58. ????????????{??
  59. ????????????????std::swap(tmask,?mask);??
  60. ????????????????cvCopy(?&model_i,?model?);??//更新最優模型??
  61. ????????????????maxGoodCount?=?goodCount;??
  62. ????????????????//confidence?為置信度默認0.995,modelPoints為最少所需樣本數=4,niters迭代次數??
  63. ????????????????niters?=?cvRANSACUpdateNumIters(?confidence,??//更新迭代次數,(5)解析??
  64. ????????????????????(double)(count?-?goodCount)/count,?modelPoints,?niters?);??
  65. ????????????}??
  66. ????????}??
  67. ????}??
  68. ??
  69. ????if(?maxGoodCount?>?0?)??
  70. ????{??
  71. ????????if(?mask?!=?mask0?)??
  72. ????????????cvCopy(?mask,?mask0?);??
  73. ????????result?=?true;??
  74. ????}??
  75. ??
  76. ????return?result;??
  77. }??

step one niters最初的值為2000,這就是初始時的RANSAC算法的循環次數,getSubset()函數是從一組對應的序列中隨機的選出4組(因為要想計算出一個3X3的矩陣,至少需要4組對應的坐標),m1和m2是我們輸入序列,ms1和ms2是隨機選出的對應的4組匹配。

?隨機的選出4組匹配后,就應該根據這4個匹配計算相應的矩陣,所以函數runKernel()就是根據4組匹配計算矩陣,參數里的models就是得到的矩陣。

stept wo?這個矩陣只是一個假設,為了驗證這個假設,需要用其他的點去計算,看看其他的點是內點還是外點。

findInliers()函數就是用來計算內點的。利用前面得到的矩陣,把所有的序列帶入,計算得出哪些是內點,哪些是外點,函數的返回值為goodCount,就是此次計算的內點的個數。

step three ?函數中還有一個值為maxGoodCount,每次循環的內點個數的最大值保存在這個值中,一個估計的矩陣如果有越多的內點,那么這個矩陣就越有可能是正確的。

step four ??所以計算內點個數以后,緊接著判斷一下goodCount和maxGoodCount的大小關系,如果goodCount>maxGoodCount,則把goodCount賦值給maxGoodCount。賦值之后的一行代碼非常關鍵,我們單獨拿出來說一下,代碼如下:

  1. niters?=?cvRANSACUpdateNumIters(?confidence,??
  2. ???????????????????(double)(count?-?goodCount)/count,?modelPoints,?niters?); ?

niters本來是迭代的次數,也就是循環的次數。但是通過這行代碼我們發現,每次循環后,都會對niters這個值進行更新,也就是每次循環后都會改變循環的總次數。

cvRANSACUpdateNumIters()函數利用confidence(置信度)count(總匹配個數)goodCount(當前內點個數)niters(當前的總迭代次數)這幾個參數,來動態的改變總迭代次數的大小。該函數的中心思想就是當內點占的比例較多時,那么很有可能已經找到了正確的估計,所以就適當的減少迭代次數來節省時間。這個迭代次數的減少是以指數形式減少的,所以節省的時間開銷也是非常的可觀。因此最初設計的2000的迭代次數,可能最終的迭代次數只有幾十。同樣的,如果你自己一開始把迭代次數設置成10000或者更大,進過幾次迭代后,niters又會變得非常小了。所以初始時的niters設置的再大,其實對最終的運行時間也沒什么影響。

所以,們現在應該清楚為什么輸入數據增加,而算法運行時間不會增加了。openCV的RANSAC算法首先把迭代的次數設置為2000,然后再迭代的過程中,動態的改變總迭代次數,無論輸入數據有多少,總的迭代次數不會增加,并且通過4個匹配計算出估計的矩陣這個時間是不變的,通過估計矩陣來計算內點,這方面的增加的時間開銷基本上可以忽略。所以導致的最終結果就是,無論輸入點有多少,運算時間基本不會有太大變化。

以上就是RANSAC算法的核心代碼,其中用到的一些函數,下面一一給出。

(3)getSubset

ms1,ms2:保存隨機找到的4個樣本

maxAttempts:最大迭代次數,300

[cpp]?view plain?copy
  1. bool?CvModelEstimator2::getSubset(?const?CvMat*?m1,?const?CvMat*?m2,??
  2. ???????????????????????????????????CvMat*?ms1,?CvMat*?ms2,?int?maxAttempts?)??
  3. {??
  4. ????cv::AutoBuffer<int>?_idx(modelPoints);?//modelPoints?所需要最少的樣本點個數??
  5. ????int*?idx?=?_idx;??
  6. ????int?i?=?0,?j,?k,?idx_i,?iters?=?0;??
  7. ????int?type?=?CV_MAT_TYPE(m1->type),?elemSize?=?CV_ELEM_SIZE(type);??
  8. ????const?int?*m1ptr?=?m1->data.i,?*m2ptr?=?m2->data.i;??
  9. ????int?*ms1ptr?=?ms1->data.i,?*ms2ptr?=?ms2->data.i;??
  10. ????int?count?=?m1->cols*m1->rows;??
  11. ??
  12. ????assert(?CV_IS_MAT_CONT(m1->type?&?m2->type)?&&?(elemSize?%?sizeof(int)?==?0)?);??
  13. ????elemSize?/=?sizeof(int);?//每個數據占用字節數??
  14. ??
  15. ????for(;?iters?<?maxAttempts;?iters++)??
  16. ????{??
  17. ????????for(?i?=?0;?i?<?modelPoints?&&?iters?<?maxAttempts;?)??
  18. ????????{??
  19. ????????????idx[i]?=?idx_i?=?cvRandInt(&rng)?%?count;??//?隨機選取1組點??
  20. ????????????for(?j?=?0;?j?<?i;?j++?)??//?檢測是否重復選擇??
  21. ????????????????if(?idx_i?==?idx[j]?)??
  22. ????????????????????break;??
  23. ????????????if(?j?<?i?)??
  24. ????????????????continue;??//重新選擇??
  25. ????????????for(?k?=?0;?k?<?elemSize;?k++?)??//拷貝點數據??
  26. ????????????{??
  27. ????????????????ms1ptr[i*elemSize?+?k]?=?m1ptr[idx_i*elemSize?+?k];??
  28. ????????????????ms2ptr[i*elemSize?+?k]?=?m2ptr[idx_i*elemSize?+?k];??
  29. ????????????}??
  30. ????????????if(?checkPartialSubsets?&&?(!checkSubset(?ms1,?i+1?)?||?!checkSubset(?ms2,?i+1?)))//檢測點之間是否共線??
  31. ????????????{??
  32. ????????????????iters++;??//若共線,重新選擇一組??
  33. ????????????????continue;??
  34. ????????????}??
  35. ????????????i++;??
  36. ????????}??
  37. ????????if(?!checkPartialSubsets?&&?i?==?modelPoints?&&??
  38. ????????????(!checkSubset(?ms1,?i?)?||?!checkSubset(?ms2,?i?)))??
  39. ????????????continue;??
  40. ????????break;??
  41. ????}??
  42. ??
  43. ????return?i?==?modelPoints?&&?iters?<?maxAttempts;??//返回找到的樣本點個數??
  44. }??

(4) findInliers & computerReprojError

[cpp]?view plain?copy
  1. int?CvModelEstimator2::findInliers(?const?CvMat*?m1,?const?CvMat*?m2,??
  2. ????????????????????????????????????const?CvMat*?model,?CvMat*?_err,??
  3. ????????????????????????????????????CvMat*?_mask,?double?threshold?)??
  4. {??
  5. ????int?i,?count?=?_err->rows*_err->cols,?goodCount?=?0;??
  6. ????const?float*?err?=?_err->data.fl;??
  7. ????uchar*?mask?=?_mask->data.ptr;??
  8. ??
  9. ????computeReprojError(?m1,?m2,?model,?_err?);??//計算每組點的投影誤差??
  10. ????threshold?*=?threshold;??
  11. ????for(?i?=?0;?i?<?count;?i++?)??
  12. ????????goodCount?+=?mask[i]?=?err[i]?<=?threshold;//誤差在限定范圍內,加入‘內點集’??
  13. ????return?goodCount;??
  14. }??
  15. //--------------------------------------??
  16. void?CvHomographyEstimator::computeReprojError(?const?CvMat*?m1,?const?CvMat*?m2,const?CvMat*?model,?CvMat*?_err?)??
  17. {??
  18. ????int?i,?count?=?m1->rows*m1->cols;??
  19. ????const?CvPoint2D64f*?M?=?(const?CvPoint2D64f*)m1->data.ptr;??
  20. ????const?CvPoint2D64f*?m?=?(const?CvPoint2D64f*)m2->data.ptr;??
  21. ????const?double*?H?=?model->data.db;??
  22. ????float*?err?=?_err->data.fl;??
  23. ??
  24. ????for(?i?=?0;?i?<?count;?i++?)????????//保存每組點的投影誤差,對應上述變換公式??
  25. ????{??
  26. ????????double?ww?=?1./(H[6]*M[i].x?+?H[7]*M[i].y?+?1.);??????
  27. ????????double?dx?=?(H[0]*M[i].x?+?H[1]*M[i].y?+?H[2])*ww?-?m[i].x;??
  28. ????????double?dy?=?(H[3]*M[i].x?+?H[4]*M[i].y?+?H[5])*ww?-?m[i].y;??
  29. ????????err[i]?=?(float)(dx*dx?+?dy*dy);??
  30. ????}??
  31. }??

(5)cvRANSACUpdateNumIters

對應上述k的計算公式

p:置信度

ep:外點比例

[cpp]?view plain?copy
  1. cvRANSACUpdateNumIters(?double?p,?double?ep,??
  2. ????????????????????????int?model_points,?int?max_iters?)??
  3. {??
  4. ????if(?model_points?<=?0?)??
  5. ????????CV_Error(?CV_StsOutOfRange,?"the?number?of?model?points?should?be?positive"?);??
  6. ??
  7. ????p?=?MAX(p,?0.);??
  8. ????p?=?MIN(p,?1.);??
  9. ????ep?=?MAX(ep,?0.);??
  10. ????ep?=?MIN(ep,?1.);??
  11. ??
  12. ????//?avoid?inf's?&?nan's??
  13. ????double?num?=?MAX(1.?-?p,?DBL_MIN);??//num=1-p,做分子??
  14. ????double?denom?=?1.?-?pow(1.?-?ep,model_points);//做分母??
  15. ????if(?denom?<?DBL_MIN?)??
  16. ????????return?0;??
  17. ??
  18. ????num?=?log(num);??
  19. ????denom?=?log(denom);??
  20. ??
  21. ????return?denom?>=?0?||?-num?>=?max_iters*(-denom)????
  22. ????????max_iters?:?cvRound(num/denom);??
  23. }??

參考https://blog.csdn.net/laobai1015/article/details/51683076

cv::findFundamentalMat

在處理立體圖像對的時候經常會用到對極幾何的知識,計算基礎矩陣也是很常見的事。OpenCV實現了基本矩陣的算法。對于老版本的C代碼,計算基本矩陣的RANSAC方法中有一個迭代次數不收斂的bug,可能導致每次計算的采樣次數都達到最大限制的次數,其根源在于計算采樣可信度的公式有誤,新版本的代碼還沒有仔細看過,不敢確定是否已經修正了這個bug。但是這個bug并不會對最后的結果造成多大影響,只是會影響計算的效率——原本幾次采樣即可結束迭代,在這個bug的影響下可能要采樣數百次。

????新版本的計算基本矩陣的函數的使用也有一些問題,下面來看看cv::findFundamentalMat函數:

//! the algorithm for finding fundamental matrix
enum
{
????FM_7POINT = CV_FM_7POINT, //!< 7-point algorithm
????FM_8POINT = CV_FM_8POINT, //!< 8-point algorithm
????FM_LMEDS = CV_FM_LMEDS,??//!< least-median algorithm
????FM_RANSAC = CV_FM_RANSAC??//!< RANSAC algorithm
};

//! finds fundamental matrix from a set of corresponding 2D points
CV_EXPORTS Mat findFundamentalMat( const Mat& points1, const Mat& points2,
?????????????????????????????????????CV_OUT vector<uchar>& mask, int method=FM_RANSAC,
?????????????????????????????????????double param1=3., double param2=0.99 );

//! finds fundamental matrix from a set of corresponding 2D points
CV_EXPORTS_W Mat findFundamentalMat( const Mat& points1, const Mat& points2,
?????????????????????????????????????int method=FM_RANSAC,
?????????????????????????????????????double param1=3., double param2=0.99 );

????上面是OpenCV計算基本矩陣的C++接口,其內部實現仍然是調用的C代碼函數,僅僅是在上層進行了一次封裝。網上有些文檔中說const Mat& points1和points2這兩個參數可以直接由vector<Point2f>類型作為傳入參數,其實這是錯誤的。直接用vector<Point2f>傳遞,在編譯時可能不會報錯,但是運行時會直接崩潰。因為cv::Mat的構造函數并不會把Point2f轉化為兩個浮點數存于Mat的兩個元素中,而是仍然以Point2f存于Mat的一個元素中,于是findFundamentalMat一讀取這個Mat就會出錯。

????因此我們最好老老實實地去構建Mat points1和Mat points2。該矩陣的維度可以是2xN,也可以是Nx2的,其中N是特征點的數目。另一個要注意的地方就是該矩陣的類型不能是CV_64F,也就是說findFundamentalMat內部解析points1和points2時是按照float類型去解析的,設為CV_64F將導致讀取數據失敗,程序崩潰。最好設為CV_32F。下面是從匹配好的特征點計算F的代碼示例:

// vector<KeyPoint> m_LeftKey;
//?vector<KeyPoint> m_RightKey;

// vector<DMatch> m_Matches;

// 以上三個變量已經被計算出來,分別是提取的關鍵點及其匹配,下面直接計算F

// 分配空間

int ptCount = (int)m_Matches.size();
Mat p1(ptCount, 2, CV_32F);
Mat p2(ptCount, 2, CV_32F);

// 把Keypoint轉換為Mat

Point2f pt;
for (int i=0; i<ptCount; i++)
{
?????pt = m_LeftKey[m_Matches[i].queryIdx].pt;
?????p1.at<float>(i, 0) = pt.x;
?????p1.at<float>(i, 1) = pt.y;
??
?????pt = m_RightKey[m_Matches[i].trainIdx].pt;
?????p2.at<float>(i, 0) = pt.x;
?????p2.at<float>(i, 1) = pt.y;
}

// 用RANSAC方法計算F

// Mat m_Fundamental;

// 上面這個變量是基本矩陣

// vector<uchar> m_RANSACStatus;

// 上面這個變量已經定義過,用于存儲RANSAC后每個點的狀態

m_Fundamental = findFundamentalMat(p1, p2, m_RANSACStatus, FM_RANSAC);

// 計算野點個數

int OutlinerCount = 0;
for (int i=0; i<ptCount; i++)
{
?????if (m_RANSACStatus[i] == 0) // 狀態為0表示野點
?????{
??????????OutlinerCount++;
?????}
}

// 計算內點

// vector<Point2f> m_LeftInlier;
//?vector<Point2f> m_RightInlier;
//?vector<DMatch> m_InlierMatches;

// 上面三個變量用于保存內點和匹配關系

int InlinerCount = ptCount - OutlinerCount;
m_InlierMatches.resize(InlinerCount);
m_LeftInlier.resize(InlinerCount);
m_RightInlier.resize(InlinerCount);
InlinerCount = 0;
for (int i=0; i<ptCount; i++)
{
?????if (m_RANSACStatus[i] != 0)
?????{
??????????m_LeftInlier[InlinerCount].x = p1.at<float>(i, 0);
??????????m_LeftInlier[InlinerCount].y = p1.at<float>(i, 1);
??????????m_RightInlier[InlinerCount].x = p2.at<float>(i, 0);
??????????m_RightInlier[InlinerCount].y = p2.at<float>(i, 1);
??????????m_InlierMatches[InlinerCount].queryIdx = InlinerCount;
??????????m_InlierMatches[InlinerCount].trainIdx = InlinerCount;
??????????InlinerCount++;
?????}
}

// 把內點轉換為drawMatches可以使用的格式

vector<KeyPoint> key1(InlinerCount);
vector<KeyPoint> key2(InlinerCount);
KeyPoint::convert(m_LeftInlier, key1);
KeyPoint::convert(m_RightInlier, key2);

// 顯示計算F過后的內點匹配

// Mat m_matLeftImage;
// Mat m_matRightImage;

// 以上兩個變量保存的是左右兩幅圖像

Mat OutImage;
drawMatches(m_matLeftImage, key1, m_matRightImage, key2, m_InlierMatches, OutImage);
cvNamedWindow( "Match features", 1);
cvShowImage("Match features", &(IplImage(OutImage)));
cvWaitKey( 0 );
cvDestroyWindow( "Match features" );

4. 針孔相機模型和變形

這一節里的函數都使用針孔攝像機模型,這就是說,一幅視圖是通過透視變換將三維空間中的點投影到圖像平面。投影公式如下:

或者

這里(X, Y, Z)是一個點的世界坐標,(u, v)是點投影在圖像平面的坐標,以像素為單位。A被稱作攝像機矩陣,或者內參數矩陣。(cx, cy)是基準點(通常在圖像的中心),fx, fy是以像素為單位的焦距。所以如果因為某些因素對來自于攝像機的一幅圖像升采樣或者降采樣,所有這些參數(fx, fy, cx和cy)都將被縮放(乘或者除)同樣的尺度。內參數矩陣不依賴場景的視圖,一旦計算出,可以被重復使用(只要焦距固定)。旋轉-平移矩陣[R|t]被稱作外參數矩陣,它用來描述相機相對于一個固定場景的運動,或者相反,物體圍繞相機的的剛性運動。也就是[R|t]將點(X, Y, Z)的坐標變換到某個坐標系,這個坐標系相對于攝像機來說是固定不變的。上面的變換等價與下面的形式(z≠0):

x' =?x?/?z

y' =?y?/?z

真正的鏡頭通常有一些形變,主要的變形為徑向形變,也會有輕微的切向形變。所以上面的模型可以擴展為:

x' =?x?/?z

y' =?y?/?z

這里?r2?=?x'2?+?y'2

k1和k2是徑向形變系數,p1和p1是切向形變系數。OpenCV中沒有考慮高階系數。形變系數跟拍攝的場景無關,因此它們是內參數,而且與拍攝圖像的分辨率無關。

后面的函數使用上面提到的模型來做如下事情:

  • 給定內參數和外參數,投影三維點到圖像平面。
  • 給定內參數、幾個三維點坐標和其對應的圖像坐標,來計算外參數。
  • 根據已知的定標模式,從幾個角度(每個角度都有幾個對應好的3D-2D點對)的照片來計算相機的外參數和內參數。


5.照相機定標

5.1 ProjectPoints2

投影三維點到圖像平面

void cvProjectPoints2( const CvMat* object_points, const CvMat* rotation_vector,const CvMat* translation_vector, const CvMat* intrinsic_matrix,const CvMat* distortion_coeffs, CvMat* image_points,CvMat* dpdrot=NULL, CvMat* dpdt=NULL, CvMat* dpdf=NULL,CvMat* dpdc=NULL, CvMat* dpddist=NULL );

object_points

物體點的坐標,為3xN或者Nx3的矩陣,這兒N是視圖中的所有所有點的數目。

rotation_vector

旋轉向量,1x3或者3x1。

translation_vector

平移向量,1x3或者3x1。

intrinsic_matrix

攝像機內參數矩陣A:

distortion_coeffs

形變參數向量,4x1或者1x4,為[k1,k2,p1,p2]。如果是NULL,所有形變系數都設為0。

image_points

輸出數組,存儲圖像點坐標。大小為2xN或者Nx2,這兒N是視圖中的所有點的數目。

dpdrot

可選參數,關于旋轉向量部分的圖像上點的導數,Nx3矩陣。

dpdt

可選參數,關于平移向量部分的圖像上點的導數,Nx3矩陣。

dpdf

可選參數,關于fx和fy的圖像上點的導數,Nx2矩陣。

dpdc

可選參數,關于cx和cy的圖像上點的導數,Nx2矩陣。

dpddist

可選參數,關于形變系數的圖像上點的導數,Nx4矩陣。

函數cvProjectPoints2通過給定的內參數和外參數計算三維點投影到二維圖像平面上的坐標。另外,這個函數可以計算關于投影參數的圖像點偏導數的雅可比矩陣。雅可比矩陣可以用在cvCalibrateCamera2和cvFindExtrinsicCameraParams2函數的全局優化中。這個函數也可以用來計算內參數和外參數的反投影誤差。注意,將內參數和(或)外參數設置為特定值,這個函數可以用來計算外變換(或內變換)。

5.2 FindHomographyFindHomography

計算兩個平面之間的透視變換

void cvFindHomography( const CvMat* src_points,const CvMat* dst_points,CvMat* homography );
src_points
原始平面的點坐標,大小為2xN,Nx2,3xN或者 Nx3矩陣(后兩個表示齊次坐標),這兒N表示點的數目。

dst_points

目標平面的點坐標大小為2xN,Nx2,3xN或者 Nx3矩陣(后兩個表示齊次坐標)。

homography

輸出的3x3的homography矩陣。

函數cvFindHomography計算源平面和目標平面之間的透視變換.

使得反投影錯誤最小:

這個函數可以用來計算初始的內參數和外參數矩陣。由于Homography矩陣的尺度可變,所以它被規一化使得h33= 1

5.3 CalibrateCamera2

利用定標來計算攝像機的內參數和外參數

void cvCalibrateCamera2( const CvMat* object_points, const CvMat* image_points,const CvMat* point_counts, CvSize image_size,CvMat* intrinsic_matrix, CvMat* distortion_coeffs,CvMat* rotation_vectors=NULL,CvMat* translation_vectors=NULL,int flags=0 );

object_points

定標點的世界坐標,為3xN或者Nx3的矩陣,這里N是所有視圖中點的總數。

image_points

定標點的圖像坐標,為2xN或者Nx2的矩陣,這里N是所有視圖中點的總數。

point_counts

向量,指定不同視圖里點的數目,1xM或者Mx1向量,M是視圖數目。

image_size

圖像大小,只用在初始化內參數時。

intrinsic_matrix

輸出內參矩陣(A)?,如果指定CV_CALIB_USE_INTRINSIC_GUESS和(或)CV_CALIB_FIX_ASPECT_RATION,fx、 fy、 cx和cy部分或者全部必須被初始化。

distortion_coeffs

輸出大小為4x1或者1x4的向量,里面為形變參數[k1, k2, p1, p2]。

rotation_vectors

輸出大小為3xM或者Mx3的矩陣,里面為旋轉向量(旋轉矩陣的緊湊表示方式,具體參考函數cvRodrigues2)

translation_vectors

輸出大小為3xM或Mx3的矩陣,里面為平移向量。

flags

不同的標志,可以是0,或者下面值的組合:

  • CV_CALIB_USE_INTRINSIC_GUESS - 內參數矩陣包含fx,fy,cx和cy的初始值。否則,(cx, cy)被初始化到圖像中心(這兒用到圖像大小),焦距用最小平方差方式計算得到。注意,如果內部參數已知,沒有必要使用這個函數,使用cvFindExtrinsicCameraParams2則可。
  • CV_CALIB_FIX_PRINCIPAL_POINT - 主點在全局優化過程中不變,一直在中心位置或者在其他指定的位置(當CV_CALIB_USE_INTRINSIC_GUESS設置的時候)。
  • CV_CALIB_FIX_ASPECT_RATIO - 優化過程中認為fx和fy中只有一個獨立變量,保持比例fx/fy不變,fx/fy的值跟內參數矩陣初始化時的值一樣。在這種情況下, (fx, fy)的實際初始值或者從輸入內存矩陣中讀取(當CV_CALIB_USE_INTRINSIC_GUESS被指定時),或者采用估計值(后者情況中fx和fy可能被設置為任意值,只有比值被使用)。
  • CV_CALIB_ZERO_TANGENT_DIST – 切向形變參數(p1, p2)被設置為0,其值在優化過程中保持為0。

函數cvCalibrateCamera2從每個視圖中估計相機的內參數和外參數。3維物體上的點和它們對應的在每個視圖的2維投影必須被指定。這些可以通過使用一個已知幾何形狀且具有容易檢測的特征點的物體來實現。這樣的一個物體被稱作定標設備或者定標模式,OpenCV有內建的把棋盤當作定標設備方法(參考cvFindChessboardCorners)。目前,傳入初始化的內參數(當CV_CALIB_USE_INTRINSIC_GUESS不被設置時)只支持平面定標設備(物體點的Z坐標必須為全0或者全1)。不過3維定標設備依然可以用在提供初始內參數矩陣情況。在內參數和外參數矩陣的初始值都計算出之后,它們會被優化用來減小反投影誤差(圖像上的實際坐標跟cvProjectPoints2計算出的圖像坐標的差的平方和)。

5.4 FindExtrinsicCameraParams2

計算指定視圖的攝像機外參數

void cvFindExtrinsicCameraParams2( const CvMat* object_points,const CvMat* image_points,const CvMat* intrinsic_matrix,const CvMat* distortion_coeffs,CvMat* rotation_vector,CvMat* translation_vector );

object_points

定標點的坐標,為3xN或者Nx3的矩陣,這里N是視圖中的個數。

image_points

定標點在圖像內的坐標,為2xN或者Nx2的矩陣,這里N是視圖中的個數。

intrinsic_matrix

內參矩陣(A)?。

distortion_coeffs

大小為4x1或者1x4的向量,里面為形變參數[k1,k2,p1,p2]。如果是NULL,所有的形變系數都為0。

rotation_vector

輸出大小為3x1或者1x3的矩陣,里面為旋轉向量(旋轉矩陣的緊湊表示方式,具體參考函數cvRodrigues2)。

translation_vector

大小為3x1或1x3的矩陣,里面為平移向量。

函數cvFindExtrinsicCameraParams2使用已知的內參數和某個視圖的外參數來估計相機的外參數。3維物體上的點坐標和相應的2維投影必須被指定。這個函數也可以用來最小化反投影誤差。

5.5 Rodrigues2

進行旋轉矩陣和旋轉向量間的轉換

int  cvRodrigues2( const CvMat* src, CvMat* dst, CvMat* jacobian=0 );

src

輸入的旋轉向量(3x1或者1x3)或者旋轉矩陣(3x3)。

dst

輸出的旋轉矩陣(3x3)或者旋轉向量(3x1或者1x3)

jacobian

可選的輸出雅可比矩陣(3x9或者9x3),關于輸入部分的輸出數組的偏導數。

函數轉換旋轉向量到旋轉矩陣,或者相反。旋轉向量是旋轉矩陣的緊湊表示形式。旋轉向量的方向是旋轉軸,向量的長度是圍繞旋轉軸的旋轉角。旋轉矩陣R,與其對應的旋轉向量r,通過下面公式轉換:

反變換也可以很容易的通過如下公式實現:

旋轉向量是只有3個自由度的旋轉矩陣一個方便的表示,這種表示方式被用在函數cvFindExtrinsicCameraParams2和cvCalibrateCamera2內部的全局最優化中。

5.6 Undistort2

校正圖像因相機鏡頭引起的變形

void cvUndistort2( const CvArr* src, CvArr* dst,const CvMat* intrinsic_matrix,const CvMat* distortion_coeffs );

src

原始圖像(已經變形的圖像)。只能變換32fC1的圖像。

dst

結果圖像(已經校正的圖像)。

intrinsic_matrix

相機內參數矩陣,格式為?。

distortion_coeffs

四個變形系數組成的向量,大小為4x1或者1x4,格式為[k1,k2,p1,p2]。

函數cvUndistort2對圖像進行變換來抵消徑向和切向鏡頭變形。相機參數和變形參數可以通過函數cvCalibrateCamera2取得。使用本節開始時提到的公式,對每個輸出圖像像素計算其在輸入圖像中的位置,然后輸出圖像的像素值通過雙線性插值來計算。如果圖像得分辨率跟定標時用得圖像分辨率不一樣,fx、fy、cx和cy需要相應調整,因為形變并沒有變化。

5.7 InitUndistortMap

計算形變和非形變圖像的對應(map)

void cvInitUndistortMap( const CvMat* intrinsic_matrix,const CvMat* distortion_coeffs,CvArr* mapx, CvArr* mapy );

intrinsic_matrix

攝像機內參數矩陣(A) [fx 0 cx; 0 fy cy; 0 0 1].

distortion_coeffs

形變系數向量[k1, k2, p1, p2],大小為4x1或者1x4。

mapx

x坐標的對應矩陣。

mapy

y坐標的對應矩陣。

函數cvInitUndistortMap預先計算非形變對應-正確圖像的每個像素在形變圖像里的坐標。這個對應可以傳遞給cvRemap函數(跟輸入和輸出圖像一起)。

5. 8 FindChessboardCorners

尋找棋盤圖的內角點位置

int cvFindChessboardCorners( const void* image, CvSize pattern_size,CvPoint2D32f* corners, int* corner_count=NULL,int flags=CV_CALIB_CB_ADAPTIVE_THRESH );

image

輸入的棋盤圖,必須是8位的灰度或者彩色圖像。

pattern_size

棋盤圖中每行和每列角點的個數。

corners

檢測到的角點

corner_count

輸出,角點的個數。如果不是NULL,函數將檢測到的角點的個數存儲于此變量。

flags

各種操作標志,可以是0或者下面值的組合:

  • CV_CALIB_CB_ADAPTIVE_THRESH - 使用自適應閾值(通過平均圖像亮度計算得到)將圖像轉換為黑白圖,而不是一個固定的閾值。
  • CV_CALIB_CB_NORMALIZE_IMAGE - 在利用固定閾值或者自適應的閾值進行二值化之前,先使用cvNormalizeHist來均衡化圖像亮度。
  • CV_CALIB_CB_FILTER_QUADS - 使用其他的準則(如輪廓面積,周長,方形形狀)來去除在輪廓檢測階段檢測到的錯誤方塊。

函數cvFindChessboardCorners試圖確定輸入圖像是否是棋盤模式,并確定角點的位置。如果所有角點都被檢測到且它們都被以一定順序排布(一行一行地,每行從左到右),函數返回非零值,否則在函數不能發現所有角點或者記錄它們地情況下,函數返回0。例如一個正常地棋盤圖右8x8個方塊和7x7個內角點,內角點是黑色方塊相互聯通地位置。這個函數檢測到地坐標只是一個大約地值,如果要精確地確定它們的位置,可以使用函數cvFindCornerSubPix。

DrawChessBoardCorners

繪制檢測到的棋盤角點

void cvDrawChessboardCorners( CvArr* image, CvSize pattern_size,CvPoint2D32f* corners, int count,int pattern_was_found );

image

結果圖像,必須是8位彩色圖像。

pattern_size

每行和每列地內角點數目。

corners

檢測到地角點數組。

count

角點數目。

pattern_was_found

指示完整地棋盤被發現(≠0)還是沒有發現(=0)。可以傳輸cvFindChessboardCorners函數的返回值。

當棋盤沒有完全檢測出時,函數cvDrawChessboardCorners以紅色圓圈繪制檢測到的棋盤角點;如果整個棋盤都檢測到,則用直線連接所有的角點。


6. 姿態估計

6.1 CreatePOSITObject

初始化包含對象信息的結構

CvPOSITObject* cvCreatePOSITObject( CvPoint3D32f* points, int point_count );

points

指向三維對象模型的指針

point_count

對象的點數

函數 cvCreatePOSITObject 為對象結構分配內存并計算對象的逆矩陣。

預處理的對象數據存儲在結構CvPOSITObject中,只能在OpenCV內部被調用,即用戶不能直接讀寫數據結構。用戶只可以創建這個結構并將指針傳遞給函數。

對象是在某坐標系內的一系列點的集合,函數 cvPOSIT計算從照相機坐標系中心到目標點points[0] 之間的向量。

一旦完成對給定對象的所有操作,必須使用函數cvReleasePOSITObject釋放內存。

6.2 POSIT

執行POSIT算法

void cvPOSIT( CvPOSITObject* posit_object, CvPoint2D32f* image_points, double focal_length,CvTermCriteria criteria, CvMatr32f rotation_matrix, CvVect32f translation_vector );

posit_object

指向對象結構的指針

image_points

指針,指向目標像素點在二維平面圖上的投影。

focal_length

使用的攝像機的焦距

criteria

POSIT迭代算法程序終止的條件

rotation_matrix

旋轉矩陣

translation_vector

平移矩陣.

函數 cvPOSIT 執行POSIT算法。圖像坐標在攝像機坐標系統中給出。焦距可以通過攝像機標定得到。算法每一次迭代都會重新計算在估計位置的透視投影。

兩次投影之間的范式差值是對應點中的最大距離。如果差值過小,參數criteria.epsilon就會終止程序。

6.3 ReleasePOSITObject

釋放3D對象結構

void cvReleasePOSITObject( CvPOSITObject** posit_object );

posit_object

指向 CvPOSIT 結構指針的指針。

函數 cvReleasePOSITObject 釋放函數 cvCreatePOSITObject分配的內存。

6.4 CalcImageHomography

計算長方形或橢圓形平面對象(例如胳膊)的Homography矩陣

void cvCalcImageHomography( float* line, CvPoint3D32f* center,float* intrinsic, float* homography );

line

對象的主要軸方向,為向量(dx,dy,dz).

center

對象坐標中心 ((cx,cy,cz)).

intrinsic

攝像機內參數 (3x3 matrix).

homography

輸出的Homography矩陣(3x3).

函數 cvCalcImageHomography 為從圖像平面到圖像平面的初始圖像變化(defined by 3D oblong object line)計算Homography矩陣。


對極幾何(雙視幾何)

6.5 FindFundamentalMat

由兩幅圖像中對應點計算出基本矩陣

int cvFindFundamentalMat( const CvMat* points1,const CvMat* points2,CvMat* fundamental_matrix,int    method=CV_FM_RANSAC,double param1=1.,double param2=0.99,CvMat* status=NULL);

points1

第一幅圖像點的數組,大小為2xN/Nx2 或 3xN/Nx3 (N 點的個數),多通道的1xN或Nx1也可以。點坐標應該是浮點數(雙精度或單精度)。:

points2

第二副圖像的點的數組,格式、大小與第一幅圖像相同。

fundamental_matrix

輸出的基本矩陣。大小是 3x3 或者 9x3 ,(7-點法最多可返回三個矩陣).

method

計算基本矩陣的方法

  • CV_FM_7POINT – 7-點算法,點數目= 7
  • CV_FM_8POINT – 8-點算法,點數目 >= 8
  • CV_FM_RANSAC – RANSAC 算法,點數目 >= 8
  • CV_FM_LMEDS - LMedS 算法,點數目 >= 8

param1

這個參數只用于方法RANSAC 或 LMedS 。它是點到對極線的最大距離,超過這個值的點將被舍棄,不用于后面的計算。通常這個值的設定是0.5 or 1.0 。

param2

這個參數只用于方法RANSAC 或 LMedS 。 它表示矩陣正確的可信度。例如可以被設為0.99 。

status

具有N個元素的輸出數組,在計算過程中沒有被舍棄的點,元素被被置為1;否則置為0。這個數組只可以在方法RANSAC and LMedS 情況下使用;在其它方法的情況下,status一律被置為1。這個參數是可選參數。

對極幾何可以用下面的等式描述:

其中 F 是基本矩陣,p1?和?p2?分別是兩幅圖上的對應點。

函數 FindFundamentalMat 利用上面列出的四種方法之一計算基本矩陣,并返回基本矩陣的值:沒有找到矩陣,返回0,找到一個矩陣返回1,多個矩陣返回3。 計算出的基本矩陣可以傳遞給函數cvComputeCorrespondEpilines來計算指定點的對極線。

例子1:使用 RANSAC 算法估算基本矩陣。
int    numPoints = 100;
CvMat* points1;
CvMat* points2;
CvMat* status;
CvMat* fundMatr;
points1 = cvCreateMat(2,numPoints,CV_32F);
points2 = cvCreateMat(2,numPoints,CV_32F);
status  = cvCreateMat(1,numPoints,CV_32F);/* 在這里裝入對應點的數據... */fundMatr = cvCreateMat(3,3,CV_32F);
int num = cvFindFundamentalMat(points1,points2,fundMatr,CV_FM_RANSAC,1.0,0.99,status);
if( num == 1 )printf("Fundamental matrix was found\n");
elseprintf("Fundamental matrix was not found\n");例子2:7點算法(3個矩陣)的情況。
CvMat* points1;
CvMat* points2;
CvMat* fundMatr;
points1 = cvCreateMat(2,7,CV_32F);
points2 = cvCreateMat(2,7,CV_32F);/* 在這里裝入對應點的數據... */fundMatr = cvCreateMat(9,3,CV_32F);
int num = cvFindFundamentalMat(points1,points2,fundMatr,CV_FM_7POINT,0,0,0);
printf("Found %d matrixes\n",num);?

6.6 ComputeCorrespondEpilines

為一幅圖像中的點計算其在另一幅圖像中對應的對極線。

void cvComputeCorrespondEpilines( const CvMat* points,int which_image,const CvMat* fundamental_matrix,CvMat* correspondent_lines);

points

輸入點,是2xN 或者 3xN 數組 (N為點的個數)

which_image

包含點的圖像指數(1 or 2)

fundamental_matrix

基本矩陣

correspondent_lines

計算對極點, 3xN數組

函數 ComputeCorrespondEpilines 根據外級線幾何的基本方程計算每個輸入點的對應外級線。如果點位于第一幅圖像(which_image=1),對應的對極線可以如下計算?:

其中F是基本矩陣,p1?是第一幅圖像中的點,?l2?- 是與第二幅對應的對極線。如果點位于第二副圖像中 which_image=2),計算如下:

其中p2?是第二幅圖像中的點,l1?是對應于第一幅圖像的對極線,每條對極線都可以用三個系數表示 a, b, c:

歸一化后的對極線系數存儲在correspondent_lines 中。?

Freak特征描述+BruteForceMatcher匹配+RANSAC剔除誤匹配

時間一晃飛快,前幾日的廣州之行讓人難忘,置身炎熱的戶外仿佛蒸桑拿一樣。這一段時間一直在研究一種從一幅圖片中找到給定目標的方法,而基于局部特征提取并且進行特征的匹配可以實現。?
目前局部特征描述子有以下幾種,

  1. 2004年發展成熟的SIFT
  2. 后來改進的SURF,它們的描述符是高維度整型的數字。
  3. 2010年出現的BRIEF是一種二進制的描述符,這種描述符在提高計算速度方面給出了不錯的思路,但是不具備旋轉不變,尺度不變,對噪聲也比較敏感(雖然它采用了高斯平滑來抗噪聲)
  4. 2011年出現的ORB算法同樣是二進制,但是解決了旋轉不變和噪聲敏感的問題,但是不具備尺度不變性。
  5. 2011年同時出現了BRISK算法,解決旋轉不變,尺度不變和抗噪聲問題,網上有視頻,實時性也不錯,先有個直觀認識,爽死。鏈接[(http://v.youku.com/v_show/id_XMTI5MzI3Mzk0OA==.html)]
  6. 2012年提出FREAK算法,其實是在BRISK上的改進。具備BRISK的優點。這篇論文中作者表示FREAK算法可以outperform以前所有的描述子。(注意:這里是特征描述子,因為論文中沒有給出特征點檢測方法,只有特征點的描述子)?
    看完了綜述,我決定用FREAK來實現。足足耗了我15天,今天我這一段所得寫下,勉勵自己,服務他人。?
    先貼上代碼
/************************************************************************
* Copyright(c) 2016  唯瘋
* All rights reserved.
*
* Brief: FAST特征點提取以及FREAK描述子的圖像匹配,基于OpenCV2.4.8
* Version: 1.0
* Author: 唯瘋
* Date: 2016/07/21
* Address: 廣州&北京
************************************************************************/
#include <opencv2/core/core.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/nonfree/features2d.hpp>
#include <opencv2/legacy/legacy.hpp>
#include <iostream>
#include <vector>using namespace std;
using namespace cv;int main()
{Mat img1_src = imread("im5.jpg",0);Mat img2_src = imread("im6.jpg",0);//FastFeatureDetector fast(40);SurfFeatureDetector fast(2000,4);FREAK extractor;vector<KeyPoint> keypoints1,keypoints2;Mat descriptor1,descriptor2;vector<DMatch> final_matches; vector<DMatch> matches;double t = (double)getTickCount();fast.detect(img1_src,keypoints1);fast.detect(img2_src,keypoints2);//drawKeypoints(img1_src,keypoints1,img1_src,Scalar(0,255,0));//drawKeypoints(img2_src,keypoints2,img2_src,Scalar(0,255,0));//問題在這里!!!醉了,這里的問題,浪費了我5天,歐耶,就是整整5天,由于我想在這里看一看檢測出來的特征點是啥樣的,就跟父母想第一眼就立刻看到剛出生的嬰兒是一個心情的。結果,后來特征匹配就幾乎沒有什么正確匹配,害我還以為是FREAK這個描述子有問題呢。于是就各種找問題,看論文,翻墻逛論壇。最后一個不經意間發現了。問題就是:這倆個語句是把特征點又原封不動的畫到了img1_src中,也就是原圖像里面,而后來我進行特征點描述的時候,就直接在畫滿了特征點的圖片下進行描述,而不是原圖!不是原圖啊!是充滿了特征點的圖片!所以后期再進行匹配的時候,顯然,各種亂匹配,就跟隔壁家小狗似的,見了貓都想干壞事。于是乎,我直接注釋掉了這兩句!extractor.compute(img1_src,keypoints1,descriptor1);extractor.compute(img2_src,keypoints2,descriptor2);BFMatcher matcher(NORM_HAMMING,true);//暴力匹配,并且進行crosscheck,就是說第二個參數選擇true。matcher.match(descriptor1,descriptor2,matches);final_matches=matches;cout<<"number of total_matches : "<<final_matches.size()<<endl;//接下來是RANSAC剔除誤匹配vector<Point2f> querymatches, trainmatches;vector<KeyPoint> p1,p2;for(int i=0;i<final_matches.size();i++){p1.push_back(keypoints1[final_matches[i].queryIdx]);p2.push_back(keypoints2[final_matches[i].trainIdx]);}for(int i=0;i<p1.size();i++){querymatches.push_back(p1[i].pt);trainmatches.push_back(p2[i].pt);}cout<<querymatches[1]<<" and "<<trainmatches[1]<<endl;vector<uchar> status;Mat h = findHomography(querymatches,trainmatches,status,CV_FM_RANSAC,10);int index=0;vector<DMatch> super_final_matches;for (int i=0;i<final_matches.size();i++){cout<<status[i];if (status[i] != 0){super_final_matches.push_back(final_matches[i]);index++;}}cout<<"number of inlier_matches : "<<index<<endl;Mat imgMatch;drawMatches(img1_src,keypoints1,img2_src,keypoints2,super_final_matches,imgMatch);imshow("imgMatch",imgMatch);t = ((double)getTickCount()-t)/getTickFrequency();cout<<" total time [s] : "<<t<<endl;waitKey(0);return 0;
}


一:?
首先說說特征點檢測,為什么我用surf,而不用速度很快的fast或者Brisk,我自己做了測試,發現用fast和brisk的話,再用freak描述,最終匹配效果并不好,比sift要差…我其實不太明白為什么,因為有一些后期的論文對比效果說freak綜合效果最好,然而我卻得不到這樣的結果。要繼續鉆研了,大家有想法歡迎交流,哦不,歡迎指點!?
二:?
RANSAC的這個算法,請用opencv庫中的cvFindHomography,不要用cvFindFundamentalMat,因為這兩個是不一樣的,字面上簡單看一個是找到單應性矩陣,一個是找到基礎矩陣,這兩個到底有神馬區別????
《計算機視覺中的多視圖幾何》中這樣描述:

  1. 2D單應:一幅2D圖像中點集到另一幅圖像中點集的射影變換。
  2. 基本矩陣:它使一個隊所有的點都是的x`Fx=0成立的奇異矩陣F。這是一個3*3的奇異矩陣,而且秩為2,不可逆。它是2維圖像上的點通過對極線束約束的映射,是2維到1維的映射。

具體的大家可以看書或者百度,或者等以后我有空了,再具體描述。其實我也沒有太懂哈哈哈!還要再看看!慎言慎言!?
之前,我曾經自己編寫過一個RANSAC的算法啊,但是效果不是特別理想,由于RANSAC算法本身也比較耗時,各路大神們也都提出了很多改進方法,不知道opencv跟進這些改進算法沒有?推薦綜述型文章《A Universal Framework for Random?
Sample Consensus》,里面提到的prosac,lo-ransac速度提升很多!大家自行汲取,我想以后再寫一些關于RANSAC的博文。?
三:?
代碼中用到BFMatcher這個類,對象的參數有兩個BFMatcher::BFMatcher(int normType=NORM_L2, bool crossCheck=false )。第一個指的是距離,如果是sift或者surf描述的話,就選擇NORM_L2和NORM_L2;ORB,BRISK,FREAK這種二進制的描述子就用漢明距離,也就是NORM_HAMMING;NORM_HAMMING2是用作ORB的。第二個參數是是否crossCheck,最好選擇true,這個也經過我實驗驗證,選擇true相當于knn匹配中將k置1,也就是只返回最好的那一組匹配,而不是多個近鄰。(注意:如果要用knnmatch的話,這個crossCheck的參數就選擇false)。這種只返回最好的一組匹配的方式可以作為ratio test的一種替代選擇。實驗證明,如果選擇false,那么將會返回一對多匹配,和多對一的匹配,后期用ransac的效果可能非常不理想。crossCheck就是交叉匹配,剔除不好的匹配。有論文支撐,大家感興趣可以去搜。

參考博文: https://blog.csdn.net/u011867581/article/details/43818183

https://blog.csdn.net/luoshixian099/article/details/50217655

https://blog.csdn.net/lcb_coconut/article/details/52145293?locationNum=4

隨機抽樣一致性算法(RANSAC) - Wuya - 博客園

總結

以上是生活随笔為你收集整理的SLAM之特征匹配(一)————RANSAC-------OpenCV中findFundamentalMat函数使用的模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

欧美人妻一区二区三区 | 成人免费视频视频在线观看 免费 | 亚洲日韩av一区二区三区四区 | 国产高潮视频在线观看 | 久久久中文字幕日本无吗 | 亲嘴扒胸摸屁股激烈网站 | 永久免费观看美女裸体的网站 | 成人精品视频一区二区 | 国产偷国产偷精品高清尤物 | 天海翼激烈高潮到腰振不止 | 精品人妻中文字幕有码在线 | 国产亚av手机在线观看 | 国产绳艺sm调教室论坛 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 欧美三级不卡在线观看 | 四虎永久在线精品免费网址 | 中文无码成人免费视频在线观看 | 久久99精品国产.久久久久 | 国产两女互慰高潮视频在线观看 | 精品国偷自产在线 | 又湿又紧又大又爽a视频国产 | 一本久久a久久精品亚洲 | 国产一区二区三区影院 | 亚洲日韩一区二区 | 狠狠色欧美亚洲狠狠色www | 成人试看120秒体验区 | 67194成是人免费无码 | 亚洲国产av美女网站 | 国内老熟妇对白xxxxhd | 性欧美大战久久久久久久 | 中文字幕无码av波多野吉衣 | 亚洲精品成人av在线 | 日韩精品无码一区二区中文字幕 | 曰韩少妇内射免费播放 | 樱花草在线播放免费中文 | 免费观看激色视频网站 | 男女猛烈xx00免费视频试看 | 国产在线精品一区二区三区直播 | 欧美丰满老熟妇xxxxx性 | 四十如虎的丰满熟妇啪啪 | 久久久精品人妻久久影视 | 国产精品二区一区二区aⅴ污介绍 | 欧美性猛交内射兽交老熟妇 | 欧美三级a做爰在线观看 | 图片小说视频一区二区 | 妺妺窝人体色www在线小说 | 999久久久国产精品消防器材 | 亚洲中文字幕va福利 | 精品国产乱码久久久久乱码 | 国产女主播喷水视频在线观看 | 久在线观看福利视频 | 亚洲中文字幕无码中文字在线 | 狠狠躁日日躁夜夜躁2020 | 久久99精品国产.久久久久 | 亚洲中文字幕久久无码 | 欧洲欧美人成视频在线 | 久久97精品久久久久久久不卡 | 亚洲一区二区三区含羞草 | 欧美一区二区三区 | 中文字幕日韩精品一区二区三区 | 领导边摸边吃奶边做爽在线观看 | 又色又爽又黄的美女裸体网站 | 麻豆成人精品国产免费 | 午夜精品一区二区三区在线观看 | 国内揄拍国内精品少妇国语 | 男人的天堂2018无码 | 久久99精品久久久久婷婷 | 狠狠色丁香久久婷婷综合五月 | 国产成人一区二区三区别 | 午夜无码区在线观看 | 又大又硬又爽免费视频 | 娇妻被黑人粗大高潮白浆 | 久久人人爽人人爽人人片ⅴ | 国产97色在线 | 免 | 给我免费的视频在线观看 | 色婷婷av一区二区三区之红樱桃 | 中文久久乱码一区二区 | 久久久国产精品无码免费专区 | 亚洲中文字幕va福利 | 欧美老熟妇乱xxxxx | 亚洲国产一区二区三区在线观看 | 麻豆精产国品 | 美女毛片一区二区三区四区 | 国产精品毛片一区二区 | 亚洲一区二区三区在线观看网站 | 国产乱码精品一品二品 | 99麻豆久久久国产精品免费 | aa片在线观看视频在线播放 | 色五月五月丁香亚洲综合网 | 国产成人综合在线女婷五月99播放 | 亚洲精品国偷拍自产在线观看蜜桃 | 日本www一道久久久免费榴莲 | 午夜男女很黄的视频 | 在线欧美精品一区二区三区 | 欧洲熟妇精品视频 | 51国偷自产一区二区三区 | 未满成年国产在线观看 | 久久精品人妻少妇一区二区三区 | 欧美35页视频在线观看 | 亚洲日韩av一区二区三区中文 | 国产真实乱对白精彩久久 | 俄罗斯老熟妇色xxxx | 天海翼激烈高潮到腰振不止 | 亚洲高清偷拍一区二区三区 | a片免费视频在线观看 | 国产美女精品一区二区三区 | 国产真实乱对白精彩久久 | 国产av一区二区精品久久凹凸 | 福利一区二区三区视频在线观看 | 国产农村妇女高潮大叫 | 欧美xxxx黑人又粗又长 | 欧美老妇交乱视频在线观看 | 欧美自拍另类欧美综合图片区 | 精品无码国产一区二区三区av | 国产精品人人爽人人做我的可爱 | 中文字幕无码av激情不卡 | 欧美 亚洲 国产 另类 | 午夜无码人妻av大片色欲 | 天天综合网天天综合色 | 成年美女黄网站色大免费视频 | 一本久道久久综合婷婷五月 | 精品国产麻豆免费人成网站 | 国产成人一区二区三区别 | 久久99久久99精品中文字幕 | 成人一区二区免费视频 | 东京热无码av男人的天堂 | а天堂中文在线官网 | 亚洲乱码国产乱码精品精 | 天天拍夜夜添久久精品大 | 又紧又大又爽精品一区二区 | 国产熟妇另类久久久久 | 最近免费中文字幕中文高清百度 | 久久久国产精品无码免费专区 | 亚洲狠狠婷婷综合久久 | 成人亚洲精品久久久久软件 | 欧洲vodafone精品性 | 伊人久久婷婷五月综合97色 | 亲嘴扒胸摸屁股激烈网站 | 图片小说视频一区二区 | 樱花草在线播放免费中文 | 久久久精品456亚洲影院 | 欧美三级不卡在线观看 | 欧美日本免费一区二区三区 | 成年美女黄网站色大免费视频 | 久久www免费人成人片 | 18禁黄网站男男禁片免费观看 | 国产成人无码一二三区视频 | 麻花豆传媒剧国产免费mv在线 | 99精品久久毛片a片 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 国产两女互慰高潮视频在线观看 | 久久久av男人的天堂 | 亚洲色欲色欲欲www在线 | 风流少妇按摩来高潮 | 麻豆成人精品国产免费 | 久久综合激激的五月天 | 日日摸日日碰夜夜爽av | 在线观看国产一区二区三区 | 国产精品内射视频免费 | 日日天日日夜日日摸 | 欧美兽交xxxx×视频 | 亚洲va中文字幕无码久久不卡 | 少女韩国电视剧在线观看完整 | 色诱久久久久综合网ywww | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 2019nv天堂香蕉在线观看 | 97精品人妻一区二区三区香蕉 | 国产成人av免费观看 | 国产精品久久久久久久9999 | 2020久久香蕉国产线看观看 | 精品久久久久久人妻无码中文字幕 | 欧美变态另类xxxx | 久久这里只有精品视频9 | 亚洲色欲久久久综合网东京热 | 一区二区三区乱码在线 | 欧洲 | 波多野结衣aⅴ在线 | 午夜理论片yy44880影院 | 亚洲成av人综合在线观看 | 国产精品国产自线拍免费软件 | 在线观看免费人成视频 | av人摸人人人澡人人超碰下载 | 东京热一精品无码av | 国产成人精品优优av | 乱人伦人妻中文字幕无码久久网 | 国产精品-区区久久久狼 | 欧美国产亚洲日韩在线二区 | 人妻少妇精品无码专区动漫 | 亚洲成色在线综合网站 | 精品成在人线av无码免费看 | 无码纯肉视频在线观看 | 欧美国产亚洲日韩在线二区 | 永久黄网站色视频免费直播 | 日韩人妻无码一区二区三区久久99 | 久热国产vs视频在线观看 | 丰满人妻精品国产99aⅴ | 无码乱肉视频免费大全合集 | 亚洲无人区一区二区三区 | 亚洲自偷精品视频自拍 | 国产人妻精品午夜福利免费 | 国产精品福利视频导航 | 国产精品怡红院永久免费 | 午夜精品久久久久久久 | 色婷婷综合中文久久一本 | 久久人人爽人人爽人人片ⅴ | 亚洲国产精品一区二区美利坚 | 久久精品国产日本波多野结衣 | 好屌草这里只有精品 | 亚洲精品欧美二区三区中文字幕 | 无码人妻少妇伦在线电影 | 国内揄拍国内精品少妇国语 | 成人动漫在线观看 | 免费人成在线观看网站 | 亚洲熟女一区二区三区 | 任你躁在线精品免费 | 熟女少妇人妻中文字幕 | 久久精品国产一区二区三区 | 国色天香社区在线视频 | 亚洲午夜无码久久 | 99久久久无码国产精品免费 | 国产小呦泬泬99精品 | 色婷婷香蕉在线一区二区 | 国产香蕉97碰碰久久人人 | 免费人成网站视频在线观看 | 亚洲中文字幕va福利 | 国产精品久久久久久亚洲毛片 | 亚洲国产精品无码久久久久高潮 | 老子影院午夜伦不卡 | 曰韩无码二三区中文字幕 | 男女下面进入的视频免费午夜 | 国产特级毛片aaaaaaa高清 | 亚洲中文字幕无码中文字在线 | 中文字幕无码av波多野吉衣 | 国产精品亚洲一区二区三区喷水 | 国产69精品久久久久app下载 | 久久久亚洲欧洲日产国码αv | 亚洲精品国产a久久久久久 | 成人综合网亚洲伊人 | 又粗又大又硬又长又爽 | 福利一区二区三区视频在线观看 | 大地资源中文第3页 | 国产超级va在线观看视频 | 大肉大捧一进一出好爽视频 | 日韩精品无码免费一区二区三区 | 麻花豆传媒剧国产免费mv在线 | 亚洲伊人久久精品影院 | 国产精华av午夜在线观看 | 精品久久久久久亚洲精品 | 300部国产真实乱 | 九月婷婷人人澡人人添人人爽 | 人人妻人人藻人人爽欧美一区 | 国产精品.xx视频.xxtv | 无码国产乱人伦偷精品视频 | 亚洲大尺度无码无码专区 | 精品久久久中文字幕人妻 | 欧美日韩色另类综合 | 日本一卡二卡不卡视频查询 | 午夜无码区在线观看 | 红桃av一区二区三区在线无码av | 亚洲一区二区三区无码久久 | 天海翼激烈高潮到腰振不止 | 欧美日本免费一区二区三区 | 欧美精品国产综合久久 | 男女下面进入的视频免费午夜 | 18精品久久久无码午夜福利 | 国产无套内射久久久国产 | 日日碰狠狠丁香久燥 | 成熟女人特级毛片www免费 | 亚洲区小说区激情区图片区 | 又紧又大又爽精品一区二区 | 人人爽人人爽人人片av亚洲 | 欧美人与物videos另类 | yw尤物av无码国产在线观看 | 免费无码av一区二区 | 婷婷丁香六月激情综合啪 | 美女毛片一区二区三区四区 | 久久精品99久久香蕉国产色戒 | 人人妻人人澡人人爽欧美精品 | 亚洲熟悉妇女xxx妇女av | 色老头在线一区二区三区 | 欧美人与禽猛交狂配 | 鲁大师影院在线观看 | 欧美日韩久久久精品a片 | 国产人成高清在线视频99最全资源 | 日韩欧美中文字幕公布 | 青青久在线视频免费观看 | 色妞www精品免费视频 | 波多野结衣一区二区三区av免费 | 狂野欧美性猛xxxx乱大交 | 国产猛烈高潮尖叫视频免费 | 久久久精品成人免费观看 | 天下第一社区视频www日本 | 精品水蜜桃久久久久久久 | 成人欧美一区二区三区黑人 | 精品无码国产自产拍在线观看蜜 | 国内揄拍国内精品人妻 | 又大又紧又粉嫩18p少妇 | 亚洲 激情 小说 另类 欧美 | 日日干夜夜干 | 国产成人av免费观看 | 精品一区二区三区波多野结衣 | 欧美性猛交xxxx富婆 | 国产欧美亚洲精品a | 黄网在线观看免费网站 | 欧美日韩人成综合在线播放 | 亚洲 日韩 欧美 成人 在线观看 | 欧美zoozzooz性欧美 | 在线精品亚洲一区二区 | 欧洲熟妇精品视频 | 午夜免费福利小电影 | 亚洲一区二区三区四区 | 国产后入清纯学生妹 | 青春草在线视频免费观看 | 久久久中文字幕日本无吗 | 亚洲日韩中文字幕在线播放 | 亚洲国产成人a精品不卡在线 | 岛国片人妻三上悠亚 | 日本饥渴人妻欲求不满 | 亚洲熟女一区二区三区 | 天天躁日日躁狠狠躁免费麻豆 | 天天拍夜夜添久久精品 | 成年美女黄网站色大免费全看 | 人人妻人人澡人人爽人人精品 | 999久久久国产精品消防器材 | 在教室伦流澡到高潮hnp视频 | 嫩b人妻精品一区二区三区 | 欧美丰满少妇xxxx性 | 又大又紧又粉嫩18p少妇 | 久久久久亚洲精品男人的天堂 | 亚洲国产精品无码一区二区三区 | 蜜桃臀无码内射一区二区三区 | 成年女人永久免费看片 | 国产精华av午夜在线观看 | 无码av岛国片在线播放 | 亚洲爆乳大丰满无码专区 | 黑森林福利视频导航 | 波多野结衣一区二区三区av免费 | 亚洲中文字幕va福利 | 国产免费无码一区二区视频 | 久久天天躁狠狠躁夜夜免费观看 | 国产精品无码一区二区桃花视频 | 国产精品.xx视频.xxtv | 骚片av蜜桃精品一区 | 波多野结衣av一区二区全免费观看 | 国产精品福利视频导航 | 青草青草久热国产精品 | a在线亚洲男人的天堂 | 色综合视频一区二区三区 | 成熟女人特级毛片www免费 | 国产小呦泬泬99精品 | 国产午夜精品一区二区三区嫩草 | 国产熟女一区二区三区四区五区 | 午夜福利一区二区三区在线观看 | 日日摸日日碰夜夜爽av | 荫蒂被男人添的好舒服爽免费视频 | 夫妻免费无码v看片 | 日本www一道久久久免费榴莲 | 综合人妻久久一区二区精品 | 亚洲男女内射在线播放 | 欧美性生交活xxxxxdddd | 国产精品办公室沙发 | 2020久久超碰国产精品最新 | 亚洲综合无码一区二区三区 | 国产精品igao视频网 | 国产激情综合五月久久 | 精品偷拍一区二区三区在线看 | 中文字幕无码乱人伦 | 在线观看免费人成视频 | 天天做天天爱天天爽综合网 | 亚洲综合无码一区二区三区 | 丝袜美腿亚洲一区二区 | 国产婷婷色一区二区三区在线 | 亚洲狠狠婷婷综合久久 | 无码纯肉视频在线观看 | 无码人妻av免费一区二区三区 | 日本在线高清不卡免费播放 | 久久久久成人精品免费播放动漫 | 色一情一乱一伦一区二区三欧美 | 国产精品高潮呻吟av久久 | 欧美日韩一区二区免费视频 | 亚洲日韩中文字幕在线播放 | 亚洲欧洲中文日韩av乱码 | 牲交欧美兽交欧美 | 夜精品a片一区二区三区无码白浆 | 帮老师解开蕾丝奶罩吸乳网站 | 精品人妻中文字幕有码在线 | 久久精品人人做人人综合试看 | 麻豆人妻少妇精品无码专区 | 大肉大捧一进一出好爽视频 | 色婷婷综合激情综在线播放 | 国产特级毛片aaaaaa高潮流水 | 人妻少妇精品无码专区二区 | 国产乱人无码伦av在线a | 国产精品人妻一区二区三区四 | 国产精品免费大片 | 美女黄网站人色视频免费国产 | 天堂а√在线中文在线 | 亚洲色偷偷男人的天堂 | 国产suv精品一区二区五 | 成人aaa片一区国产精品 | 人人妻人人澡人人爽人人精品浪潮 | 亚洲精品成人福利网站 | 丰满人妻一区二区三区免费视频 | 日韩在线不卡免费视频一区 | 国产精品亚洲lv粉色 | 欧美老妇交乱视频在线观看 | 久久综合香蕉国产蜜臀av | 国产人妻久久精品二区三区老狼 | 久久伊人色av天堂九九小黄鸭 | 精品国精品国产自在久国产87 | 色婷婷av一区二区三区之红樱桃 | 蜜桃臀无码内射一区二区三区 | 亚洲精品午夜无码电影网 | 99久久人妻精品免费一区 | 四虎4hu永久免费 | 老太婆性杂交欧美肥老太 | 扒开双腿吃奶呻吟做受视频 | 一本久久a久久精品vr综合 | 国产农村妇女高潮大叫 | 玩弄少妇高潮ⅹxxxyw | 亚洲国产欧美日韩精品一区二区三区 | 美女极度色诱视频国产 | 色综合久久久无码中文字幕 | 亚洲综合色区中文字幕 | 一本久道久久综合婷婷五月 | 国产又爽又黄又刺激的视频 | 图片小说视频一区二区 | 久久人人爽人人爽人人片av高清 | 国产免费无码一区二区视频 | 黑人粗大猛烈进出高潮视频 | 少妇邻居内射在线 | 大地资源网第二页免费观看 | 131美女爱做视频 | 国产日产欧产精品精品app | 狠狠躁日日躁夜夜躁2020 | 天天摸天天碰天天添 | 成人免费视频在线观看 | 人人妻人人澡人人爽人人精品浪潮 | 蜜桃视频插满18在线观看 | 牲欲强的熟妇农村老妇女 | 人人爽人人爽人人片av亚洲 | 天天av天天av天天透 | 日韩亚洲欧美精品综合 | 精品久久久久久人妻无码中文字幕 | 骚片av蜜桃精品一区 | 国内揄拍国内精品人妻 | 99久久人妻精品免费一区 | yw尤物av无码国产在线观看 | 又色又爽又黄的美女裸体网站 | 日本大香伊一区二区三区 | 色综合久久久久综合一本到桃花网 | 国产97色在线 | 免 | 伦伦影院午夜理论片 | 黑人大群体交免费视频 | 在线精品亚洲一区二区 | 亚洲无人区午夜福利码高清完整版 | 精品一区二区三区波多野结衣 | 无码纯肉视频在线观看 | 美女扒开屁股让男人桶 | 丰满少妇高潮惨叫视频 | 亚洲成av人片在线观看无码不卡 | 久久久久久亚洲精品a片成人 | 色老头在线一区二区三区 | 在线a亚洲视频播放在线观看 | 国产精品久久久久久久9999 | 欧美老熟妇乱xxxxx | 中国女人内谢69xxxxxa片 | 精品久久久无码中文字幕 | 精品熟女少妇av免费观看 | 成 人 网 站国产免费观看 | 桃花色综合影院 | 亚洲精品鲁一鲁一区二区三区 | 夫妻免费无码v看片 | 久久国产精品偷任你爽任你 | 帮老师解开蕾丝奶罩吸乳网站 | 欧美 日韩 人妻 高清 中文 | 日韩av无码一区二区三区不卡 | 精品国精品国产自在久国产87 | 国产两女互慰高潮视频在线观看 | 中文字幕无码乱人伦 | 夜夜高潮次次欢爽av女 | 亚洲乱码国产乱码精品精 | 国产激情精品一区二区三区 | 大肉大捧一进一出视频出来呀 | 一本无码人妻在中文字幕免费 | 最近免费中文字幕中文高清百度 | 亚洲欧美日韩国产精品一区二区 | 久久99热只有频精品8 | 欧美日韩色另类综合 | 欧美日本免费一区二区三区 | 免费国产成人高清在线观看网站 | 亚洲熟妇色xxxxx欧美老妇y | 蜜桃av抽搐高潮一区二区 | 成熟妇人a片免费看网站 | 精品一区二区三区无码免费视频 | a国产一区二区免费入口 | 精品少妇爆乳无码av无码专区 | 久久亚洲精品成人无码 | 东京无码熟妇人妻av在线网址 | a在线观看免费网站大全 | 野外少妇愉情中文字幕 | 大胆欧美熟妇xx | 欧美老人巨大xxxx做受 | 色综合久久久久综合一本到桃花网 | 人妻少妇精品久久 | 九九在线中文字幕无码 | 欧美日韩精品 | 欧洲熟妇色 欧美 | 成人试看120秒体验区 | 久精品国产欧美亚洲色aⅴ大片 | 老司机亚洲精品影院无码 | 亚洲综合久久一区二区 | 国产精品亚洲一区二区三区喷水 | 一本久久伊人热热精品中文字幕 | 亚洲成av人片在线观看无码不卡 | 成人无码精品1区2区3区免费看 | 丰满少妇弄高潮了www | 在线播放无码字幕亚洲 | 欧美变态另类xxxx | 高中生自慰www网站 | 欧美国产日韩亚洲中文 | 内射白嫩少妇超碰 | 午夜精品久久久内射近拍高清 | 国产无av码在线观看 | 午夜精品久久久久久久久 | 福利一区二区三区视频在线观看 | 国产精品亚洲lv粉色 | 亚洲综合无码久久精品综合 | 精品 日韩 国产 欧美 视频 | 国产乱人无码伦av在线a | 欧美精品免费观看二区 | 色婷婷香蕉在线一区二区 | 国产综合久久久久鬼色 | 国产在线精品一区二区三区直播 | 久9re热视频这里只有精品 | 亲嘴扒胸摸屁股激烈网站 | 高潮毛片无遮挡高清免费视频 | 人妻插b视频一区二区三区 | 2020最新国产自产精品 | 日韩精品无码免费一区二区三区 | 国产精品美女久久久网av | 久久视频在线观看精品 | 成人av无码一区二区三区 | 国产精品久久国产三级国 | 午夜福利试看120秒体验区 | 动漫av网站免费观看 | 中文字幕无码视频专区 | 丝袜人妻一区二区三区 | 午夜精品久久久内射近拍高清 | 亚洲精品一区二区三区四区五区 | 成 人 免费观看网站 | 久久人人爽人人爽人人片av高清 | 99久久精品无码一区二区毛片 | 欧美一区二区三区视频在线观看 | 成年美女黄网站色大免费全看 | 色欲人妻aaaaaaa无码 | 国内丰满熟女出轨videos | 永久黄网站色视频免费直播 | 老子影院午夜伦不卡 | 99精品国产综合久久久久五月天 | 欧美黑人性暴力猛交喷水 | 精品久久综合1区2区3区激情 | 欧美阿v高清资源不卡在线播放 | 亚洲 a v无 码免 费 成 人 a v | 丰满人妻精品国产99aⅴ | 天堂久久天堂av色综合 | 成人女人看片免费视频放人 | 亚洲s色大片在线观看 | 7777奇米四色成人眼影 | 亚洲精品一区二区三区四区五区 | 野狼第一精品社区 | 精品国产麻豆免费人成网站 | 国产精品毛多多水多 | 漂亮人妻洗澡被公强 日日躁 | 亚洲综合另类小说色区 | 色综合久久久久综合一本到桃花网 | 成熟人妻av无码专区 | 内射白嫩少妇超碰 | 久久aⅴ免费观看 | 色婷婷香蕉在线一区二区 | av在线亚洲欧洲日产一区二区 | 国内精品九九久久久精品 | 中文字幕人妻无码一夲道 | 中文字幕无码热在线视频 | 国产精品办公室沙发 | 国内精品人妻无码久久久影院 | 久久97精品久久久久久久不卡 | 免费男性肉肉影院 | 欧美成人午夜精品久久久 | 中文久久乱码一区二区 | 日本大乳高潮视频在线观看 | 天下第一社区视频www日本 | 天堂一区人妻无码 | 真人与拘做受免费视频 | 日韩亚洲欧美精品综合 | 国产精华av午夜在线观看 | 性啪啪chinese东北女人 | 久久精品人人做人人综合 | 国色天香社区在线视频 | 亚洲性无码av中文字幕 | 欧美日韩在线亚洲综合国产人 | 一本久道久久综合婷婷五月 | 少妇厨房愉情理9仑片视频 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 国产精品久久久久影院嫩草 | 99久久人妻精品免费二区 | 又大又黄又粗又爽的免费视频 | 疯狂三人交性欧美 | 内射老妇bbwx0c0ck | 久久久久亚洲精品男人的天堂 | 成人aaa片一区国产精品 | 欧美国产亚洲日韩在线二区 | aa片在线观看视频在线播放 | av香港经典三级级 在线 | 在线播放免费人成毛片乱码 | 99精品视频在线观看免费 | 撕开奶罩揉吮奶头视频 | 久久成人a毛片免费观看网站 | 国产人妻精品一区二区三区 | 麻豆国产人妻欲求不满 | 又大又硬又黄的免费视频 | www国产精品内射老师 | 欧美xxxx黑人又粗又长 | 内射爽无广熟女亚洲 | 丝袜 中出 制服 人妻 美腿 | 免费国产黄网站在线观看 | 亚洲熟妇自偷自拍另类 | 精品无码一区二区三区的天堂 | 国产精品多人p群无码 | av无码电影一区二区三区 | 东京热无码av男人的天堂 | 国产明星裸体无码xxxx视频 | 国产亚洲tv在线观看 | 无码人妻黑人中文字幕 | 婷婷丁香六月激情综合啪 | 国产精品久久久久9999小说 | 纯爱无遮挡h肉动漫在线播放 | 无码午夜成人1000部免费视频 | 午夜成人1000部免费视频 | 成人aaa片一区国产精品 | 日本在线高清不卡免费播放 | 无码纯肉视频在线观看 | 久久久久久九九精品久 | 天堂亚洲免费视频 | 蜜臀aⅴ国产精品久久久国产老师 | 扒开双腿疯狂进出爽爽爽视频 | 精品久久久久久人妻无码中文字幕 | 亚洲热妇无码av在线播放 | 国产亚洲精品久久久闺蜜 | 国色天香社区在线视频 | 亚洲区欧美区综合区自拍区 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 日本大乳高潮视频在线观看 | 国产97人人超碰caoprom | 亚洲s色大片在线观看 | 久久精品国产99精品亚洲 | 久久久久99精品国产片 | 国产偷国产偷精品高清尤物 | 激情五月综合色婷婷一区二区 | 午夜精品一区二区三区的区别 | 欧美日韩一区二区三区自拍 | 国产sm调教视频在线观看 | 日韩少妇内射免费播放 | 国产真实乱对白精彩久久 | 青青青手机频在线观看 | 波多野结衣乳巨码无在线观看 | 欧美 日韩 亚洲 在线 | 一本色道婷婷久久欧美 | 色窝窝无码一区二区三区色欲 | 欧美 日韩 人妻 高清 中文 | 国产亚洲精品久久久闺蜜 | 亚洲成色在线综合网站 | 亚洲小说春色综合另类 | 未满小14洗澡无码视频网站 | 88国产精品欧美一区二区三区 | 国产农村妇女高潮大叫 | 蜜桃av抽搐高潮一区二区 | 亚洲人成影院在线观看 | 国产乱人伦偷精品视频 | 久9re热视频这里只有精品 | 亚洲第一无码av无码专区 | 国产亚洲精品久久久久久 | 无码国模国产在线观看 | 中文字幕日产无线码一区 | 亚洲色偷偷男人的天堂 | 亚洲国产欧美国产综合一区 | 色婷婷综合激情综在线播放 | 国产亚洲精品久久久闺蜜 | 国产成人精品优优av | 亚洲 欧美 激情 小说 另类 | 国产人妻久久精品二区三区老狼 | 亚洲国产精品无码久久久久高潮 | 中文字幕无码乱人伦 | 夜夜影院未满十八勿进 | 精品偷自拍另类在线观看 | 装睡被陌生人摸出水好爽 | 国产在线精品一区二区高清不卡 | 中文字幕av伊人av无码av | 精品偷拍一区二区三区在线看 | 日欧一片内射va在线影院 | 性生交大片免费看女人按摩摩 | 蜜桃视频插满18在线观看 | 久久久www成人免费毛片 | 人妻插b视频一区二区三区 | 久久99精品国产麻豆蜜芽 | aa片在线观看视频在线播放 | 午夜精品久久久久久久 | 国内精品久久毛片一区二区 | 人妻天天爽夜夜爽一区二区 | 日韩欧美成人免费观看 | 四虎国产精品免费久久 | 国产精品久久久午夜夜伦鲁鲁 | 正在播放老肥熟妇露脸 | 国产无av码在线观看 | 中文字幕乱妇无码av在线 | 蜜桃视频插满18在线观看 | 中文毛片无遮挡高清免费 | 亚洲精品中文字幕久久久久 | 久久久亚洲欧洲日产国码αv | 99久久久无码国产精品免费 | 日本肉体xxxx裸交 | 国产成人无码av片在线观看不卡 | 色婷婷香蕉在线一区二区 | 国产午夜福利100集发布 | 99久久婷婷国产综合精品青草免费 | 精品无人国产偷自产在线 | 97久久国产亚洲精品超碰热 | 捆绑白丝粉色jk震动捧喷白浆 | 国产黄在线观看免费观看不卡 | 97久久精品无码一区二区 | 亚洲色偷偷男人的天堂 | 搡女人真爽免费视频大全 | 亚洲七七久久桃花影院 | 国产午夜精品一区二区三区嫩草 | 无码av最新清无码专区吞精 | 国产片av国语在线观看 | 成人性做爰aaa片免费看 | 在线а√天堂中文官网 | 久久久久99精品国产片 | 亚洲精品成人av在线 | 无码人妻久久一区二区三区不卡 | 欧美猛少妇色xxxxx | 任你躁在线精品免费 | 国产精品久久久久影院嫩草 | 久久综合激激的五月天 | 性做久久久久久久免费看 | 丁香啪啪综合成人亚洲 | 亚洲国产av精品一区二区蜜芽 | 亚洲小说图区综合在线 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 中文字幕 人妻熟女 | 在线精品国产一区二区三区 | 日韩成人一区二区三区在线观看 | 野狼第一精品社区 | 东京热无码av男人的天堂 | 亚洲区小说区激情区图片区 | 无码人妻精品一区二区三区下载 | 人人妻人人藻人人爽欧美一区 | 亚洲欧洲日本综合aⅴ在线 | 国产三级精品三级男人的天堂 | 国产成人精品视频ⅴa片软件竹菊 | 中文无码成人免费视频在线观看 | 熟女少妇人妻中文字幕 | 久久久久99精品国产片 | 国产 浪潮av性色四虎 | 亚洲熟悉妇女xxx妇女av | 久久国产36精品色熟妇 | 亚洲乱亚洲乱妇50p | 高清无码午夜福利视频 | 国产人成高清在线视频99最全资源 | 黑森林福利视频导航 | av香港经典三级级 在线 | 无遮挡啪啪摇乳动态图 | 大胆欧美熟妇xx | 亚洲精品综合五月久久小说 | 亚洲国产精品成人久久蜜臀 | 熟女体下毛毛黑森林 | 曰韩少妇内射免费播放 | 亚洲精品午夜国产va久久成人 | 内射白嫩少妇超碰 | 97久久精品无码一区二区 | 久久久成人毛片无码 | 无遮无挡爽爽免费视频 | 国语自产偷拍精品视频偷 | 中文无码精品a∨在线观看不卡 | 国产精品人妻一区二区三区四 | 欧美三级a做爰在线观看 | 特黄特色大片免费播放器图片 | 国产人妻人伦精品 | 国产内射爽爽大片视频社区在线 | 色 综合 欧美 亚洲 国产 | 巨爆乳无码视频在线观看 | 黑人粗大猛烈进出高潮视频 | 久久国产精品二国产精品 | 无码av最新清无码专区吞精 | 少妇久久久久久人妻无码 | а天堂中文在线官网 | 清纯唯美经典一区二区 | 77777熟女视频在线观看 а天堂中文在线官网 | 女人被爽到呻吟gif动态图视看 | 人人妻人人澡人人爽欧美一区 | 性色av无码免费一区二区三区 | 97精品国产97久久久久久免费 | 三上悠亚人妻中文字幕在线 | 人妻无码αv中文字幕久久琪琪布 | 在教室伦流澡到高潮hnp视频 | 麻豆人妻少妇精品无码专区 | 青青青爽视频在线观看 | 久久久久亚洲精品中文字幕 | 少妇性荡欲午夜性开放视频剧场 | 无码av中文字幕免费放 | 日本一本二本三区免费 | 中国女人内谢69xxxxxa片 | 精品aⅴ一区二区三区 | 六十路熟妇乱子伦 | 日本高清一区免费中文视频 | 婷婷丁香五月天综合东京热 | 成年美女黄网站色大免费全看 | 国产情侣作爱视频免费观看 | 内射老妇bbwx0c0ck | 久久精品无码一区二区三区 | 国产成人无码av片在线观看不卡 | 久久精品中文闷骚内射 | 精品一区二区三区波多野结衣 | 俺去俺来也www色官网 | 国产成人亚洲综合无码 | 国产成人无码区免费内射一片色欲 | 亚洲热妇无码av在线播放 | 2019nv天堂香蕉在线观看 | 成 人 免费观看网站 | 伊人久久大香线焦av综合影院 | 久久熟妇人妻午夜寂寞影院 | 国产精品办公室沙发 | 亚洲熟妇色xxxxx欧美老妇 | 国产精品无码久久av | 久久99久久99精品中文字幕 | 久久久久久久久888 | 国产激情综合五月久久 | 中文字幕日韩精品一区二区三区 | 大肉大捧一进一出视频出来呀 | 国产精品久久久久久无码 | 日产国产精品亚洲系列 | 中文字幕无码av波多野吉衣 | 无码乱肉视频免费大全合集 | 一区二区传媒有限公司 | √天堂资源地址中文在线 | 久久精品女人天堂av免费观看 | 少妇被粗大的猛进出69影院 | 国产偷自视频区视频 | 亚洲精品欧美二区三区中文字幕 | 人人妻人人澡人人爽欧美一区九九 | 女人被爽到呻吟gif动态图视看 | 欧美日本精品一区二区三区 | 激情国产av做激情国产爱 | 黑森林福利视频导航 | 99久久精品无码一区二区毛片 | 一二三四社区在线中文视频 | 天天躁夜夜躁狠狠是什么心态 | 精品国产一区二区三区av 性色 | 人人爽人人澡人人人妻 | 成人免费视频视频在线观看 免费 | 亚洲日韩av一区二区三区四区 | 久久午夜无码鲁丝片秋霞 | 亚洲人成影院在线无码按摩店 | 午夜精品久久久久久久久 | 国产无遮挡吃胸膜奶免费看 | 亚洲一区二区三区无码久久 | 国产真实夫妇视频 | 丰满人妻被黑人猛烈进入 | 乱人伦人妻中文字幕无码久久网 | 午夜性刺激在线视频免费 | 亚洲成av人片天堂网无码】 | 久久久国产一区二区三区 | 精品国产一区二区三区av 性色 | 两性色午夜免费视频 | 性生交片免费无码看人 | 国精品人妻无码一区二区三区蜜柚 | 亚洲色欲色欲天天天www | 黑森林福利视频导航 | 麻豆人妻少妇精品无码专区 | 久久综合色之久久综合 | 人妻插b视频一区二区三区 | 窝窝午夜理论片影院 | 中文字幕 人妻熟女 | 国产热a欧美热a在线视频 | 一区二区传媒有限公司 | 国产在线一区二区三区四区五区 | 久久综合九色综合97网 | 国产人成高清在线视频99最全资源 | 无码福利日韩神码福利片 | 久久熟妇人妻午夜寂寞影院 | 老太婆性杂交欧美肥老太 | 久久精品一区二区三区四区 | 亚洲天堂2017无码中文 | 狠狠色噜噜狠狠狠狠7777米奇 | 久久人人爽人人人人片 | 露脸叫床粗话东北少妇 | 日韩精品a片一区二区三区妖精 | 久久无码中文字幕免费影院蜜桃 | 国产午夜视频在线观看 | 色一情一乱一伦一视频免费看 | 美女扒开屁股让男人桶 | 国产舌乚八伦偷品w中 | 国产无遮挡又黄又爽免费视频 | 日韩精品成人一区二区三区 | 两性色午夜视频免费播放 | 亚洲天堂2017无码中文 | 久久天天躁夜夜躁狠狠 | аⅴ资源天堂资源库在线 | 成人无码精品1区2区3区免费看 | 亚洲七七久久桃花影院 | 99久久精品无码一区二区毛片 | 无人区乱码一区二区三区 | 精品一区二区不卡无码av | 国产成人综合在线女婷五月99播放 | 成 人 网 站国产免费观看 | 国产xxx69麻豆国语对白 | 又粗又大又硬又长又爽 | 人人爽人人澡人人人妻 | 国产亚洲精品精品国产亚洲综合 | 久久人人爽人人爽人人片av高清 | 最新国产乱人伦偷精品免费网站 | 日日天日日夜日日摸 | 国产成人无码av片在线观看不卡 | 蜜桃av抽搐高潮一区二区 | 欧美 日韩 亚洲 在线 | 国内精品人妻无码久久久影院蜜桃 | 日本丰满护士爆乳xxxx | 国产亚洲精品久久久闺蜜 | 欧美人与牲动交xxxx | av无码电影一区二区三区 | 欧美日韩一区二区免费视频 | 少妇性荡欲午夜性开放视频剧场 | 成人av无码一区二区三区 | 3d动漫精品啪啪一区二区中 | 国产精品手机免费 | 美女极度色诱视频国产 | 日韩人妻系列无码专区 | 亚洲男人av天堂午夜在 | 少妇人妻av毛片在线看 | 狂野欧美性猛交免费视频 | av无码不卡在线观看免费 | 天天躁日日躁狠狠躁免费麻豆 | 国产一区二区三区精品视频 | 国产精品久久久久久久影院 | 国产无套粉嫩白浆在线 | 99久久精品日本一区二区免费 | 又黄又爽又色的视频 | 国产一区二区三区日韩精品 | 国产精品人人爽人人做我的可爱 | 亚洲一区二区三区 | 久久国产精品精品国产色婷婷 | 丰满少妇人妻久久久久久 | 久久婷婷五月综合色国产香蕉 | 任你躁国产自任一区二区三区 | 日韩精品一区二区av在线 | 国产在热线精品视频 | 国产精品毛片一区二区 | 55夜色66夜色国产精品视频 | 中文字幕色婷婷在线视频 | 51国偷自产一区二区三区 | 欧美丰满熟妇xxxx性ppx人交 | 久久久久99精品国产片 | 国产精品第一国产精品 | 99精品久久毛片a片 | 婷婷丁香六月激情综合啪 | 亚洲成在人网站无码天堂 | 高中生自慰www网站 | 国产尤物精品视频 | 国产精华av午夜在线观看 | 无码吃奶揉捏奶头高潮视频 | 丁香花在线影院观看在线播放 | 日本一卡二卡不卡视频查询 | 国内老熟妇对白xxxxhd | 久久99精品久久久久久动态图 | 日日干夜夜干 | 精品日本一区二区三区在线观看 | 欧美xxxx黑人又粗又长 | 亚洲精品www久久久 | 网友自拍区视频精品 | 内射欧美老妇wbb | 4hu四虎永久在线观看 | 欧美日本免费一区二区三区 | 未满小14洗澡无码视频网站 | 久久精品人人做人人综合试看 | 日韩精品成人一区二区三区 | 天海翼激烈高潮到腰振不止 | 午夜福利一区二区三区在线观看 | 日韩少妇内射免费播放 | 国产真实伦对白全集 | 无遮无挡爽爽免费视频 | 九九综合va免费看 | 亚洲色欲色欲天天天www | 亚洲人亚洲人成电影网站色 | 国产手机在线αⅴ片无码观看 | 亚洲自偷自偷在线制服 | 日韩无套无码精品 | 久久久久99精品成人片 | 中文字幕无线码 | 福利一区二区三区视频在线观看 | 日本一区二区更新不卡 | 1000部啪啪未满十八勿入下载 | 国产亚洲欧美日韩亚洲中文色 | 国产真实乱对白精彩久久 | 国产成人综合在线女婷五月99播放 | 欧美熟妇另类久久久久久多毛 | 天堂а√在线中文在线 | 性欧美熟妇videofreesex | 东京无码熟妇人妻av在线网址 | 国产人妻精品一区二区三区不卡 | 亚洲阿v天堂在线 | 亚洲人亚洲人成电影网站色 | 国产精品18久久久久久麻辣 | 成人精品视频一区二区 | 又湿又紧又大又爽a视频国产 | 老熟妇仑乱视频一区二区 | 免费男性肉肉影院 | 亚洲日韩中文字幕在线播放 | 九月婷婷人人澡人人添人人爽 | 人妻夜夜爽天天爽三区 | 无码免费一区二区三区 | 国产精品国产三级国产专播 | 少妇厨房愉情理9仑片视频 | 国产亚洲美女精品久久久2020 | 国产两女互慰高潮视频在线观看 | 亚洲中文字幕在线观看 | yw尤物av无码国产在线观看 | 国产精品久久久久无码av色戒 | 亚洲欧美色中文字幕在线 | 扒开双腿疯狂进出爽爽爽视频 | 人妻有码中文字幕在线 | 亚洲 a v无 码免 费 成 人 a v | 色 综合 欧美 亚洲 国产 | 午夜福利电影 | 国产精品人人爽人人做我的可爱 | 伊人色综合久久天天小片 | 亚洲乱码国产乱码精品精 | 一本久道高清无码视频 | 免费播放一区二区三区 | 亚洲精品久久久久久一区二区 | 狠狠噜狠狠狠狠丁香五月 | 男女性色大片免费网站 | 老司机亚洲精品影院 | 乱中年女人伦av三区 | 国产午夜视频在线观看 | 性色欲情网站iwww九文堂 | 日日碰狠狠丁香久燥 | 精品一区二区三区无码免费视频 | 日本一卡二卡不卡视频查询 | 亚洲国产精品美女久久久久 | 亚洲精品美女久久久久久久 | 国产在线一区二区三区四区五区 | 国产午夜福利100集发布 | 亚洲成色www久久网站 | 午夜熟女插插xx免费视频 | 麻豆精品国产精华精华液好用吗 | 小sao货水好多真紧h无码视频 | 国产无遮挡吃胸膜奶免费看 | 久久久久久国产精品无码下载 | 亚洲综合精品香蕉久久网 | 男女爱爱好爽视频免费看 | 亚洲一区二区三区四区 | 免费看男女做好爽好硬视频 | 日韩精品一区二区av在线 | 国产亚洲精品久久久闺蜜 | 好男人www社区 | 大地资源中文第3页 | 成在人线av无码免费 | 成人欧美一区二区三区 | 色五月丁香五月综合五月 | 免费人成网站视频在线观看 | 特大黑人娇小亚洲女 | 人妻天天爽夜夜爽一区二区 | 樱花草在线社区www | 国产亚洲视频中文字幕97精品 | 国产av人人夜夜澡人人爽麻豆 | 久久精品一区二区三区四区 | 中文久久乱码一区二区 | 亚洲国产欧美在线成人 | 无码人妻精品一区二区三区不卡 | 国产麻豆精品一区二区三区v视界 | aⅴ亚洲 日韩 色 图网站 播放 | 人人妻人人藻人人爽欧美一区 | 18精品久久久无码午夜福利 | 国产舌乚八伦偷品w中 | 亚洲精品国产精品乱码不卡 | 国产高潮视频在线观看 | 免费观看的无遮挡av | 国产婷婷色一区二区三区在线 | 国内综合精品午夜久久资源 | 成 人 网 站国产免费观看 | 水蜜桃色314在线观看 | 欧美性猛交xxxx富婆 | 午夜精品一区二区三区的区别 | 巨爆乳无码视频在线观看 | 老熟女重囗味hdxx69 | 老司机亚洲精品影院无码 | 久久久久人妻一区精品色欧美 | 人人爽人人爽人人片av亚洲 | 综合网日日天干夜夜久久 | 国产绳艺sm调教室论坛 | 精品一区二区三区波多野结衣 | 一本久久伊人热热精品中文字幕 | 亚洲人成影院在线观看 | 熟妇人妻中文av无码 | 天天燥日日燥 | 国产97色在线 | 免 | 日韩无码专区 | 国产网红无码精品视频 | 在线精品国产一区二区三区 | 国产精品无码mv在线观看 | 国产激情无码一区二区app | 欧美怡红院免费全部视频 | 国产成人精品久久亚洲高清不卡 | a片在线免费观看 | 亚洲无人区一区二区三区 | 熟妇女人妻丰满少妇中文字幕 | 国产绳艺sm调教室论坛 | 内射巨臀欧美在线视频 | 国产精品久久久久9999小说 | 少妇性l交大片欧洲热妇乱xxx | 国内揄拍国内精品少妇国语 | 久久综合激激的五月天 | 色一情一乱一伦 | 国产午夜福利100集发布 | 中文字幕无线码免费人妻 | 又湿又紧又大又爽a视频国产 | 国产农村妇女高潮大叫 | 亚洲娇小与黑人巨大交 | 18黄暴禁片在线观看 | 国产熟妇高潮叫床视频播放 | 亚洲成熟女人毛毛耸耸多 | a国产一区二区免费入口 | 性生交片免费无码看人 | а√天堂www在线天堂小说 | 亚洲人成网站免费播放 | 精品久久久久香蕉网 | 国产精品办公室沙发 | 亚洲日韩中文字幕在线播放 | 少妇无码av无码专区在线观看 | 伊人久久大香线焦av综合影院 | 国内老熟妇对白xxxxhd | 奇米影视888欧美在线观看 | 亚洲一区二区三区在线观看网站 | 国产人妻人伦精品 | 强伦人妻一区二区三区视频18 | 国产精品va在线播放 | 疯狂三人交性欧美 | 久久人人爽人人爽人人片ⅴ | 六十路熟妇乱子伦 | 无遮挡啪啪摇乳动态图 | 国产绳艺sm调教室论坛 | 亚洲国产成人a精品不卡在线 | 精品国精品国产自在久国产87 | 国精品人妻无码一区二区三区蜜柚 | 久久精品中文字幕大胸 | 在线播放无码字幕亚洲 | 欧美一区二区三区视频在线观看 | 动漫av网站免费观看 | 国产av无码专区亚洲awww | 午夜无码人妻av大片色欲 | 粗大的内捧猛烈进出视频 | 精品少妇爆乳无码av无码专区 | 亚洲中文字幕在线无码一区二区 | 动漫av一区二区在线观看 | 精品无人国产偷自产在线 | 欧美日韩视频无码一区二区三 | 亚洲精品中文字幕乱码 | 强奷人妻日本中文字幕 | 久久国产精品萌白酱免费 | 亚洲国产精品无码一区二区三区 | 亚洲欧洲无卡二区视頻 | 免费中文字幕日韩欧美 | 国产成人无码av片在线观看不卡 | 国产精品无码一区二区三区不卡 | 亚洲欧洲无卡二区视頻 | 亚洲 日韩 欧美 成人 在线观看 | 国内丰满熟女出轨videos | 亚洲国产精品久久久久久 | 色一情一乱一伦一视频免费看 | 在线亚洲高清揄拍自拍一品区 | 人人妻人人澡人人爽欧美一区 | 精品国产精品久久一区免费式 | 少妇邻居内射在线 | 熟女少妇在线视频播放 | 国产色精品久久人妻 | 熟女少妇在线视频播放 | 精品国产一区二区三区四区 | 亚洲成熟女人毛毛耸耸多 | 精品国产精品久久一区免费式 | 久久天天躁夜夜躁狠狠 | 少妇人妻av毛片在线看 | 激情爆乳一区二区三区 | 欧美熟妇另类久久久久久不卡 | 国产片av国语在线观看 | 免费人成网站视频在线观看 | 精品久久综合1区2区3区激情 | 高清无码午夜福利视频 | 秋霞成人午夜鲁丝一区二区三区 | 性欧美疯狂xxxxbbbb | 欧美丰满熟妇xxxx性ppx人交 | 日本成熟视频免费视频 | а√天堂www在线天堂小说 | 性欧美牲交xxxxx视频 | 精品无码国产自产拍在线观看蜜 | 亚洲日韩一区二区三区 | 亚洲爆乳大丰满无码专区 | 中文字幕乱码人妻无码久久 | 午夜福利一区二区三区在线观看 | 久久综合久久自在自线精品自 | 丝袜 中出 制服 人妻 美腿 | 小泽玛莉亚一区二区视频在线 | 久久久婷婷五月亚洲97号色 | 亚洲国产精品成人久久蜜臀 | 国产舌乚八伦偷品w中 | 少妇性l交大片欧洲热妇乱xxx | 免费人成网站视频在线观看 | 日本xxxx色视频在线观看免费 | 亚洲 日韩 欧美 成人 在线观看 | 日韩精品a片一区二区三区妖精 | 日韩av无码中文无码电影 | 学生妹亚洲一区二区 | 水蜜桃av无码 | 国产欧美熟妇另类久久久 | 中文无码精品a∨在线观看不卡 | 美女黄网站人色视频免费国产 | 色婷婷综合中文久久一本 | 日本欧美一区二区三区乱码 | 98国产精品综合一区二区三区 | 国产精品视频免费播放 | 成人精品天堂一区二区三区 | 精品无人区无码乱码毛片国产 | 国产成人精品无码播放 | 亚洲天堂2017无码 | 丰满诱人的人妻3 | 成年女人永久免费看片 | 无码国产色欲xxxxx视频 | 午夜丰满少妇性开放视频 | 无码午夜成人1000部免费视频 | 少妇一晚三次一区二区三区 | 天海翼激烈高潮到腰振不止 | 国产黄在线观看免费观看不卡 | 日韩成人一区二区三区在线观看 | 精品水蜜桃久久久久久久 | 无套内谢老熟女 | 97久久国产亚洲精品超碰热 | 丰满少妇人妻久久久久久 | 乱人伦人妻中文字幕无码 | 精品无码成人片一区二区98 | 国产成人无码av在线影院 | 日韩少妇白浆无码系列 | 国内揄拍国内精品人妻 | 少妇无码一区二区二三区 | 国产性生大片免费观看性 | 国产精品99爱免费视频 | 精品一区二区三区波多野结衣 | 国産精品久久久久久久 | 日韩人妻无码中文字幕视频 | 国产精品久免费的黄网站 | 人妻无码久久精品人妻 | 中国大陆精品视频xxxx | 中文字幕 亚洲精品 第1页 | 成人精品一区二区三区中文字幕 | 丰满人妻被黑人猛烈进入 | 亚洲 激情 小说 另类 欧美 | 嫩b人妻精品一区二区三区 | 波多野结衣高清一区二区三区 | 亚洲男人av天堂午夜在 | 最新国产乱人伦偷精品免费网站 | 无码帝国www无码专区色综合 | 日韩av无码一区二区三区不卡 | 国产熟女一区二区三区四区五区 | 国产精品久久久久无码av色戒 | 国产人妻精品一区二区三区 | 亚洲精品一区国产 | 精品亚洲韩国一区二区三区 | 最近的中文字幕在线看视频 | 欧美人与禽zoz0性伦交 | 亚洲成a人片在线观看无码 | 久久国内精品自在自线 | 欧美激情一区二区三区成人 | 国产亚洲精品精品国产亚洲综合 | 国内丰满熟女出轨videos | 漂亮人妻洗澡被公强 日日躁 | 亚洲日韩一区二区 | 亚洲爆乳精品无码一区二区三区 | 亚洲中文字幕久久无码 | 国产三级精品三级男人的天堂 | 免费国产黄网站在线观看 | 东京热无码av男人的天堂 | 久久久国产一区二区三区 | 亚洲精品欧美二区三区中文字幕 | 久久精品国产一区二区三区 | 一本精品99久久精品77 | 强开小婷嫩苞又嫩又紧视频 | 人妻插b视频一区二区三区 | 国产艳妇av在线观看果冻传媒 | 日韩视频 中文字幕 视频一区 | 成人影院yy111111在线观看 | 色综合天天综合狠狠爱 | 性啪啪chinese东北女人 | aⅴ亚洲 日韩 色 图网站 播放 | 午夜精品久久久久久久久 | 亚洲熟女一区二区三区 | 精品厕所偷拍各类美女tp嘘嘘 | 久久精品人人做人人综合 | 国产无遮挡又黄又爽免费视频 | 一本色道久久综合亚洲精品不卡 | 日本精品人妻无码免费大全 | 丰腴饱满的极品熟妇 | 精品国产福利一区二区 | 老子影院午夜伦不卡 | 欧美日韩色另类综合 | 亚洲国产欧美日韩精品一区二区三区 | 中国女人内谢69xxxx | 青草青草久热国产精品 | 思思久久99热只有频精品66 | 又色又爽又黄的美女裸体网站 | 好爽又高潮了毛片免费下载 | 日韩av无码中文无码电影 | 久久精品国产99精品亚洲 | 性欧美videos高清精品 | 国产精品久久久 | 欧美猛少妇色xxxxx | 国产精品无码永久免费888 | 日日干夜夜干 | 亚洲国产精品无码一区二区三区 | 欧美日韩一区二区三区自拍 | 日韩av激情在线观看 | 宝宝好涨水快流出来免费视频 | 欧美成人高清在线播放 | 丰满少妇熟乱xxxxx视频 | 亚洲の无码国产の无码影院 | 无遮无挡爽爽免费视频 | 日韩欧美中文字幕在线三区 | 久久久久亚洲精品中文字幕 | 精品一二三区久久aaa片 | 国产精品久久久久影院嫩草 | 一本久久a久久精品vr综合 | 九九久久精品国产免费看小说 | v一区无码内射国产 | 中国女人内谢69xxxxxa片 | 天堂亚洲2017在线观看 | 亚洲一区二区三区国产精华液 | 国产av无码专区亚洲a∨毛片 | 丰满岳乱妇在线观看中字无码 | 亚洲自偷自偷在线制服 | 天天摸天天碰天天添 | 草草网站影院白丝内射 | 久久亚洲a片com人成 | 99久久人妻精品免费二区 | 日韩欧美中文字幕公布 | 婷婷六月久久综合丁香 | 色欲av亚洲一区无码少妇 | 疯狂三人交性欧美 | 欧美人与物videos另类 | 国产69精品久久久久app下载 | 亚洲 激情 小说 另类 欧美 | 亚洲码国产精品高潮在线 | www成人国产高清内射 | 久久久久久九九精品久 | 福利一区二区三区视频在线观看 | 亚洲国产日韩a在线播放 | 天下第一社区视频www日本 | 在线精品国产一区二区三区 | 欧美人与物videos另类 | 久久精品无码一区二区三区 | 亚洲码国产精品高潮在线 | 性欧美videos高清精品 | 久久久亚洲欧洲日产国码αv | 亚洲熟妇色xxxxx欧美老妇y | 色婷婷久久一区二区三区麻豆 | 无码国模国产在线观看 | 性做久久久久久久久 | 97资源共享在线视频 | 乱人伦中文视频在线观看 | 亚洲成a人片在线观看无码 | 四虎影视成人永久免费观看视频 | 十八禁真人啪啪免费网站 | 中文字幕乱码中文乱码51精品 | 无码av免费一区二区三区试看 | 亚洲欧洲无卡二区视頻 | 久久午夜无码鲁丝片午夜精品 | 精品久久久久香蕉网 | 国产一区二区三区四区五区加勒比 | 一个人看的www免费视频在线观看 | 中文毛片无遮挡高清免费 | 性开放的女人aaa片 | 中文久久乱码一区二区 | 动漫av一区二区在线观看 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产无遮挡吃胸膜奶免费看 | 人妻少妇精品无码专区动漫 | 日韩在线不卡免费视频一区 | 在线成人www免费观看视频 | 亚洲码国产精品高潮在线 | 久久久久人妻一区精品色欧美 | 无码人妻丰满熟妇区五十路百度 | 国产艳妇av在线观看果冻传媒 | 成人精品天堂一区二区三区 | 日韩精品久久久肉伦网站 | √天堂资源地址中文在线 | 麻豆国产人妻欲求不满谁演的 | 国产成人一区二区三区别 | 久久熟妇人妻午夜寂寞影院 | 欧美老熟妇乱xxxxx | 中文字幕中文有码在线 | 国产午夜手机精彩视频 | 青青久在线视频免费观看 | 久久久久久av无码免费看大片 | 在线观看欧美一区二区三区 | 中文字幕人妻无码一区二区三区 | 国色天香社区在线视频 | 国语自产偷拍精品视频偷 | 精品国产一区二区三区av 性色 | 国产又粗又硬又大爽黄老大爷视 | 好爽又高潮了毛片免费下载 | 伊在人天堂亚洲香蕉精品区 | 亚洲日韩av片在线观看 | 综合激情五月综合激情五月激情1 | 国产美女精品一区二区三区 | 小sao货水好多真紧h无码视频 | 国产午夜无码视频在线观看 | 欧美日韩亚洲国产精品 | 最新国产乱人伦偷精品免费网站 | 国产av一区二区精品久久凹凸 | 国精产品一品二品国精品69xx | 亚洲中文字幕在线观看 | 色五月五月丁香亚洲综合网 | 欧美日韩一区二区三区自拍 | 极品尤物被啪到呻吟喷水 | 精品国产一区二区三区四区 | 鲁鲁鲁爽爽爽在线视频观看 | 亚洲一区二区三区四区 | 亚洲欧美精品aaaaaa片 | 国产美女精品一区二区三区 | 在线看片无码永久免费视频 | 最近的中文字幕在线看视频 | 樱花草在线播放免费中文 | 日本乱人伦片中文三区 | 色欲人妻aaaaaaa无码 | 亚洲自偷精品视频自拍 | 婷婷丁香五月天综合东京热 | 青青青手机频在线观看 | 免费观看又污又黄的网站 | 欧美精品免费观看二区 | 国产真实夫妇视频 | 无码人妻久久一区二区三区不卡 | 久久99热只有频精品8 | 国产色视频一区二区三区 | 久久伊人色av天堂九九小黄鸭 | 国产成人无码一二三区视频 | 国产精品美女久久久久av爽李琼 | 黑森林福利视频导航 | 久久亚洲a片com人成 | 98国产精品综合一区二区三区 | 国产精品久久久 | 欧美人与牲动交xxxx | 亚洲欧洲日本无在线码 | 日本www一道久久久免费榴莲 | 2020最新国产自产精品 | 黑人粗大猛烈进出高潮视频 | 久久久av男人的天堂 | 熟女少妇在线视频播放 | 亚洲国产精品久久久天堂 | 国产成人精品三级麻豆 | 樱花草在线社区www | 丰满人妻一区二区三区免费视频 | 欧美精品免费观看二区 | 高清无码午夜福利视频 | 黑人粗大猛烈进出高潮视频 | 亚洲s色大片在线观看 | 国产亚洲精品精品国产亚洲综合 | 99精品国产综合久久久久五月天 | 98国产精品综合一区二区三区 | 成人免费无码大片a毛片 | 自拍偷自拍亚洲精品被多人伦好爽 | 色爱情人网站 | 午夜理论片yy44880影院 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲国产精品一区二区美利坚 | 性色av无码免费一区二区三区 | 日韩av无码一区二区三区不卡 | 国产香蕉97碰碰久久人人 | 国产成人无码av一区二区 | 免费观看又污又黄的网站 | 天堂亚洲2017在线观看 | 欧美 日韩 亚洲 在线 | 偷窥村妇洗澡毛毛多 | 国产色视频一区二区三区 | 精品欧洲av无码一区二区三区 | 97资源共享在线视频 | 中文字幕乱码人妻二区三区 | 国产av一区二区三区最新精品 | 少妇太爽了在线观看 | 久久天天躁狠狠躁夜夜免费观看 | 欧美国产日韩亚洲中文 | 无码人妻出轨黑人中文字幕 | 国产亚洲欧美在线专区 | 日本爽爽爽爽爽爽在线观看免 | 国产精品久久久久久无码 | 天天燥日日燥 | 亚洲天堂2017无码中文 | 久久综合色之久久综合 | 麻豆果冻传媒2021精品传媒一区下载 | 国产麻豆精品一区二区三区v视界 | 少妇性俱乐部纵欲狂欢电影 | 久久精品国产一区二区三区肥胖 | 人人妻人人澡人人爽欧美一区九九 | 婷婷六月久久综合丁香 | 久久久久免费精品国产 | 97精品国产97久久久久久免费 | 久久www免费人成人片 | 妺妺窝人体色www婷婷 | 国产人妖乱国产精品人妖 | 久久综合久久自在自线精品自 | 亚洲日本va午夜在线电影 | 波多野结衣乳巨码无在线观看 | 日欧一片内射va在线影院 | 亚洲无人区一区二区三区 | 国产精品.xx视频.xxtv | 亚洲欧洲日本无在线码 | 欧美三级不卡在线观看 | 老子影院午夜精品无码 | 中文字幕无码日韩欧毛 | 在教室伦流澡到高潮hnp视频 | 国产激情综合五月久久 | 久久www免费人成人片 | 99久久精品国产一区二区蜜芽 | 爆乳一区二区三区无码 | 又大又黄又粗又爽的免费视频 | 日日鲁鲁鲁夜夜爽爽狠狠 | 18禁黄网站男男禁片免费观看 | 亚洲伊人久久精品影院 | а√天堂www在线天堂小说 | 人妻熟女一区 | 亚洲精品成人av在线 | 永久黄网站色视频免费直播 | 国产在线精品一区二区高清不卡 | 黑森林福利视频导航 | 在教室伦流澡到高潮hnp视频 | 国产精品久久福利网站 | 亚洲国产欧美国产综合一区 | 国产亚洲精品久久久闺蜜 | 免费国产黄网站在线观看 | 麻豆国产丝袜白领秘书在线观看 | 无码乱肉视频免费大全合集 | 国产精品理论片在线观看 | 欧美zoozzooz性欧美 | 色综合久久88色综合天天 | 国产手机在线αⅴ片无码观看 | 在线精品国产一区二区三区 | 成人毛片一区二区 | 强伦人妻一区二区三区视频18 | а√天堂www在线天堂小说 | 任你躁在线精品免费 | 国产亚洲精品久久久久久久 | 无遮挡国产高潮视频免费观看 | 国产成人一区二区三区别 | 日韩精品一区二区av在线 | 98国产精品综合一区二区三区 | 久久99精品国产麻豆 | 国产精品无码mv在线观看 | 最近中文2019字幕第二页 | 人人澡人人妻人人爽人人蜜桃 | 亚洲精品成人福利网站 | 国内丰满熟女出轨videos | 色情久久久av熟女人妻网站 | 中文字幕人成乱码熟女app | 国产九九九九九九九a片 | 色欲人妻aaaaaaa无码 | 一本久道久久综合狠狠爱 | 欧美 日韩 人妻 高清 中文 | 美女黄网站人色视频免费国产 | 亚洲精品一区二区三区在线观看 | 欧美亚洲国产一区二区三区 | 日本精品少妇一区二区三区 | 亚洲国产成人a精品不卡在线 | 亚洲精品久久久久avwww潮水 | 欧美日韩视频无码一区二区三 | 欧美35页视频在线观看 | 乱人伦人妻中文字幕无码久久网 | 97精品人妻一区二区三区香蕉 | 亚洲中文字幕无码中文字在线 | 久久精品视频在线看15 | 国产精品高潮呻吟av久久4虎 | yw尤物av无码国产在线观看 | 98国产精品综合一区二区三区 | 久久午夜无码鲁丝片 | 日韩少妇内射免费播放 | 婷婷综合久久中文字幕蜜桃三电影 | 国产精品爱久久久久久久 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 日韩人妻少妇一区二区三区 | 亚洲乱码日产精品bd | 内射白嫩少妇超碰 | 亚洲小说图区综合在线 | 国产精品-区区久久久狼 | 中文字幕乱妇无码av在线 | 久久99精品国产麻豆蜜芽 | 免费无码肉片在线观看 | a在线亚洲男人的天堂 | 国产一区二区三区日韩精品 | 正在播放东北夫妻内射 | 性欧美牲交xxxxx视频 | 日本xxxx色视频在线观看免费 | 中文字幕乱妇无码av在线 | 强奷人妻日本中文字幕 | 精品国产国产综合精品 | 久久久久成人片免费观看蜜芽 | 三级4级全黄60分钟 | 成人精品天堂一区二区三区 | 久久久久国色av免费观看性色 | 无码人妻久久一区二区三区不卡 | 午夜精品久久久久久久 | 久久久久亚洲精品男人的天堂 | 成人三级无码视频在线观看 | 欧美激情综合亚洲一二区 | 国产精品资源一区二区 | 国产 浪潮av性色四虎 | 亚洲成熟女人毛毛耸耸多 | 亚洲gv猛男gv无码男同 | 99在线 | 亚洲 | 黑人巨大精品欧美一区二区 | 在线天堂新版最新版在线8 | 18禁黄网站男男禁片免费观看 | 少妇厨房愉情理9仑片视频 | 久久久精品人妻久久影视 | 成人毛片一区二区 | 中文久久乱码一区二区 | 中文字幕无码热在线视频 | 牛和人交xxxx欧美 | 99久久亚洲精品无码毛片 | 在线精品国产一区二区三区 | 99久久无码一区人妻 | 丰满人妻翻云覆雨呻吟视频 | 樱花草在线播放免费中文 | 亚洲а∨天堂久久精品2021 | 波多野结衣乳巨码无在线观看 | 日本一区二区三区免费播放 | 国产激情精品一区二区三区 | 久久久久久久人妻无码中文字幕爆 | 久久久精品国产sm最大网站 | 国产成人一区二区三区在线观看 | 日日碰狠狠躁久久躁蜜桃 | 亚洲七七久久桃花影院 | 99国产欧美久久久精品 | 精品一二三区久久aaa片 | 国产成人无码午夜视频在线观看 | 亚洲精品国产精品乱码视色 | 牛和人交xxxx欧美 | 精品一区二区三区波多野结衣 | 亚洲一区二区三区四区 | 色偷偷av老熟女 久久精品人妻少妇一区二区三区 | 国产情侣作爱视频免费观看 | 色噜噜亚洲男人的天堂 | 小鲜肉自慰网站xnxx | 精品无人国产偷自产在线 | 熟妇人妻中文av无码 | 国产人妖乱国产精品人妖 | 蜜桃无码一区二区三区 | 小sao货水好多真紧h无码视频 | 国产精品手机免费 | 大肉大捧一进一出好爽视频 | 一本久道久久综合婷婷五月 | 国产内射爽爽大片视频社区在线 | 少妇久久久久久人妻无码 | 一二三四社区在线中文视频 | 久久婷婷五月综合色国产香蕉 | 亚洲精品综合一区二区三区在线 | 真人与拘做受免费视频一 | 欧美日韩一区二区免费视频 | 国产精品丝袜黑色高跟鞋 | 国产亚洲精品久久久久久久久动漫 | 人妻插b视频一区二区三区 | 国产绳艺sm调教室论坛 | 久久久久免费看成人影片 |