日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习OpenCV——Surf(特征点篇)flann快速最近邻搜索算法

發布時間:2025/3/21 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习OpenCV——Surf(特征点篇)flann快速最近邻搜索算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Surf(Speed Up Robust Feature)


Surf算法的原理 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??


1.構建Hessian矩陣構造高斯金字塔尺度空間


其實surf構造的金字塔圖像與sift有很大不同,就是因為這些不同才加快了其檢測的速度。Sift采用的是DOG圖像,而surf采用的是Hessian矩陣行列式近似值圖像。Hessian矩陣是Surf算法的核心,為了方便運算,假設函數f(z,y),Hessian矩陣H是由函數,偏導數組成。首先來看看圖像中某個像素點的Hessian矩陣,如下:



即每一個像素點都可以求出一個Hessian矩陣。

H矩陣判別式為:




判別式的值是H矩陣的特征值,可以利用判定結果的符號將所有點分類,根據判別式取值正負,來判別該點是或不是極值點。

在SURF算法中,用圖像像素l(x,y)即為函數值f(x,y),選用二階標準高斯函數作為濾波器,通過特定核間的卷積計算二階偏導數,這樣便能計算出H矩陣的三個矩陣元素L_xx,L_xy,L_yy 從而計算出H矩陣:




但是由于我們的特征點需要具備尺度無關性,所以在進行Hessian矩陣構造前,需要對其進行高斯濾波。

這樣,經過濾波后在進行Hessian的計算,其公式如下:




L(x,t)是一幅圖像在不同解析度下的表示,可以利用高斯核G(t)與圖像函數 I(x) 在點x的卷積來實現,其中高斯核G(t)




g(x)為高斯函數,t為高斯方差。通過這種方法可以為圖像中每個像素計算出其H行列式的決定值,并用這個值來判別特征點。為方便應用,Herbert Bay提出用近似值現代替L(x,t)。為平衡準確值與近似值間的誤差引入權值叫,權值隨尺度變化,則H矩陣判別式可表示為:




其中0.9是作者給出的一個經驗值,其實它是有一套理論計算的,具體去看surf的英文論文。


由于求Hessian時要先高斯平滑,然后求二階導數,這在離散的像素點是用模板卷積形成的,這2中操作合在一起用一個模板代替就可以了,比如說y方向上的模板如下:



該圖的左邊即用高斯平滑然后在y方向上求二階導數的模板,為了加快運算用了近似處理,其處理結果如右圖所示,這樣就簡化了很多。并且右圖可以采用積分圖來運算,大大的加快了速度,關于積分圖的介紹,可以去查閱相關的資料。

同理,x和y方向的二階混合偏導模板如下所示:




上面講的這么多只是得到了一張近似hessian行列式圖,這類似sift中的DOG圖,但是在金字塔圖像中分為很多層,每一層叫做一個octave,每一個octave中又有幾張尺度不同的圖片。在sift算法中,同一個octave層中的圖片尺寸(即大小)相同,但是尺度(即模糊程度)不同,而不同的octave層中的圖片尺寸大小也不相同,因為它是由上一層圖片降采樣得到的。在進行高斯模糊時,sift的高斯模板大小是始終不變的,只是在不同的octave之間改變圖片的大小。而在surf中,圖片的大小是一直不變的,不同的octave層得到的待檢測圖片是改變高斯模糊尺寸大小得到的,當然了,同一個octave中個的圖片用到的高斯模板尺度也不同。算法允許尺度空間多層圖像同時被處理,不需對圖像進行二次抽樣,從而提高算法性能。左圖是傳統方式建立一個如圖所示的金字塔結構,圖像的寸是變化的,并且運 算會反復使用高斯函數對子層進行平滑處理,右圖說明Surf算法使原始圖像保持不變而只改變濾波器大小。Surf采用這種方法節省了降采樣過程,其處理速度自然也就提上去了。其金字塔圖像如下所示:



2. 利用非極大值抑制初步確定特征點

  

? ? ? ? 此步驟和sift類似,將經過hessian矩陣處理過的每個像素點與其3維領域的26個點進行大小比較,如果它是這26個點中的最大值或者最小值,則保留下來,當做初步的特征點。檢測過程中使用與該尺度層圖像解析度相對應大小的濾波器進行檢測,以3×3的濾波器為例,該尺度層圖像中9個像素點之一圖2檢測特征點與自身尺度層中其余8個點和在其之上及之下的兩個尺度層9個點進行比較,共26個點,圖2中標記‘x’的像素點的特征值若大于周圍像素則可確定該點為該區域的特征點。

?

3. 精確定位極值點

  

? ? ? ? ?這里也和sift算法中的類似,采用3維線性插值法得到亞像素級的特征點,同時也去掉那些值小于一定閾值的點,增加極值使檢測到的特征點數量減少,最終只有幾個特征最強點會被檢測出來。

?

4. 選取特征點的主方向。

  

? ? ? ? 這一步與sift也大有不同。Sift選取特征點主方向是采用在特征點領域內統計其梯度直方圖,取直方圖bin值最大的以及超過最大bin值80%的那些方向做為特征點的主方向。

? ? ? ?而在surf中,不統計其梯度直方圖,而是統計特征點領域內的harr小波特征。即在特征點的領域(比如說,半徑為6s的圓內,s為該點所在的尺度)內,統計60度扇形內所有點的水平haar小波特征和垂直haar小波特征總和,haar小波的尺寸變長為4s,這樣一個扇形得到了一個值。然后60度扇形以一定間隔進行旋轉,最后將最大值那個扇形的方向作為該特征點的主方向。該過程的示意圖如下:






5. 構造surf特征點描述算子

  

? ? ? ? 在sift中,是在特征點周圍取16*16的鄰域,并把該領域化為4*4個的小區域,每個小區域統計8個方向梯度,最后得到4*4*8=128維的向量,該向量作為該點的sift描述子。

  在surf中,也是在特征點周圍取一個正方形框,框的邊長為20s(s是所檢測到該特征點所在的尺度)。該框帶方向,方向當然就是第4步檢測出來的主方向了。然后把該框分為16個子區域,每個子區域統計25個像素的水平方向和垂直方向的haar小波特征,這里的水平和垂直方向都是相對主方向而言的。該haar小波特征為水平方向值之和,水平方向絕對值之和,垂直方向之和,垂直方向絕對值之和。該過程的示意圖如下所示:


這樣每個小區域就有4個值,所以每個特征點就是16*4=64維的向量,相比sift而言,少了一半,這在特征匹配過程中會大大加快匹配速度。


6.結束語

Surf采用Henssian矩陣獲取圖像局部最值還是十分穩定的,但是在求主方向階段太過于依賴局部區域像素的梯度方向,有可能使得找到的主方向不準確,后面的特征向量提取以及匹配都嚴重依賴于主方向,即使不大偏差角度也可以造成后面特征匹配的放大誤差,從而匹配不成功;另外圖像金字塔的層取 得不足夠緊密也會使得尺度有誤差,后面的特征向量提取同樣依賴相應的尺度,發明者在這個問題上的折中解決方法是取適量的層然后進行插值。 Sift是一種只 利用到灰度性質的算法,忽略了色彩信息,后面又出現了幾種據說比Surf更穩定的描述器其中一些利用到了色彩信息,讓我們拭目以待吧。




代碼: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

來源:OpenCV/sample/c中的find_obj.cpp代碼

?

仔細注意:

1.定位部分:通過透視變換,畫出了目標在圖像中的位置,但是這么做會浪費很多時間,可以改進:

2.flann尋找最近的臨近Keypoints:

首先,利用圖像,構建多維查找樹,然后,利用Knn算法找到最近的Keypoints (KNN算法:http://blog.csdn.net/sangni007/article/details/7482890)

[cpp]view plaincopyprint?
  • //Constructs?a?nearest?neighbor?search?index?for?a?given?dataset??
  • //利用m_image構造?a?set?of?randomized?kd-trees?一系列隨機多維檢索樹;??
  • cv::flann::Index?flann_index(m_image,?cv::flann::KDTreeIndexParams(4));??//?using?4?randomized?kdtrees??
  • //利用Knn近鄰算法檢索m_object;結果存入?m_indices,?m_dists;??
  • flann_index.knnSearch(m_object,?m_indices,?m_dists,?2,?cv::flann::SearchParams(64)?);?//?maximum?number?of?leafs?checked??
  • flann算法有很多功能,

    文檔:http://opencv.itseez.com/modules/flann/doc/flann_fast_approximate_nearest_neighbor_search.html?highlight=flann#fast-approximate-nearest-neighbor-search

    ?

    [cpp]view plaincopyprint?
  • /*?
  • ?*?A?Demo?to?OpenCV?Implementation?of?SURF?
  • ?*?Further?Information?Refer?to?"SURF:?Speed-Up?Robust?Feature"?
  • ?*?Author:?Liu?Liu?
  • ?*?liuliu.1987+opencv@gmail.com?
  • ?*/??
  • #include?"opencv2/objdetect/objdetect.hpp"??
  • #include?"opencv2/features2d/features2d.hpp"??
  • #include?"opencv2/highgui/highgui.hpp"??
  • #include?"opencv2/calib3d/calib3d.hpp"??
  • #include?"opencv2/imgproc/imgproc_c.h"#include?<iostream>??
  • #include?<vector>??
  • #include?<stdio.h>using?namespace?std;??
  • void?help()??
  • {??
  • ????printf(??
  • ????????"This?program?demonstrated?the?use?of?the?SURF?Detector?and?Descriptor?using\n"??
  • ????????"either?FLANN?(fast?approx?nearst?neighbor?classification)?or?brute?force?matching\n"??
  • ????????"on?planar?objects.\n"??
  • ????????"Usage:\n"??
  • ????????"./find_obj?<object_filename>?<scene_filename>,?default?is?box.png??and?box_in_scene.png\n\n");??
  • ????return;??
  • }//?define?whether?to?use?approximate?nearest-neighbor?search??
  • #define?USE_FLANN??
  • IplImage*?image?=?0;double?compareSURFDescriptors(?const?float*?d1,?const?float*?d2,?double?best,?int?length?)??
  • {??
  • ????double?total_cost?=?0;??
  • ????assert(?length?%?4?==?0?);??
  • ????for(?int?i?=?0;?i?<?length;?i?+=?4?)??
  • ????{??
  • ????????double?t0?=?d1[i??]?-?d2[i??];??
  • ????????double?t1?=?d1[i+1]?-?d2[i+1];??
  • ????????double?t2?=?d1[i+2]?-?d2[i+2];??
  • ????????double?t3?=?d1[i+3]?-?d2[i+3];??
  • ????????total_cost?+=?t0*t0?+?t1*t1?+?t2*t2?+?t3*t3;??
  • ????????if(?total_cost?>?best?)??
  • ????????????break;??
  • ????}??
  • ????return?total_cost;??
  • }??
  • int?naiveNearestNeighbor(?const?float*?vec,?int?laplacian,??
  • ??????????????????????const?CvSeq*?model_keypoints,??
  • ??????????????????????const?CvSeq*?model_descriptors?)??
  • {??
  • ????int?length?=?(int)(model_descriptors->elem_size/sizeof(float));??
  • ????int?i,?neighbor?=?-1;??
  • ????double?d,?dist1?=?1e6,?dist2?=?1e6;??
  • ????CvSeqReader?reader,?kreader;??
  • ????cvStartReadSeq(?model_keypoints,?&kreader,?0?);??
  • ????cvStartReadSeq(?model_descriptors,?&reader,?0?);????for(?i?=?0;?i?<?model_descriptors->total;?i++?)??
  • ????{??
  • ????????const?CvSURFPoint*?kp?=?(const?CvSURFPoint*)kreader.ptr;??
  • ????????const?float*?mvec?=?(const?float*)reader.ptr;??
  • ?????CV_NEXT_SEQ_ELEM(?kreader.seq->elem_size,?kreader?);??
  • ????????CV_NEXT_SEQ_ELEM(?reader.seq->elem_size,?reader?);??
  • ????????if(?laplacian?!=?kp->laplacian?)??
  • ????????????continue;??
  • ????????d?=?compareSURFDescriptors(?vec,?mvec,?dist2,?length?);??
  • ????????if(?d?<?dist1?)??
  • ????????{??
  • ????????????dist2?=?dist1;??
  • ????????????dist1?=?d;??
  • ????????????neighbor?=?i;??
  • ????????}??
  • ????????else?if?(?d?<?dist2?)??
  • ????????????dist2?=?d;??
  • ????}??
  • ????if?(?dist1?<?0.6*dist2?)??
  • ????????return?neighbor;??
  • ????return?-1;??
  • }//用于找到兩幅圖像之間匹配的點對,并把匹配的點對存儲在?ptpairs?向量中,其中物體(object)圖像的特征點??
  • //及其相應的描述器(局部特征)分別存儲在?objectKeypoints?和?objectDescriptors,場景(image)圖像的特??
  • //征點及其相應的描述器(局部特征)分別存儲在?imageKeypoints和?imageDescriptors??
  • void?findPairs(?const?CvSeq*?objectKeypoints,?const?CvSeq*?objectDescriptors,??
  • ???????????const?CvSeq*?imageKeypoints,?const?CvSeq*?imageDescriptors,?vector<int>&?ptpairs?)??
  • {??
  • ????int?i;??
  • ????CvSeqReader?reader,?kreader;??
  • ????cvStartReadSeq(?objectKeypoints,?&kreader?);??
  • ????cvStartReadSeq(?objectDescriptors,?&reader?);??
  • ????ptpairs.clear();????for(?i?=?0;?i?<?objectDescriptors->total;?i++?)??
  • ????{??
  • ????????const?CvSURFPoint*?kp?=?(const?CvSURFPoint*)kreader.ptr;??
  • ????????const?float*?descriptor?=?(const?float*)reader.ptr;??
  • ????????CV_NEXT_SEQ_ELEM(?kreader.seq->elem_size,?kreader?);??
  • ????????CV_NEXT_SEQ_ELEM(?reader.seq->elem_size,?reader?);??
  • ????????int?nearest_neighbor?=?naiveNearestNeighbor(?descriptor,?kp->laplacian,?imageKeypoints,?imageDescriptors?);??
  • ????????if(?nearest_neighbor?>=?0?)??
  • ????????{??
  • ????????????ptpairs.push_back(i);??
  • ????????????ptpairs.push_back(nearest_neighbor);??
  • ????????}??
  • ????}??
  • }//Fast?Library?for?Approximate?Nearest?Neighbors(FLANN)??
  • void?flannFindPairs(?const?CvSeq*,?const?CvSeq*?objectDescriptors,??
  • ???????????const?CvSeq*,?const?CvSeq*?imageDescriptors,?vector<int>&?ptpairs?)??
  • {??
  • ?int?length?=?(int)(objectDescriptors->elem_size/sizeof(float));????cv::Mat?m_object(objectDescriptors->total,?length,?CV_32F);??
  • ?cv::Mat?m_image(imageDescriptors->total,?length,?CV_32F);??
  • ?//?copy?descriptors??
  • ????CvSeqReader?obj_reader;??
  • ?float*?obj_ptr?=?m_object.ptr<float>(0);??
  • ????cvStartReadSeq(?objectDescriptors,?&obj_reader?);??
  • ?//objectDescriptors?to?m_object???
  • ????for(int?i?=?0;?i?<?objectDescriptors->total;?i++?)??
  • ????{??
  • ????????const?float*?descriptor?=?(const?float*)obj_reader.ptr;??
  • ????????CV_NEXT_SEQ_ELEM(?obj_reader.seq->elem_size,?obj_reader?);??
  • ????????memcpy(obj_ptr,?descriptor,?length*sizeof(float));??
  • ????????obj_ptr?+=?length;??
  • ????}??
  • ?//imageDescriptors?to?m_image??
  • ????CvSeqReader?img_reader;??
  • ?float*?img_ptr?=?m_image.ptr<float>(0);??
  • ????cvStartReadSeq(?imageDescriptors,?&img_reader?);??
  • ????for(int?i?=?0;?i?<?imageDescriptors->total;?i++?)??
  • ????{??
  • ????????const?float*?descriptor?=?(const?float*)img_reader.ptr;??
  • ????????CV_NEXT_SEQ_ELEM(?img_reader.seq->elem_size,?img_reader?);??
  • ????????memcpy(img_ptr,?descriptor,?length*sizeof(float));??
  • ????????img_ptr?+=?length;??
  • ????}????//?find?nearest?neighbors?using?FLANN??
  • ????cv::Mat?m_indices(objectDescriptors->total,?2,?CV_32S);??
  • ????cv::Mat?m_dists(objectDescriptors->total,?2,?CV_32F);??
  • ?//Constructs?a?nearest?neighbor?search?index?for?a?given?dataset??
  • ?//利用m_image構造?a?set?of?randomized?kd-trees?一系列隨機多維檢索樹;??
  • ????cv::flann::Index?flann_index(m_image,?cv::flann::KDTreeIndexParams(4));??//?using?4?randomized?kdtrees??
  • ?//利用Knn近鄰算法檢索m_object;結果存入?m_indices,?m_dists;??
  • ????flann_index.knnSearch(m_object,?m_indices,?m_dists,?2,?cv::flann::SearchParams(64)?);?//?maximum?number?of?leafs?checked????int*?indices_ptr?=?m_indices.ptr<int>(0);??
  • ????float*?dists_ptr?=?m_dists.ptr<float>(0);??
  • ????for?(int?i=0;i<m_indices.rows;++i)???
  • ?{??
  • ?????if?(dists_ptr[2*i]<0.6*dists_ptr[2*i+1])??
  • ??{??
  • ??????ptpairs.push_back(i);??
  • ??????ptpairs.push_back(indices_ptr[2*i]);??
  • ?????}??
  • ????}??
  • }//用于尋找物體(object)在場景(image)中的位置,位置信息保存在參數dst_corners中,參數src_corners由物??
  • //體(object的width幾height等決定,其他部分參數如上findPairs??
  • /*?a?rough?implementation?for?object?location?*/??
  • int?locatePlanarObject(?const?CvSeq*?objectKeypoints,?const?CvSeq*?objectDescriptors,??
  • ?const?CvSeq*?imageKeypoints,?const?CvSeq*?imageDescriptors,??
  • ?const?CvPoint?src_corners[4],?CvPoint?dst_corners[4]?)??
  • {??
  • ????double?h[9];??
  • ????CvMat?_h?=?cvMat(3,?3,?CV_64F,?h);??
  • ????vector<int>?ptpairs;??
  • ????vector<CvPoint2D32f>?pt1,?pt2;??
  • ????CvMat?_pt1,?_pt2;??
  • ????int?i,?n;#ifdef?USE_FLANN??
  • ????flannFindPairs(?objectKeypoints,?objectDescriptors,?imageKeypoints,?imageDescriptors,?ptpairs?);??
  • #else??
  • ????findPairs(?objectKeypoints,?objectDescriptors,?imageKeypoints,?imageDescriptors,?ptpairs?);??
  • #endif????n?=?(int)(ptpairs.size()/2);??
  • ????if(?n?<?4?)??
  • ????????return?0;????pt1.resize(n);??
  • ????pt2.resize(n);??
  • ????for(?i?=?0;?i?<?n;?i++?)??
  • ????{??
  • ????????pt1[i]?=?((CvSURFPoint*)cvGetSeqElem(objectKeypoints,ptpairs[i*2]))->pt;??
  • ????????pt2[i]?=?((CvSURFPoint*)cvGetSeqElem(imageKeypoints,ptpairs[i*2+1]))->pt;??
  • ????}????_pt1?=?cvMat(1,?n,?CV_32FC2,?&pt1[0]?);??
  • ????_pt2?=?cvMat(1,?n,?CV_32FC2,?&pt2[0]?);??
  • ????if(?!cvFindHomography(?&_pt1,?&_pt2,?&_h,?CV_RANSAC,?5?))//計算兩個平面之間的透視變換??
  • ????????return?0;????for(?i?=?0;?i?<?4;?i++?)??
  • ????{??
  • ????????double?x?=?src_corners[i].x,?y?=?src_corners[i].y;??
  • ????????double?Z?=?1./(h[6]*x?+?h[7]*y?+?h[8]);??
  • ????????double?X?=?(h[0]*x?+?h[1]*y?+?h[2])*Z;??
  • ????????double?Y?=?(h[3]*x?+?h[4]*y?+?h[5])*Z;??
  • ????????dst_corners[i]?=?cvPoint(cvRound(X),?cvRound(Y));??
  • ????}????return?1;??
  • }??
  • ??
  • int?main(int?argc,?char**?argv)??
  • {??
  • ?//物體(object)和場景(scene)的圖像向來源??
  • ????const?char*?object_filename?=?argc?==?3???argv[1]?:?"D:/src.jpg";??
  • ????const?char*?scene_filename?=?argc?==?3???argv[2]?:?"D:/Demo.jpg";????help();????IplImage*?object?=?cvLoadImage(?object_filename,?CV_LOAD_IMAGE_GRAYSCALE?);??
  • ????IplImage*?image?=?cvLoadImage(?scene_filename,?CV_LOAD_IMAGE_GRAYSCALE?);??
  • ????if(?!object?||?!image?)??
  • ????{??
  • ????????fprintf(?stderr,?"Can?not?load?%s?and/or?%s\n",??
  • ????????????object_filename,?scene_filename?);??
  • ????????exit(-1);??
  • ????}??
  • ?//內存存儲器??
  • ????CvMemStorage*?storage?=?cvCreateMemStorage(0);????cvNamedWindow("Object",?1);??
  • ????cvNamedWindow("Object?Correspond",?1);????static?CvScalar?colors[]?=???
  • ????{??
  • ????????{{0,0,255}},??
  • ????????{{0,128,255}},??
  • ????????{{0,255,255}},??
  • ????????{{0,255,0}},??
  • ????????{{255,128,0}},??
  • ????????{{255,255,0}},??
  • ????????{{255,0,0}},??
  • ????????{{255,0,255}},??
  • ????????{{255,255,255}}??
  • ????};??
  • ????
  • ????IplImage*?object_color?=?cvCreateImage(cvGetSize(object),?8,?3);??
  • ????cvCvtColor(?object,?object_color,?CV_GRAY2BGR?);????CvSeq*?objectKeypoints?=?0,?*objectDescriptors?=?0;??
  • ????CvSeq*?imageKeypoints?=?0,?*imageDescriptors?=?0;??
  • ????int?i;??
  • ?/*?
  • ?CvSURFParams?params?=?cvSURFParams(500,?1);//SURF參數設置:閾值500,生成128維描述符?
  • ?cvSURFParams?函數原型如下:?
  • ?CvSURFParams?cvSURFParams(double?threshold,?int?extended)?
  • ?{?
  • ??CvSURFParams?params;?
  • ??params.hessianThreshold?=?threshold;?//?特征點選取的?hessian?閾值?
  • ??params.extended?=?extended;?//?是否擴展,1?-?生成128維描述符,0?-?64維描述符?
  • ??params.nOctaves?=?4;??
  • ??params.nOctaveLayers?=?2;?
  • ??return?params;?
  • ?}?
  • ?*/??
  • ?CvSURFParams?params?=?cvSURFParams(500,?1);????double?tt?=?(double)cvGetTickCount();//計時??
  • ?/*?
  • ?提取圖像中的特征點,函數原型:?
  • ?CVAPI(void)?cvExtractSURF(?const?CvArr*?img,?const?CvArr*?mask,?
  • ?CvSeq**?keypoints,?CvSeq**?descriptors,?
  • ?CvMemStorage*?storage,?CvSURFParams?params,?int?useProvidedKeyPts?CV_DEFAULT(0)?);?
  • ?第3、4個參數返回結果:特征點和特征點描述符,數據類型是指針的指針,?
  • ?*/??
  • ????cvExtractSURF(?object,?0,?&objectKeypoints,?&objectDescriptors,?storage,?params?);??
  • ????printf("Object?Descriptors:?%d\n",?objectDescriptors->total);????cvExtractSURF(?image,?0,?&imageKeypoints,?&imageDescriptors,?storage,?params?);??
  • ????printf("Image?Descriptors:?%d\n",?imageDescriptors->total);??
  • ????tt?=?(double)cvGetTickCount()?-?tt;????printf(?"Extraction?time?=?%gms\n",?tt/(cvGetTickFrequency()*1000.));??
  • ????CvPoint?src_corners[4]?=?{{0,0},?{object->width,0},?{object->width,?object->height},?{0,?object->height}};??
  • ????//定義感興趣的區域??
  • ?CvPoint?dst_corners[4];??
  • ????IplImage*?correspond?=?cvCreateImage(?cvSize(image->width,?object->height+image->height),?8,?1?);??
  • ?//設置感興趣區域??
  • ?//形成一大一小兩幅圖顯示在同一窗口??
  • ????cvSetImageROI(?correspond,?cvRect(?0,?0,?object->width,?object->height?)?);??
  • ????cvCopy(?object,?correspond?);??
  • ????cvSetImageROI(?correspond,?cvRect(?0,?object->height,?correspond->width,?correspond->height?)?);??
  • ????cvCopy(?image,?correspond?);??
  • ????cvResetImageROI(?correspond?);#ifdef?USE_FLANN??
  • ????printf("Using?approximate?nearest?neighbor?search\n");??
  • #endif??
  • ?//尋找物體(object)在場景(image)中的位置,并將信息保存(矩形框)??
  • ????if(?locatePlanarObject(?objectKeypoints,?objectDescriptors,?imageKeypoints,??
  • ????????imageDescriptors,?src_corners,?dst_corners?))??
  • ????{??
  • ????????for(?i?=?0;?i?<?4;?i++?)??
  • ????????{??
  • ????????????CvPoint?r1?=?dst_corners[i%4];??
  • ????????????CvPoint?r2?=?dst_corners[(i+1)%4];??
  • ???cvLine(?correspond,?cvPoint(r1.x,?r1.y+object->height?),??
  • ????cvPoint(r2.x,?r2.y+object->height?),?colors[8]?);??
  • ????????}??
  • ????}??
  • ?//定義并保存物體(object)在場景(image)圖形之間的匹配點對,并將其存儲在向量?ptpairs?中,之后可以對??
  • ?//ptpairs?進行操作??
  • ????vector<int>?ptpairs;??
  • #ifdef?USE_FLANN??
  • ????flannFindPairs(?objectKeypoints,?objectDescriptors,?imageKeypoints,?imageDescriptors,?ptpairs?);??
  • #else??
  • ????findPairs(?objectKeypoints,?objectDescriptors,?imageKeypoints,?imageDescriptors,?ptpairs?);??
  • #endif??
  • ?//顯示匹配結果(直線連接)??
  • ????for(?i?=?0;?i?<?(int)ptpairs.size();?i?+=?2?)??
  • ????{??
  • ????????CvSURFPoint*?r1?=?(CvSURFPoint*)cvGetSeqElem(?objectKeypoints,?ptpairs[i]?);??
  • ????????CvSURFPoint*?r2?=?(CvSURFPoint*)cvGetSeqElem(?imageKeypoints,?ptpairs[i+1]?);??
  • ????????cvLine(?correspond,?cvPointFrom32f(r1->pt),??
  • ????????????cvPoint(cvRound(r2->pt.x),?cvRound(r2->pt.y+object->height)),?colors[8]?);??
  • ????}????cvShowImage(?"Object?Correspond",?correspond?);??
  • ?//顯示物體(object)的所有特征點??
  • ????for(?i?=?0;?i?<?objectKeypoints->total;?i++?)??
  • ????{??
  • ????????CvSURFPoint*?r?=?(CvSURFPoint*)cvGetSeqElem(?objectKeypoints,?i?);??
  • ????????CvPoint?center;??
  • ????????int?radius;??
  • ????????center.x?=?cvRound(r->pt.x);??
  • ????????center.y?=?cvRound(r->pt.y);??
  • ????????radius?=?cvRound(r->size*1.2/9.*2);??
  • ????????cvCircle(?object_color,?center,?radius,?colors[0],?1,?8,?0?);??
  • ????}??
  • ????cvShowImage(?"Object",?object_color?);????cvWaitKey(0);?//釋放窗口所占用的內存??
  • ????cvDestroyWindow("Object");??
  • ????cvDestroyWindow("Object?Correspond");????return?0;??
  • }??
  • ????

  • ?

    ?

    ?


    from: http://blog.csdn.net/yangtrees/article/details/7482960

    《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

    總結

    以上是生活随笔為你收集整理的学习OpenCV——Surf(特征点篇)flann快速最近邻搜索算法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    在线观看理论 | 日韩特黄av| 久久婷婷五月综合色丁香 | 成人免费ⅴa | 天天操夜夜干 | 亚洲国产电影在线观看 | 不卡精品视频 | 超碰夜夜| 国产精品麻豆果冻传媒在线播放 | 婷婷综合五月天 | 免费成人在线观看 | 精品视频 | 久久综合给合久久狠狠色 | 色综合久久88色综合天天免费 | 黄色毛片一级 | 久久这里只有精品视频首页 | 91av短视频| 天天操天天摸天天爽 | 国产二级视频 | 字幕网资源站中文字幕 | 青青草国产精品 | 成人免费视频免费观看 | 天天干一干 | av不卡中文 | 国内久久视频 | 国产精品成人品 | 久久麻豆视频 | 婷婷成人亚洲综合国产xv88 | 欧美日韩国产一区二区三区 | 国产又粗又猛又色又黄视频 | 国产视频丨精品|在线观看 国产精品久久久久久久久久久久午夜 | 亚洲精品网址在线观看 | 国产精品久久久久永久免费看 | 亚洲国产偷 | 国产96精品 | 国产成人在线播放 | 午夜久久成人 | 欧美日韩一区二区视频在线观看 | 波多野结衣网址 | 国产色小视频 | 97国产在线 | 国产高清免费av | 久久久久久久影院 | 91精品欧美一区二区三区 | 日韩精品aaa | 天天操天天爽天天干 | 精品久久久久久国产 | 亚洲国产日韩欧美在线 | 亚洲乱码中文字幕综合 | 日韩有码在线播放 | 玖玖爱免费视频 | 涩五月婷婷 | 久99视频 | 国产精品一区二区在线播放 | 精品久久久久久久久久久久 | 亚洲aⅴ在线 | 日日操天天操狠狠操 | 一级一片免费看 | 中文字幕在线观看一区二区 | av福利免费 | 久久人人爽人人 | 久久午夜羞羞影院 | 午夜影视剧场 | 丁香婷婷亚洲 | 久久免费大片 | 国产精品v a免费视频 | 天天艹天天 | 97品白浆高清久久久久久 | 久久手机精品视频 | 日韩免费视频播放 | 99在线热播精品免费99热 | 久久人人97超碰国产公开结果 | 成年人黄色免费网站 | 国产特级毛片aaaaaa毛片 | 国产精品婷婷 | 国内精品久久久久久 | 久草在线免费电影 | 国产精品福利午夜在线观看 | 婷婷色网视频在线播放 | 色综合久久66 | 日韩精品久久久久久久电影竹菊 | 国产一区视频导航 | 在线国产激情视频 | 欧美精品中文在线免费观看 | 91九色蝌蚪国产 | 国产在线一区二区 | 亚洲国产资源 | 日韩精品免费专区 | 午夜丁香网 | 国产精品视频免费看 | 国产第一福利 | 97人人澡人人添人人爽超碰 | 亚洲精品国产精品国自产在线 | av大片免费 | 黄色大全在线观看 | 日本精品久久 | 国产探花 | 色视频国产直接看 | 亚洲人视频在线 | av电影一区二区三区 | 欧美日韩高清在线观看 | 五月婷婷六月丁香 | 日日天天干 | 久久一区二| 亚洲激情中文 | av成人在线网站 | 一区二区三区国产欧美 | 婷婷九月丁香 | 亚洲精欧美一区二区精品 | 黄色大片日本免费大片 | 日韩v在线 | www.综合网.com | 综合精品在线 | 中文字幕在线播放一区二区 | 国产精品国内免费一区二区三区 | 欧美日韩久久一区 | 成人免费观看视频网站 | 成片视频免费观看 | 久久久久久久久久久影视 | 九九综合在线 | 国内精品久久久久久久久久 | 日韩视频在线观看视频 | 在线观看免费av网 | 91在线视频在线观看 | av电影久久| 国产精品一区二区白浆 | 久久久免费观看完整版 | 国内精品久久久久久久影视简单 | 欧美日本国产在线观看 | 人人爽人人做 | 伊人婷婷| 91视频免费看 | 久久久久久久久久亚洲精品 | 免费观看视频黄 | 五月婷婷激情六月 | 欧美日韩一区久久 | 欧美福利视频 | 狠狠狠色丁香婷婷综合久久88 | 一区二区精品在线 | 在线电影日韩 | 久久草草影视免费网 | 韩国一区二区av | 国产成人亚洲精品自产在线 | 丰满少妇高潮在线观看 | 日韩二区三区在线 | 色婷婷电影网 | 国产小视频在线观看 | 亚洲欧美精品在线 | 久久综合一本 | 亚洲视频在线播放 | 国产精品久久久久一区二区三区 | 久久久久蜜桃 | 国产成人99av超碰超爽 | 婷婷视频在线播放 | 久久久精品网 | 韩日视频在线 | 最新婷婷色 | av日韩av| 国产一区二区高清视频 | 久久只精品99品免费久23小说 | 国产精品理论视频 | 四虎在线免费观看视频 | www.com.黄| 夜夜干天天操 | 中中文字幕av| 欧美日韩精品免费观看 | 99热这里只有精品国产首页 | 欧美精品色| 视频一区二区国产 | 色天天久久 | 成年人免费在线看 | 成人观看| 婷婷中文在线 | 亚洲高清视频一区二区三区 | 婷婷色在线 | 亚洲经典视频在线观看 | 91麻豆精品国产午夜天堂 | 综合网天天 | 亚洲视屏| 国产在线观看免费 | 黄视频色网站 | 成人在线观看你懂的 | 日日天天 | 免费在线观看av不卡 | 狠狠撸电影 | 91九色视频在线观看 | 国产成人一区二区三区久久精品 | 国产精品久久久久婷婷二区次 | 欧美午夜视频在线 | 久久久久 免费视频 | 91喷水 | 欧美日韩午夜 | 久久露脸国产精品 | 夜色.com| 免费涩涩网站 | 成人在线超碰 | 欧美在线视频一区二区三区 | 九九九热精品免费视频观看网站 | 天天爽天天碰狠狠添 | 91视频链接 | 正在播放国产一区二区 | 一区二区三区精品在线视频 | 中文字幕色综合网 | av在线免费在线观看 | 亚洲另类视频 | 国产精品一区免费在线观看 | 成人三级视频 | 91av片| 久久国产一二区 | a√天堂资源| 狠狠狠色丁香婷婷综合激情 | 中文字幕在线观看第一区 | 国产最顶级的黄色片在线免费观看 | 久久久久久网址 | 国产成人精品999在线观看 | 国产免费av一区二区三区 | 亚洲国产精彩中文乱码av | 久久久久久久久久影院 | 久草视频在线观 | 国产视频资源在线观看 | 国产在线播放不卡 | 日本高清免费中文字幕 | 亚洲精品在线观看网站 | 久久国产欧美日韩 | 国产精品手机看片 | 欧美日韩精品区 | 国产精品美女免费 | 午夜av免费看| 99久久久久久久久 | av电影在线观看 | 综合网五月天 | 久久亚洲私人国产精品va | 日韩激情久久 | 狠狠色丁香久久综合网 | 日韩高清在线看 | 国产高清日韩欧美 | 国产高清免费在线观看 | 国产一区二区在线看 | 国产视频1区2区3区 久久夜视频 | 久久av网址| 国产日女人 | 深爱婷婷久久综合 | 97在线成人 | 久久躁日日躁aaaaxxxx | 国产精品毛片久久久 | 日韩一区二区免费在线观看 | 玖玖在线免费视频 | 亚洲免费国产视频 | 美女视频黄的免费的 | 久久一区二区三区日韩 | 成人综合日日夜夜 | 国产毛片久久久 | 久久成人国产精品入口 | av网址最新 | 高清一区二区三区 | 91亚洲影院 | 麻豆播放| 中文字幕乱码亚洲精品一区 | 久草精品视频在线播放 | 国产日韩精品在线观看 | 91麻豆国产 | 在线 高清 中文字幕 | 亚洲成人国产精品 | 成人毛片在线观看视频 | 日韩中文字| 国产精品中文字幕在线 | 国产成人精品一区二区在线 | 激情av在线资源 | 开心激情网五月天 | 99成人在线视频 | 友田真希av | 天天操天天操天天操天天操天天操 | 免费高清无人区完整版 | 91精品一区二区三区久久久久久 | 亚洲成人av片 | av不卡免费在线观看 | 波多野结衣在线中文字幕 | 国产69久久 | 日韩中文字幕a | 夜夜爽88888免费视频4848 | 黄色大片网 | 国产成人一区三区 | 国产v在线播放 | 碰天天操天天 | 中文有码在线 | 最近久乱中文字幕 | 久久精品99国产国产精 | 欧美乱大交 | 国产精品区二区三区日本 | 日韩精品一区二区三区免费观看视频 | 亚洲另类xxxx| 四虎国产精品免费观看视频优播 | 日日日视频 | 99精品视频免费观看 | 狠狠干夜夜 | 日韩精品第一区 | 日韩中文字幕第一页 | 在线国产片 | 国产精品久久久久久久久费观看 | 久久久91精品国产一区二区精品 | 国产午夜精品久久 | 国产玖玖精品视频 | 中文字幕乱码亚洲精品一区 | 国产一级片一区二区三区 | 久久情侣偷拍 | av丁香| 97av在线视频免费播放 | av电影久久 | 亚洲精品在线一区二区 | 亚洲精品综合一区二区 | 亚洲更新最快 | 欧美精品一区二区在线观看 | 国产区免费在线 | 久久av一区二区三区亚洲 | 亚洲精品人人 | 亚洲午夜精品久久久久久久久久久久 | 久久免费精品一区二区三区 | 久久电影中文字幕视频 | 中文字幕黄色av | 99人久久精品视频最新地址 | 婷婷久久五月 | 婷婷久久亚洲 | 亚洲人成影院在线 | 超碰在线最新地址 | 精品国产一二三四区 | avcom在线| 久久中文字幕在线视频 | 夜夜操天天干, | 日本精品在线视频 | 亚洲激情国产精品 | 五月亚洲 | 欧美男男tv网站 | 人人澡人人模 | 麻豆系列在线观看 | 国产一级二级在线观看 | 激情图片久久 | 97看片吧| 狠狠色2019综合网 | 国内一级片在线观看 | 波多野结衣亚洲一区二区 | 色欧美成人精品a∨在线观看 | 免费成人在线视频网站 | 国产一区二区手机在线观看 | 久久伦理 | av免费看在线 | 91亚洲影院| 亚洲视频axxx | 国产精品1区2区3区 久久免费视频7 | 成人一级在线 | 国产成人精品一区二区三区网站观看 | 成人午夜av电影 | 免费在线播放av电影 | 久久久久久久久久伊人 | 精品福利网站 | 一级欧美日韩 | 成人在线观看网址 | 成人理论在线观看 | 精品福利片 | 黄色小网站在线观看 | 9在线观看免费高清完整版在线观看明 | 狠狠操综合| 中国一级片视频 | 在线小视频 | 久久情侣偷拍 | av在线播放免费 | 69国产成人综合久久精品欧美 | av在线成人 | 97av免费视频 | 99久久精品国产亚洲 | 91精品国产三级a在线观看 | 久免费视频 | 五月天久久综合 | 日本女人的性生活视频 | 天天摸夜夜添 | 亚洲综合激情网 | 欧美在线一级片 | 精品超碰 | 亚洲一二三久久 | 久久精品xxx | 日本中文字幕高清 | 在线看毛片网站 | 99这里都是精品 | 五月婷婷开心 | 久久久久久国产精品免费 | 一区二区精品久久 | 亚洲狠狠丁香婷婷综合久久久 | 国产精品久久99精品毛片三a | 色综合www | 在线观看的a站 | 日韩高清精品一区二区 | 99热这里只有精品国产首页 | 欧洲精品视频一区二区 | 久久国产精品免费观看 | 最近中文字幕mv免费高清在线 | 亚洲激情视频 | 久草在线视频网站 | 中文字幕观看在线 | 81精品国产乱码久久久久久 | 日本99精品 | 日韩视频三区 | 性色在线视频 | 日本99热 | 一区二区三区免费在线观看视频 | 国产91精品一区二区麻豆网站 | 欧美激情综合五月色丁香 | 国产福利av在线 | a级国产乱理论片在线观看 特级毛片在线观看 | 国产中文在线视频 | 在线国产日本 | 日韩中文字幕视频在线 | 色午夜影院 | 国产精品综合av一区二区国产馆 | 免费日韩在线 | 一区二区不卡 | 国产精品一区二区三区免费看 | 色噜噜色噜噜 | 操处女逼 | 69夜色精品国产69乱 | 在线播放你懂 | 国产精品免费视频观看 | 免费观看一级特黄欧美大片 | 人人草人 | 中文字幕成人 | 久久免费观看少妇a级毛片 久久久久成人免费 | 九九九视频精品 | 中文字幕久久亚洲 | 精品一区电影 | 伊人六月| 婷婷六月综合网 | 97在线观看免费高清完整版在线观看 | 久久er99热精品一区二区三区 | 激情av综合| 欧美三级免费 | 成人av在线观 | 久久99精品久久久久蜜臀 | 午夜精品在线看 | 九九亚洲视频 | 超碰97人人射妻 | 久久无码精品一区二区三区 | 黄色高清视频在线观看 | 久久精品综合一区 | 国产免费视频一区二区裸体 | 精品欧美一区二区三区久久久 | 97免费在线观看 | 日日日操操 | 日韩中文字幕91 | 91在线观看黄| 久久久亚洲成人 | 狠狠躁18三区二区一区ai明星 | 92国产精品久久久久首页 | 麻豆一区在线观看 | 国产精品videossex国产高清 | 日韩羞羞 | 国产精品毛片久久久久久 | 青青草在久久免费久久免费 | 日日夜色| 91刺激视频 | 久久视频一区二区 | 国产免费又粗又猛又爽 | 国产精品成人国产乱 | 精品久久精品 | 欧美日韩免费在线观看视频 | 成人黄色在线 | 天天干天天操天天干 | 色婷婷六月天 | 91亚洲综合 | 精品少妇一区二区三区在线 | 国产精品久久久久久久久久99 | 天天操网站 | 免费观看完整版无人区 | 日产乱码一二三区别在线 | 中文字幕电影高清在线观看 | 免费黄色在线网址 | 亚洲精品乱码久久久久久久久久 | 久久久久久久久久久高潮一区二区 | 国内久久精品 | 91激情在线视频 | 福利视频一二区 | 九九久久成人 | 国产三级精品三级在线观看 | 久久成人亚洲欧美电影 | 亚洲成av人片在线观看无 | 久久久av免费 | 中文字幕亚洲五码 | 国产精品精品 | 国产午夜在线观看视频 | 国产精品免费久久久 | 五月婷婷欧美视频 | av免费电影在线 | 日韩专区在线观看 | 成人性生交视频 | 在线97 | 最近日韩免费视频 | 美女网站在线播放 | 久久亚洲视频 | 992tv人人网tv亚洲精品 | 97国产情侣爱久久免费观看 | 欧美激情视频久久 | 一级黄色在线免费观看 | 日韩av在线不卡 | 99久久日韩精品免费热麻豆美女 | 亚洲精品日韩在线观看 | 日本3级在线观看 | 91视频久久久久 | 亚州精品一二三区 | 五月天综合婷婷 | 午夜丁香视频在线观看 | 亚洲国产中文字幕 | 亚洲激情视频 | 91天堂在线观看 | 国产在线自 | 精品国产免费观看 | 久久一区二区免费视频 | 四虎影视成人精品国库在线观看 | 亚洲片在线观看 | 国产无限资源在线观看 | 日日干激情五月 | 九色琪琪久久综合网天天 | 色偷偷人人澡久久超碰69 | 97色资源 | 色综合五月天 | 久久亚洲在线 | 欧美性做爰猛烈叫床潮 | 日韩欧美在线观看一区二区三区 | 美国人与动物xxxx | 91成人短视频在线观看 | www欧美xxxx | 精品国产欧美一区二区三区不卡 | 在线免费试看 | 日韩色视频在线观看 | 欧美亚洲国产精品久久高清浪潮 | 五月天久久狠狠 | 亚洲精品乱码久久久久久写真 | 五月天激情婷婷 | 精品国产成人在线 | 蜜臀久久99精品久久久无需会员 | 在线播放国产一区二区三区 | 91在线入口 | 97超在线视频 | 99久高清在线观看视频99精品热在线观看视频 | 91大神dom调教在线观看 | 中文在线| 免费一级片视频 | 国产精品一区二区精品视频免费看 | 综合网五月天 | 一区二区三区四区五区在线 | 国产精品免费视频久久久 | 日韩黄色大片在线观看 | 亚洲成人资源在线观看 | 伊人狠狠色丁香婷婷综合 | 成人久久视频 | 久久免费播放 | 91精品视屏 | 日韩免费中文 | 国产一级精品在线观看 | 国产91勾搭技师精品 | 激情五月伊人 | 天天操天天舔天天干 | 极品久久久久 | 欧美天堂视频在线 | 日韩激情片在线观看 | 天天草天天干天天射 | 久久精品老司机 | 国产精品久久久久久久久久直播 | www久久久久 | 91视频在线播放视频 | 中文视频在线播放 | 在线日本看片免费人成视久网 | 亚州天堂 | 91精品在线播放 | 国产高清av | 国产视频99 | 伊人久久婷婷 | 日韩系列 | 久久一区二区三区超碰国产精品 | 在线免费视 | 亚洲激情在线观看 | 国产第一页精品 | 国产97视频在线 | 在线色亚洲 | 国产精品第一视频 | 成人播放器 | 国产又粗又猛又黄 | 99精品久久久久 | 精品影院一区二区久久久 | 久久99久久99精品 | 国产精品一区二区免费在线观看 | aaa日本高清在线播放免费观看 | 久久中文精品视频 | www.com黄 | 久久精品久久99精品久久 | 日韩区欠美精品av视频 | 国产高清视频免费观看 | 久久日本视频 | 免费观看全黄做爰大片国产 | 91福利试看 | 亚洲成成品网站 | 精品96久久久久久中文字幕无 | 国产精品刺激对白麻豆99 | 国产一级黄色片免费看 | 97网在线观看 | 国产精品免费久久久久影院仙踪林 | 黄色在线小网站 | 中文字幕在线观看一区 | 国产999免费视频 | 91爱爱视频 | 色婷婷五| 久久久久国产成人精品亚洲午夜 | 西西444www大胆高清图片 | 国内精品视频在线播放 | 激情图片久久 | 色激情在线 | 日韩av一区二区三区 | 手机版av在线 | 手机成人在线电影 | 人九九精品 | 美女网站色| 亚洲成人在线免费 | 日韩精品免费一区二区在线观看 | 91超在线| 欧美日韩免费看 | 日韩av一区二区在线影视 | 久久久久久久影视 | 8x8x在线观看视频 | 免费亚洲黄色 | 免费手机黄色网址 | 青草视频在线 | 久久国产精品99久久久久 | 国产首页| 亚洲第一区在线播放 | 国产综合久久 | a视频在线看 | 六月色播| 精品久久久久久一区二区里番 | 久久综合射 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 免费观看性生交大片3 | 久久久久久国产精品久久 | 99精品免费久久久久久日本 | 免费看精品久久片 | 美女网站视频久久 | 国产在线更新 | 日韩免费视频播放 | 黄色录像av | 久久天天躁夜夜躁狠狠85麻豆 | 国产精品系列在线 | 精品在线亚洲视频 | 波多野结衣电影久久 | 91精品国产综合久久婷婷香蕉 | 国内综合精品午夜久久资源 | 亚洲欧美国产日韩在线观看 | 精品国产精品一区二区夜夜嗨 | 免费黄色a网站 | 亚洲精品乱码久久久久久高潮 | 亚洲精品视频 | 中文字幕在线看视频 | 国产成人61精品免费看片 | 国产涩涩网站 | 狠狠色丁香婷婷 | 国产成人精品久久亚洲高清不卡 | 免费黄色av| 国产欧美精品一区二区三区 | 97超碰中文字幕 | 97av在线视频免费播放 | 成人片在线播放 | 韩国精品在线 | 91精品视频免费在线观看 | 91人网站 | 欧美爽爽爽 | 成人一级| 五月天激情在线 | 81国产精品久久久久久久久久 | 黄色毛片在线 | 日本中文乱码卡一卡二新区 | 国产日韩精品在线观看 | 久久久久久久久久久久久影院 | 精品欧美乱码久久久久久 | 午夜精品福利一区二区三区蜜桃 | 免费在线国产视频 | 91精品视频导航 | 日日夜夜精品网站 | 久久99国产综合精品免费 | 99热国产精品| 欧美日韩性视频 | 国产小视频在线免费观看 | 免费久久久 | 亚洲精品中文字幕在线观看 | 婷婷中文字幕在线观看 | 成人黄在线观看 | 亚洲视频在线播放 | 丝袜精品视频 | 2024国产精品视频 | 国产免费国产 | 午夜视频在线观看一区二区三区 | 国产99中文字幕 | 婷婷视频导航 | 91亚洲网站| 久久试看 | 黄色特级片 | 9久久精品| 亚洲一区欧美激情 | 国产精品9999 | 麻豆精品在线 | 操操综合网 | 中文字幕4 | 日韩一区二区免费播放 | 久久99视频免费观看 | 国产亚洲精品久久久久久 | 天天操夜夜干 | 国产精品美女久久久久久久久久久 | 在线播放日韩av | 一区二区久久久久 | 免费黄在线观看 | 午夜色性片 | av专区在线 | 欧美91成人网 | 男女啪啪视屏 | 久草99| 国产亚洲精品xxoo | 亚洲精品视频网站在线观看 | 欧美日韩在线视频一区 | 久草视频在线观 | 国产小视频在线观看 | 日韩视频二区 | 夜夜躁日日躁狠狠躁 | 国产亚洲精品女人久久久久久 | 欧美激情操| 久久这里只精品 | 在线观看日韩国产 | 97精品在线视频 | 色www精品视频在线观看 | 亚洲资源一区 | 久艹视频在线免费观看 | 国产69久久久| 日韩国产高清在线 | 精品96久久久久久中文字幕无 | 国产精品18久久久久久vr | 少妇bbbb| 超碰97在线人人 | 亚洲国产精品小视频 | 韩国精品一区二区三区六区色诱 | 视频一区在线播放 | 亚洲精品在线一区二区三区 | 久久久99精品免费观看 | 久草99| 日韩影片在线观看 | 久草免费电影 | av福利在线 | 一区二区伦理 | 日韩精品一区二区三区在线视频 | 天天插天天狠 | 国产成人一区在线 | www.福利| 天天操天天操天天操天天操天天操 | 看国产黄色片 | 天天操天天操天天操天天 | 丁香午夜 | 欧美日韩在线视频一区二区 | 在线观看国产区 | 欧美成人xxx | 久久999久久 | 久久成人精品视频 | 99热精品久久 | 深爱五月激情五月 | 国产无吗一区二区三区在线欢 | 香蕉视频在线视频 | 亚洲在线成人精品 | av成人免费在线看 | 久久精品视频播放 | 亚洲国产精久久久久久久 | 美女免费av| 欧美日韩国产精品一区 | 国产精品理论片在线播放 | 国产视频黄 | 国产一级视屏 | 精品一区二区三区香蕉蜜桃 | 久久久www成人免费精品张筱雨 | 亚洲精品九九 | 国产午夜亚洲精品 | 五月色丁香| www.xxxx欧美| 99精品欧美一区二区三区黑人哦 | 天天干com | 九九国产精品视频 | 亚洲综合激情网 | 黄色动态图xx | 一区二区三区免费在线观看视频 | 久久久国产一区二区三区四区小说 | 国产高清av在线播放 | 亚洲女同ⅹxx女同tv | 国产福利a | 玖玖在线免费视频 | 在线观看中文字幕一区二区 | 久久免费公开视频 | 亚洲黄色激情小说 | 久久午夜影院 | 天堂入口网站 | 亚洲精品久久久久久久蜜桃 | 久久久久久国产精品久久 | 日韩欧美一区二区在线 | 就色干综合 | 西西444www大胆高清视频 | 中文字幕在线观看日本 | 成人va天堂| 在线观看中文字幕dvd播放 | 成人av电影免费 | 特级西西人体444是什么意思 | 91探花系列在线播放 | 美女福利视频一区二区 | 五月天色站 | 国产中文欧美日韩在线 | 超碰在线94 | 国产一区麻豆 | 最近免费中文视频 | 在线电影91 | 久久综合操 | 国产91成人在在线播放 | 97超碰人人网 | 欧美日韩中文字幕视频 | av在线在线| 色综合天天视频在线观看 | 91精品国产91热久久久做人人 | 天天狠狠操 | 国产在线不卡视频 | 国产一级二级在线 | 亚洲乱码在线观看 | 久久97久久97精品免视看 | 在线看国产精品 | 很黄很污的视频网站 | 最近的中文字幕大全免费版 | 日韩欧美在线第一页 | 91视视频在线直接观看在线看网页在线看 | 国产一级视屏 | 中文伊人 | 在线 影视 一区 | 中文字幕丝袜一区二区 | 一区 在线 影院 | 在线观看欧美成人 | 久久不见久久见免费影院 | 在线观看日韩中文字幕 | 91久久久久久国产精品 | 精品国产视频一区 | 国产99久久久欧美黑人 | 三上悠亚一区二区在线观看 | 手机av资源 | 久久精品视频3 | 国产美女精品 | 午夜精品成人一区二区三区 | 狠狠狠狠狠狠狠狠 | 色多多视频在线观看 | 中文字幕在线观看网 | 欧美日韩视频精品 | 国产精品毛片一区二区在线 | 精品在线观看免费 | 中文字幕在线一区观看 | 九九九九精品九九九九 | 九九免费在线观看视频 | 黄色免费电影网站 | 日本中文字幕网 | 狠狠躁夜夜躁人人爽超碰91 | 99re视频在线观看 | 日韩一区二区三区免费电影 | 狠狠gao| 国产日产精品久久久久快鸭 | 又黄又爽的视频在线观看网站 | 亚洲国产中文在线观看 | 丁香花在线观看视频在线 | 99久热在线精品视频观看 | 久久久2o19精品 | 免费高清看电视网站 | 国产99久久99热这里精品5 | 精品国产乱码久久久久久浪潮 | 欧美亚洲精品在线观看 | 日日夜夜人人精品 | 国产视频精品网 | 国产免费不卡 | 亚洲精品国产成人 | 97人人模人人爽人人喊网 | 日日干天天操 | 91精品福利在线 | 国产精品一区二区三区电影 | 二区三区视频 | 日韩性xxxx| 91精品一区二区在线观看 | 深夜免费网站 | 久久国产免费 | 热久精品 | 午夜精品福利一区二区三区蜜桃 | av性网站 | 97电影网手机版 | 深夜免费福利视频 | 亚洲精品久久在线 | 日韩精品高清不卡 | 五月激情av | 亚洲国产精品久久久 | 欧美激情综合五月色丁香 | 天天操天天射天天插 | 成人国产电影在线观看 | 国内精品久久天天躁人人爽 | 黄色电影网站在线观看 | 中文字幕丰满人伦在线 | 日本精品视频一区二区 | 日韩免费视频线观看 | 亚洲专区在线播放 | 国产精品女同一区二区三区久久夜 | 欧美日韩精品在线一区二区 | 成人久久18免费网站麻豆 | 麻豆视频入口 | 婷婷色亚洲 | 中文字幕成人在线 | 99这里都是精品 | 婷婷.com | 日韩在线免费不卡 | 99热99re6国产在线播放 | 美女久久一区 | 456成人精品影院 | 免费看的国产视频网站 | a视频在线 | 精品国产一区二区三区免费 | 欧美一级日韩三级 | 日韩成人精品在线观看 | 亚洲人人射 | 国产中文在线字幕 | 天天做天天爱天天爽综合网 | 97电影手机| 国产精品一区二区三区四 | 人人超碰在线 | 中文日韩在线 | 成人免费视频网址 | 国产1级毛片 | 字幕网av | 婷婷久久网站 | 亚洲成色777777在线观看影院 | 五月激情丁香 | 成人 国产 在线 | 欧美一级久久 | 免费观看的黄色片 | 亚洲精品美女在线观看播放 | 中文字幕有码在线播放 | 日本护士三级少妇三级999 | 亚洲乱亚洲乱亚洲 | 国产一二三四在线视频 | 日韩视频在线不卡 | 国产精品久久亚洲 | 91自拍91 | 在线观看91av | 国产视频1| 人人爽人人搞 | 国产精品免费视频久久久 | 亚洲综合色视频在线观看 | 精品影院一区二区久久久 | 欧美男同视频网站 | 久久久久久久久久久久久久免费看 | 国产精品永久免费观看 | 91中文字幕 | 久久国产精品99国产 | 国产小视频精品 | 亚洲激情综合网 | 国产高清视频色在线www | 国产97在线看 | 久久艹影院 | 91成年视频 | 久久黄色免费 | 国产精品人成电影在线观看 | 久草网站在线观看 | 波多野结衣在线观看一区 | 国产视频一二区 | 欧美另类xxx| 久久久免费看 | 天天爱天天射天天干天天 | 久久在线免费视频 | 日韩成人xxxx | 在线日韩中文 | 91专区在线观看 | 深爱激情久久 | 国产精品一区二区电影 | 日韩中文字幕91 | 国产麻豆剧传媒免费观看 | 免费福利小视频 | 日韩激情视频 | 天堂久久电影网 | 天堂网在线视频 | 国产午夜小视频 | 日韩欧美精品一区 | 欧美激情h | 天天色天天射综合网 | 国产白浆在线观看 | 91成年视频 | 二区中文字幕 | 天天干天天操天天爱 | 亚洲精品一区二区网址 | 亚洲视频在线播放 | 免费在线观看的av网站 | 日韩中文字幕视频在线 | 久草免费电影 | 香蕉免费在线 | 国产成人一区三区 | 最新av网址在线观看 |