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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

OpenCV学习笔记(六)(七)(八)(九)(十)

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV学习笔记(六)(七)(八)(九)(十) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

OpenCV學習筆記(六)——對XML和YAML文件實現I/O操作


1. XML、YAML文件的打開和關閉

XML\YAML文件在OpenCV中的數據結構為FileStorage,打開操作例如:

[cpp]?view plain?copy
  • string?filename?=?"I.xml";??
  • FileStorage?fs(filename,?FileStorage::WRITE);??
  • \\...??
  • fs.open(filename,?FileStorage::READ);??

  • 文件關閉操作會在FileStorage結構銷毀時自動進行,但也可調用如下函數實現

    [cpp]?view plain?copy
  • fs.release();??

  • 2.文本和數字的輸入和輸出

    寫入文件使用 ?<< ?運算符,例如:

    [cpp]?view plain?copy
  • fs?<<?"iterationNr"?<<?100;??

  • 讀取文件,使用 >> 運算符,例如

    [cpp]?view plain?copy
  • int?itNr;??
  • fs["iterationNr"]?>>?itNr;??
  • itNr?=?(int)?fs["iterationNr"];??


  • 3. OpenCV數據結構的輸入和輸出,和基本的C++形式相同

    [cpp]?view plain?copy
  • Mat?R?=?Mat_<uchar?>::eye?(3,?3),??
  • T?=?Mat_<double>::zeros(3,?1);??
  • fs?<<?"R"?<<?R;?//?Write?cv::Mat??
  • fs?<<?"T"?<<?T;??
  • fs["R"]?>>?R;?//?Read?cv::Mat??
  • fs["T"]?>>?T;??


  • 4. vector(arrays) 和 maps的輸入和輸出

    vector要注意在第一個元素前加上“[”,在最后一個元素前加上"]"。例如:

    [cpp]?view plain?copy
  • fs?<<?"strings"?<<?"[";?//?text?-?string?sequence??
  • fs?<<?"image1.jpg"?<<?"Awesomeness"?<<?"baboon.jpg";??
  • fs?<<?"]";?//?close?sequence??

  • 對于map結構的操作使用的符號是"{"和"}",例如:

    [cpp]?view plain?copy
  • fs?<<?"Mapping";?//?text?-?mapping??
  • fs?<<?"{"?<<?"One"?<<?1;??
  • fs?<<?"Two"?<<?2?<<?"}";??

  • 讀取這些結構的時候,會用到FileNode和FileNodeIterator數據結構。對FileStorage類的[]操作符會返回FileNode數據類型,對于一連串的node,可以使用FileNodeIterator結構,例如:

    [cpp]?view plain?copy
  • FileNode?n?=?fs["strings"];?//?Read?string?sequence?-?Get?node??
  • if?(n.type()?!=?FileNode::SEQ)??
  • {??
  • cerr?<<?"strings?is?not?a?sequence!?FAIL"?<<?endl;??
  • return?1;??
  • }??
  • FileNodeIterator?it?=?n.begin(),?it_end?=?n.end();?//?Go?through?the?node??
  • for?(;?it?!=?it_end;?++it)??
  • cout?<<?(string)*it?<<?endl;??


  • 5. 讀寫自己的數據結構

    這部分比較復雜,參考最后的實例中的MyData結構自己領悟吧

    最后,我這里上一個實例,供大家參考。

    源文件里填入如下代碼:

    [cpp]?view plain?copy
  • #include?<opencv2/core/core.hpp>??
  • #include?<iostream>??
  • #include?<string>??
  • ??
  • using?namespace?cv;??
  • using?namespace?std;??
  • ??
  • void?help(char**?av)??
  • {??
  • ????cout?<<?endl???
  • ????????<<?av[0]?<<?"?shows?the?usage?of?the?OpenCV?serialization?functionality."?????????<<?endl??
  • ????????<<?"usage:?"??????????????????????????????????????????????????????????????????????<<?endl??
  • ????????<<??av[0]?<<?"?outputfile.yml.gz"?????????????????????????????????????????????????<<?endl??
  • ????????<<?"The?output?file?may?be?either?XML?(xml)?or?YAML?(yml/yaml).?You?can?even?compress?it?by?"??
  • ????????<<?"specifying?this?in?its?extension?like?xml.gz?yaml.gz?etc...?"??????????????????<<?endl??
  • ????????<<?"With?FileStorage?you?can?serialize?objects?in?OpenCV?by?using?the?<<?and?>>?operators"?<<?endl??
  • ????????<<?"For?example:?-?create?a?class?and?have?it?serialized"?????????????????????????<<?endl??
  • ????????<<?"?????????????-?use?it?to?read?and?write?matrices."????????????????????????????<<?endl;??
  • }??
  • ??
  • class?MyData??
  • {??
  • public:??
  • ????MyData()?:?A(0),?X(0),?id()??
  • ????{}??
  • ????explicit?MyData(int)?:?A(97),?X(CV_PI),?id("mydata1234")?//?explicit?to?avoid?implicit?conversion??
  • ????{}??
  • ????void?write(FileStorage&?fs)?const????????????????????????//Write?serialization?for?this?class??
  • ????{??
  • ????????fs?<<?"{"?<<?"A"?<<?A?<<?"X"?<<?X?<<?"id"?<<?id?<<?"}";??
  • ????}??
  • ????void?read(const?FileNode&?node)??????????????????????????//Read?serialization?for?this?class??
  • ????{??
  • ????????A?=?(int)node["A"];??
  • ????????X?=?(double)node["X"];??
  • ????????id?=?(string)node["id"];??
  • ????}??
  • public:???//?Data?Members??
  • ????int?A;??
  • ????double?X;??
  • ????string?id;??
  • };??
  • ??
  • //These?write?and?read?functions?must?be?defined?for?the?serialization?in?FileStorage?to?work??
  • void?write(FileStorage&?fs,?const?std::string&,?const?MyData&?x)??
  • {??
  • ????x.write(fs);??
  • }??
  • void?read(const?FileNode&?node,?MyData&?x,?const?MyData&?default_value?=?MyData()){??
  • ????if(node.empty())??
  • ????????x?=?default_value;??
  • ????else??
  • ????????x.read(node);??
  • }??
  • ??
  • //?This?function?will?print?our?custom?class?to?the?console??
  • ostream&?operator<<(ostream&?out,?const?MyData&?m)???
  • {???
  • ????out?<<?"{?id?=?"?<<?m.id?<<?",?";??
  • ????out?<<?"X?=?"?<<?m.X?<<?",?";??
  • ????out?<<?"A?=?"?<<?m.A?<<?"}";??
  • ????return?out;??
  • }??
  • ??
  • int?main(int?ac,?char**?av)??
  • {??
  • ????if?(ac?!=?2)??
  • ????{??
  • ????????help(av);??
  • ????????return?1;??
  • ????}??
  • ??
  • ????string?filename?=?av[1];??
  • ????{?//write??
  • ????????Mat?R?=?Mat_<uchar>::eye(3,?3),??
  • ????????????T?=?Mat_<double>::zeros(3,?1);??
  • ????????MyData?m(1);??
  • ??
  • ????????FileStorage?fs(filename,?FileStorage::WRITE);??
  • ??
  • ????????fs?<<?"iterationNr"?<<?100;??
  • ????????fs?<<?"strings"?<<?"[";??????????????????????????????//?text?-?string?sequence??
  • ????????fs?<<?"image1.jpg"?<<?"Awesomeness"?<<?"baboon.jpg";??
  • ????????fs?<<?"]";???????????????????????????????????????????//?close?sequence??
  • ??????????
  • ????????fs?<<?"Mapping";??????????????????????????????//?text?-?mapping??
  • ????????fs?<<?"{"?<<?"One"?<<?1;??
  • ????????fs?<<????????"Two"?<<?2?<<?"}";?????????????????
  • ??
  • ????????fs?<<?"R"?<<?R;??????????????????????????????????????//?cv::Mat??
  • ????????fs?<<?"T"?<<?T;??
  • ??
  • ????????fs?<<?"MyData"?<<?m;????????????????????????????????//?your?own?data?structures??
  • ??
  • ????????fs.release();???????????????????????????????????????//?explicit?close??
  • ????????cout?<<?"Write?Done."?<<?endl;??
  • ????}??
  • ??
  • ????{//read??
  • ????????cout?<<?endl?<<?"Reading:?"?<<?endl;??
  • ????????FileStorage?fs;???
  • ????????fs.open(filename,?FileStorage::READ);??
  • ??
  • ????????int?itNr;???
  • ????????//fs["iterationNr"]?>>?itNr;??
  • ????????itNr?=?(int)?fs["iterationNr"];??
  • ????????cout?<<?itNr;??
  • ????????if?(!fs.isOpened())??
  • ????????{??
  • ????????????cerr?<<?"Failed?to?open?"?<<?filename?<<?endl;??
  • ????????????help(av);??
  • ????????????return?1;??
  • ????????}??
  • ??
  • ????????FileNode?n?=?fs["strings"];?????????????????????????//?Read?string?sequence?-?Get?node??
  • ????????if?(n.type()?!=?FileNode::SEQ)??
  • ????????{??
  • ????????????cerr?<<?"strings?is?not?a?sequence!?FAIL"?<<?endl;??
  • ????????????return?1;??
  • ????????}??
  • ??
  • ????????FileNodeIterator?it?=?n.begin(),?it_end?=?n.end();?//?Go?through?the?node??
  • ????????for?(;?it?!=?it_end;?++it)??
  • ????????????cout?<<?(string)*it?<<?endl;??
  • ??????????
  • ??????????
  • ????????n?=?fs["Mapping"];????????????????????????????????//?Read?mappings?from?a?sequence??
  • ????????cout?<<?"Two??"?<<?(int)(n["Two"])?<<?";?";???
  • ????????cout?<<?"One??"?<<?(int)(n["One"])?<<?endl?<<?endl;???
  • ??????????
  • ??
  • ????????MyData?m;??
  • ????????Mat?R,?T;??
  • ??
  • ????????fs["R"]?>>?R;??????????????????????????????????????//?Read?cv::Mat??
  • ????????fs["T"]?>>?T;??
  • ????????fs["MyData"]?>>?m;?????????????????????????????????//?Read?your?own?structure_??
  • ??
  • ????????cout?<<?endl???
  • ????????????<<?"R?=?"?<<?R?<<?endl;??
  • ????????cout?<<?"T?=?"?<<?T?<<?endl?<<?endl;??
  • ????????cout?<<?"MyData?=?"?<<?endl?<<?m?<<?endl?<<?endl;??
  • ??
  • ????????//Show?default?behavior?for?non?existing?nodes??
  • ????????cout?<<?"Attempt?to?read?NonExisting?(should?initialize?the?data?structure?with?its?default).";????
  • ????????fs["NonExisting"]?>>?m;??
  • ????????cout?<<?endl?<<?"NonExisting?=?"?<<?endl?<<?m?<<?endl;??
  • ????}??
  • ??
  • ????cout?<<?endl???
  • ????????<<?"Tip:?Open?up?"?<<?filename?<<?"?with?a?text?editor?to?see?the?serialized?data."?<<?endl;??
  • ??
  • ????return?0;??
  • }??

  • 編譯后,在命令行進入到文件目錄,執行test test.xml,運行結果如下, 生成一個test . xml文件,內容如下:

    [html]?view plain?copy
  • ??<?xml?version="1.0"??>???
  • -?<opencv_storage>??
  • ??<iterationNr>100</iterationNr>???
  • ??<strings>image1.jpg?Awesomeness?baboon.jpg</strings>???
  • -?<Mapping>??
  • ??<One>1</One>???
  • ??<Two>2</Two>???
  • ??</Mapping>??
  • -?<R?type_id="opencv-matrix">??
  • ??<rows>3</rows>???
  • ??<cols>3</cols>???
  • ??<dt>u</dt>???
  • ??<data>1?0?0?0?1?0?0?0?1</data>???
  • ??</R>??
  • -?<T?type_id="opencv-matrix">??
  • ??<rows>3</rows>???
  • ??<cols>1</cols>???
  • ??<dt>d</dt>???
  • ??<data>0.?0.?0.</data>???
  • ??</T>??
  • -?<MyData>??
  • ??<A>97</A>???
  • ??<X>3.1415926535897931e+000</X>???
  • ??<id>mydata1234</id>???
  • ??</MyData>??
  • ??</opencv_storage>??


  • OpenCV學習筆記(七)——圖像處理之濾波器ImgProc


    先介紹幾個最基本的核濾波器相關的類

    2D圖像濾波器基礎類BaseFilter:dst(x,y) = F(src(x,y), src(x+1,y)... src(x+wdith-1,y), src(y+1,x)... src(x+width-1, y+height-1) ); 相關的調用函數為getLinearFilter、getMorphologyFilter

    單行核濾波器基礎類BaseRowFilter:dst(x,y) = F(src(x,y), src(x+1,y),...src(x+width-1,y));相關的調用函數為getLinearRowFilter、getMorphologyRowFilter

    單列核濾波器基礎類BaseColumnFilter:dst(x,y) = F(src(x,y), src(x,y+1),...src(x,y+width-1));相關的調用函數為getColumnSumFilter、getLinearColumnFilter、getMorphologyColumnFilter

    FilterEngine:該類可以應用在對圖像的任意濾波操作當中,在OpenCV濾波器函數中扮演著很重要的角色,相關的函數有createBoxFitler、createDerivFitlter、createGaussianFilter、createLinearFilter、createMorphologyFilter、createSeparableLinearFilter

    基于這些類有一些基本的濾波器bilateralFilter、blur、boxFilter

    還有一些形態學操作如:dilate、erode、morphologyEx

    還有基于核和圖像卷積的濾波器filter2D

    還有一些典型的濾波器如GaussianBlur、medianBlur、Laplacian、pyrMeanShiftFiltering、sepFilter2D

    還有Sobel、Scharr運算符

    其他一些函數有borderInterpolate、buildPyramid、copyMakeBorder、createBoxFilter、createDirivFilter、createGaussianFliter、createLinearFilter、createMorphologyFilter、createSeparableLinearFilter、getDerivKernels、getGaussianKernel、getKernelType、getStructuringElement、pyrDown、pyrUp

    還老版本的濾波器cvSmooth

    這里介紹一下我使用Laplacian濾波的心得,這個函數的第三個參數為輸出的圖像的深度,注意經過拉普拉斯算子處理后得到的值是有正有負的,所以輸出圖像的深度最好為輸入圖像深度的2倍,才能有效防止數據溢出,如必須要使用8位的數據,可以再使用函數convertScaleAbs處理。而且要注意使用的拉普拉斯算子掩膜的中心系數為負。



    OpenCV學習筆記(八)——圖像處理之直方圖ImgProc

    直方圖histograms也是圖像處理中經常用到的一種手段。新版本對直方圖不再使用之前的histogram的形式,而是用統一的Mat或者MatND的格式來存儲直方圖,可見新版本Mat數據結構的優勢。先介紹下其相關的函數

    calcHist、calcBackProject、compareHist、EMD、equalizeHist。除了這幾個常用的函數以為,還有一些c函數寫的直方圖類CvHistogram的相關操作,如下:cvCalcBackProjectPatch、cvCalcProbDensity、cvClearHist、cvCopyHist、cvCreateHist、cvGetHistValue_XD、cvGetMinMaxHistValue、cvMakeHistHeaderForArray、cvNormalizeHist、QueryHistValue_XD、cvReleaseHist、cvSetHistBinRanges、cvThreshHist、cvCalcPGH

    calcHist函數為計算圖像的直方圖,使用方法如下:

    [cpp]?view plain?copy
  • //?C++:???
  • void?calcHist(const?Mat*?arrays,?int?narrays,?const?int*?channels,?InputArray?mask,?OutputArray?hist,?int?dims,?const?int*?histSize,?const??oat**?ranges,?bool?uniform=true,?bool?accumulate=false?)??
  • //?C++:???
  • void?calcHist(const?Mat*?arrays,?int?narrays,?const?int*?channels,?InputArray?mask,?SparseMat&?hist,?int?dims,?const?int*?histSize,?const??oat**?ranges,?bool?uniform=true,?bool?accumulate=false?)??

  • arrays為輸入圖像指針,narrays為輸入圖像的個數,channels為用來計算直方圖的通道列表,mask為掩膜矩陣,不為空的時候,只計算arrays中的掩膜區域的直方圖,hist為輸出的直方圖矩陣,dims為直方圖矩陣的維度,histSize為每一維直方圖矩陣的大小,ranges為每一維直方圖元素的取值范圍,是一個2維數組的地址,uniform為直方圖是否為統一模式,統一模式下會拉伸為range的大小,accumulate為累計標志,方便直方圖的更新,不需要重新計算

    舉幾個實例方便大家理解:

    對于圖像為灰度圖,調用方式如下:

    [cpp]?view plain?copy
  • int?histSize?=?255;??
  • float?ranges[]?=?{0,?255};??
  • const?float*?histRange?=?{ranges};??
  • calcHist(&img,?1,?0,?Mat(),?hist,?1,?&histSize,?&histRange);??

  • 直方圖的歸一化 已經不再適合cvNormalizeHist這個函數了,只需要用對矩陣的歸一化函數 normalize 就可以實現了。

    直方圖均衡化函數為equalizeHist,這個函數比較簡單,這里就不詳細介紹了

    直方圖的比較函數為compareHist,函數返回值為兩矩陣的相似程度,相似度衡量的辦法目前支持4種

    – CV_COMP_CORREL Correlation相關系數,相同為1,相似度范圍為[ 1, 0 )

    – CV_COMP_CHISQR Chi-Square卡方,相同為0,相似度范圍為[ 0, +inf )

    – CV_COMP_INTERSECT Intersection直方圖交,數越大越相似,,相似度范圍為[ 0, +inf )

    – CV_COMP_BHATTACHARYYA Bhattacharyya distance做常態分別比對的Bhattacharyya 距離,相同為0,,相似度范圍為[ 0, +inf )

    計算反向投影圖函數為 calcBackProject 。所謂反向投影圖就是一個概率密度圖。calcBackProject的輸入為圖像及其直方圖,輸出與待跟蹤圖像大小相同,每一個像素點表示該點為目標區域的概率。這個點越亮,該點屬于物體的概率越大。關于反向直方圖,可以參考一下這篇文章 http://blog.163.com/thomaskjh@126/blog/static/370829982010112810358501/ ,這個函數使我們利用特征直方圖尋找圖片中的特征區域變得更加方便容易。這里舉一個比較常用的例子:如果已經有一個膚色的特征直方圖,則可以在待檢測圖像中利用直方圖方向投影圖找出圖片中的膚色區域。


    OpenCV學習筆記(九)——2維特征Feature2D

    基于特征點的圖像匹配是圖像處理中經常會遇到的問題,手動選取特征點太麻煩了。比較經典常用的特征點自動提取的辦法有Harris特征、SIFT特征、SURF特征。

    先介紹利用SURF特征的特征描述辦法,其操作封裝在類SurfFeatureDetector中,利用類內的detect函數可以檢測出SURF特征的關鍵點,保存在vector容器中。第二部利用SurfDescriptorExtractor類進行特征向量的相關計算。將之前的vector變量變成向量矩陣形式保存在Mat中。最后強行匹配兩幅圖像的特征向量,利用了類BruteForceMatcher中的函數match。代碼如下:

    [cpp]?view plain?copy
  • /**?
  • ?*?@file?SURF_descriptor?
  • ?*?@brief?SURF?detector?+?descritpor?+?BruteForce?Matcher?+?drawing?matches?with?OpenCV?functions?
  • ?*?@author?A.?Huaman?
  • ?*/??
  • ??
  • #include?<stdio.h>??
  • #include?<iostream>??
  • #include?"opencv2/core/core.hpp"??
  • #include?"opencv2/features2d/features2d.hpp"??
  • #include?"opencv2/highgui/highgui.hpp"??
  • ??
  • using?namespace?cv;??
  • ??
  • void?readme();??
  • ??
  • /**?
  • ?*?@function?main?
  • ?*?@brief?Main?function?
  • ?*/??
  • int?main(?int?argc,?char**?argv?)??
  • {??
  • ??if(?argc?!=?3?)??
  • ??{?return?-1;?}??
  • ??
  • ??Mat?img_1?=?imread(?argv[1],?CV_LOAD_IMAGE_GRAYSCALE?);??
  • ??Mat?img_2?=?imread(?argv[2],?CV_LOAD_IMAGE_GRAYSCALE?);??
  • ????
  • ??if(?!img_1.data?||?!img_2.data?)??
  • ??{?return?-1;?}??
  • ??
  • ??//--?Step?1:?Detect?the?keypoints?using?SURF?Detector??
  • ??int?minHessian?=?400;??
  • ??
  • ??SurfFeatureDetector?detector(?minHessian?);??
  • ??
  • ??std::vector<KeyPoint>?keypoints_1,?keypoints_2;??
  • ??
  • ??detector.detect(?img_1,?keypoints_1?);??
  • ??detector.detect(?img_2,?keypoints_2?);??
  • ??
  • ??//--?Step?2:?Calculate?descriptors?(feature?vectors)??
  • ??SurfDescriptorExtractor?extractor;??
  • ??
  • ??Mat?descriptors_1,?descriptors_2;??
  • ??
  • ??extractor.compute(?img_1,?keypoints_1,?descriptors_1?);??
  • ??extractor.compute(?img_2,?keypoints_2,?descriptors_2?);??
  • ??
  • ??//--?Step?3:?Matching?descriptor?vectors?with?a?brute?force?matcher??
  • ??BruteForceMatcher<?L2<float>?>?matcher;??
  • ??std::vector<?DMatch?>?matches;??
  • ??matcher.match(?descriptors_1,?descriptors_2,?matches?);??
  • ??
  • ??//--?Draw?matches??
  • ??Mat?img_matches;??
  • ??drawMatches(?img_1,?keypoints_1,?img_2,?keypoints_2,?matches,?img_matches?);???
  • ??
  • ??//--?Show?detected?matches??
  • ??imshow("Matches",?img_matches?);??
  • ??
  • ??waitKey(0);??
  • ??
  • ??return?0;??
  • }??
  • ??
  • /**?
  • ?*?@function?readme?
  • ?*/??
  • void?readme()??
  • {?std::cout?<<?"?Usage:?./SURF_descriptor?<img1>?<img2>"?<<?std::endl;?}??

  • 當然,進行強匹配的效果不夠理想,這里再介紹一種FLANN特征匹配算法。前兩步與上述代碼相同,第三步利用FlannBasedMatcher類進行特征匹配,并只保留好的特征匹配點,代碼如下:

    [cpp]?view plain?copy
  • //--?Step?3:?Matching?descriptor?vectors?using?FLANN?matcher??
  • FlannBasedMatcher?matcher;??
  • std::vector<?DMatch?>?matches;??
  • matcher.match(?descriptors_1,?descriptors_2,?matches?);??
  • ??
  • double?max_dist?=?0;?double?min_dist?=?100;??
  • ??
  • //--?Quick?calculation?of?max?and?min?distances?between?keypoints??
  • for(?int?i?=?0;?i?<?descriptors_1.rows;?i++?)??
  • {?double?dist?=?matches[i].distance;??
  • ??if(?dist?<?min_dist?)?min_dist?=?dist;??
  • ??if(?dist?>?max_dist?)?max_dist?=?dist;??
  • }??
  • ??
  • printf("--?Max?dist?:?%f?\n",?max_dist?);??
  • printf("--?Min?dist?:?%f?\n",?min_dist?);??
  • ??
  • //--?Draw?only?"good"?matches?(i.e.?whose?distance?is?less?than?2*min_dist?)??
  • //--?PS.-?radiusMatch?can?also?be?used?here.??
  • std::vector<?DMatch?>?good_matches;??
  • ??
  • for(?int?i?=?0;?i?<?descriptors_1.rows;?i++?)??
  • {?if(?matches[i].distance?<?2*min_dist?)??
  • ??{?good_matches.push_back(?matches[i]);?}??
  • }????
  • ??
  • //--?Draw?only?"good"?matches??
  • Mat?img_matches;??
  • drawMatches(?img_1,?keypoints_1,?img_2,?keypoints_2,???
  • ?????????????good_matches,?img_matches,?Scalar::all(-1),?Scalar::all(-1),???
  • ?????????????vector<char>(),?DrawMatchesFlags::NOT_DRAW_SINGLE_POINTS?);???
  • ??
  • //--?Show?detected?matches??
  • imshow(?"Good?Matches",?img_matches?);??

  • 在FLANN特征匹配的基礎上,還可以進一步利用Homography映射找出已知物體。具體來說就是利用findHomography函數利用匹配的關鍵點找出相應的變換,再利用perspectiveTransform函數映射點群。具體代碼如下:

    [cpp]?view plain?copy
  • //--?Localize?the?object?from?img_1?in?img_2???
  • std::vector<Point2f>?obj;??
  • std::vector<Point2f>?scene;??
  • ??
  • for(?int?i?=?0;?i?<?good_matches.size();?i++?)??
  • {??
  • ??//--?Get?the?keypoints?from?the?good?matches??
  • ??obj.push_back(?keypoints_1[?good_matches[i].queryIdx?].pt?);??
  • ??scene.push_back(?keypoints_2[?good_matches[i].trainIdx?].pt?);???
  • }??
  • ??
  • Mat?H?=?findHomography(?obj,?scene,?CV_RANSAC?);??
  • ??
  • //--?Get?the?corners?from?the?image_1?(?the?object?to?be?"detected"?)??
  • Point2f?obj_corners[4]?=?{?cvPoint(0,0),?cvPoint(?img_1.cols,?0?),?cvPoint(?img_1.cols,?img_1.rows?),?cvPoint(?0,?img_1.rows?)?};??
  • Point?scene_corners[4];??
  • ??
  • //--?Map?these?corners?in?the?scene?(?image_2)??
  • for(?int?i?=?0;?i?<?4;?i++?)??
  • {??
  • ??double?x?=?obj_corners[i].x;???
  • ??double?y?=?obj_corners[i].y;??
  • ??
  • ??double?Z?=?1./(?H.at<double>(2,0)*x?+?H.at<double>(2,1)*y?+?H.at<double>(2,2)?);??
  • ??double?X?=?(?H.at<double>(0,0)*x?+?H.at<double>(0,1)*y?+?H.at<double>(0,2)?)*Z;??
  • ??double?Y?=?(?H.at<double>(1,0)*x?+?H.at<double>(1,1)*y?+?H.at<double>(1,2)?)*Z;??
  • ??scene_corners[i]?=?cvPoint(?cvRound(X)?+?img_1.cols,?cvRound(Y)?);??
  • }????
  • ???
  • //--?Draw?lines?between?the?corners?(the?mapped?object?in?the?scene?-?image_2?)??
  • line(?img_matches,?scene_corners[0],?scene_corners[1],?Scalar(0,?255,?0),?2?);??
  • line(?img_matches,?scene_corners[1],?scene_corners[2],?Scalar(?0,?255,?0),?2?);??
  • line(?img_matches,?scene_corners[2],?scene_corners[3],?Scalar(?0,?255,?0),?2?);??
  • line(?img_matches,?scene_corners[3],?scene_corners[0],?Scalar(?0,?255,?0),?2?);??
  • ??
  • //--?Show?detected?matches??
  • imshow(?"Good?Matches?&?Object?detection",?img_matches?);??

  • 然后再看一下Harris特征檢測,在計算機視覺中,通常需要找出兩幀圖像的匹配點,如果能找到兩幅圖像如何相關,就能提取出兩幅圖像的信息。我們說的特征的最大特點就是它具有唯一可識別這一特點,圖像特征的類型通常指邊界、角點(興趣點)、斑點(興趣區域)。角點就是圖像的一個局部特征,應用廣泛。harris角點檢測是一種直接基于灰度圖像的角點提取算法,穩定性高,尤其對L型角點檢測精度高,但由于采用了高斯濾波,運算速度相對較慢,角點信息有丟失和位置偏移的現象,而且角點提取有聚簇現象。具體實現就是使用函數cornerHarris實現。

    除了利用Harris進行角點檢測,還可以利用Shi-Tomasi方法進行角點檢測。使用函數goodFeaturesToTrack對角點進行檢測,效果也不錯。也可以自己制作角點檢測的函數,需要用到cornerMinEigenVal函數和minMaxLoc函數,最后的特征點選取,判斷條件要根據自己的情況編輯。如果對特征點,角點的精度要求更高,可以用cornerSubPix函數將角點定位到子像素。



    OpenCV學習筆記(十)——圖形交互和媒體接口HighGUI


    OpenCV提供一個功能強大的UI接口,可以在MFC、Qt、WinForms、Cocoa等平臺下使用,甚至不需要其他的平臺。新版本的HighGUI接口包括:

    創建并控制窗口,該窗口可以顯示圖片并記錄其內容

    為窗口添加了trackbars控件,可以方便利用鼠標進行控制而不是之前版本的只能利用鍵盤

    讀寫硬盤和內存的圖片

    讀取攝像頭的視頻、讀寫視頻文件

    先來介紹UI,包括函數createTrackbar、getTrackbarPos、setTrackbarPos、imshow、namedWindow、destroyWindow、destroyAllWindows、MoveWindow、ResizeWindow、SetMouseCallback、waitKey。這些函數保證了圖像的基本處理、tarckbar的控制和鼠標鍵盤的響應

    介紹一下讀寫圖像視頻的函數:圖像相關的函數有imdecode、imencode、imread、imwrite。讀取視頻相關為VideoCapture類,負責捕捉文件和攝像頭的視頻,該類內有成員函數VideoCapture、open、isOpened、release、grab、retrieve、read、get、set,寫視頻的類為VideoWriter,類內有成員函數VideoWriter、open、isOpened、write

    新版本還為Qt做了新函數,這里就不介紹了,有興趣的朋友可以自己看一下參考手冊的第四章第三節。

    這里介紹幾個常用的新功能,首先介紹一下添加滑桿控件Trackbar。調用函數為:

    [cpp]?view plain?copy
  • createTrackbar(?TrackbarName,?"Linear?Blend",?&alpha_slider,?alpha_slider_max,?on_trackbar?);??

  • 第一個參數為字符串作為標簽,第二個參數為所在窗口的名字,第三個參數為存儲滑桿位置的值地址,其范圍為0~alpha_slider_max(第四個參數),最后一個參數為移動滑桿時調用的回調函數名。
    OpenCV2.0版本加強了對視頻處理的支持,不再需要對一組連續的圖片進行處理,可以進行實時的圖像采集和記錄以及存儲。視頻的操作基本都被封裝在VideoCapture類中。打開視頻可以可以通過如下代碼實現:
    [cpp]?view plain?copy
  • VideoCapture?captRefrnc(sourceReference);??
  • //?or??
  • VideoCapture?captUndTst;??
  • captUndTst.open(sourceCompareWith);??

  • 其中sourceReference和sourceCompareWith為string型,為文件名。還可以通過isOpened函數檢測視頻是否成功打開。也可以調用release函數提前關閉視頻。還可以講VideoCapture放到Mat結構中,因為視頻流是一連串的,可以通過read函數或>>操作符逐幀的讀取,例如:
    [cpp]?view plain?copy
  • Mat?frameReference,?frameUnderTest;??
  • captRefrnc?>>?frameReference;??
  • captUndTst.open(frameUnderTest);??

  • read函數只能逐幀的抓取,如果要抓取某一幀,可以成對的調用grab函數和retrieve函數。get函數可以獲取視頻相關信息。set函數可以控制視頻的一些值,比如是指視頻的當前位置或幀數。

    可以使用VideoWriter類創建新視頻,其open,isOpened函數調用方法類似,write函數或<<運算符向視頻寫入內容,可以使用split函數和merge函數單獨調整RGB通道的值

    今日,被一個網友指出,說OpenCV以前提供的讀寫功能采用VFW,效率低下且有些格式支持不好。而 OpenCV 2.0 內置了videoInput Library,可以自動在VFW和DirectShow間切換。videoInput是老外寫的功能強大的開源視頻處理庫。是一個第三方庫,2.0~2.2的版本專門有一個3rdparty對該庫進行支持,而在最新的2.3版本中,已經講videoInput庫集成到highgui中了,想使用它的話,只需要在cmake中設置宏WITH_VIDEOiNPUT=OFF/ON即可。

    以后有新學到的東西都會陸續補充進來。



    from: http://blog.csdn.net/yang_xian521/article/category/910716

    總結

    以上是生活随笔為你收集整理的OpenCV学习笔记(六)(七)(八)(九)(十)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    久久久亚洲成人 | av在线免费网站 | 国产精品一区二区你懂的 | 日韩网页 | 男女激情麻豆 | 在线免费观看黄网站 | 97超碰人人澡人人爱学生 | 手机在线观看国产精品 | 日本护士三级少妇三级999 | 91精品在线视频观看 | av免费在线免费观看 | 青青草国产在线 | 国产剧情av在线播放 | 亚洲精品高清视频在线观看 | 日韩中文字幕亚洲一区二区va在线 | 又爽又黄又刺激的视频 | 在线观看成人网 | 欧美91精品| 五月婷婷欧美视频 | 成年人免费看 | 国产aa精品| 免费在线色视频 | 久久9999久久免费精品国产 | 亚洲激情在线观看 | 麻豆视频免费网站 | 中文资源在线播放 | 国产精品久久久久久久婷婷 | 91x色| 伊人午夜视频 | 久久精品99视频 | 国产香蕉久久精品综合网 | 国产主播大尺度精品福利免费 | 国产精品一区二区电影 | 久久色网站 | 国产区精品区 | 日韩视频专区 | 日韩免费视频一区二区 | 日日麻批40分钟视频免费观看 | 欧美极品久久 | 欧美激情第28页 | 欧美a级在线 | 久久免费视频在线观看 | 成人av在线直播 | 精品视频免费久久久看 | 免费久久精品视频 | 2024国产精品视频 | 日韩中文字幕国产精品 | 91av在线精品 | 五月情婷婷 | 最新色站| 操操爽| 女女av在线 | 久久1电影院 | 日韩精品中文字幕在线不卡尤物 | 日本特黄特色aaa大片免费 | 亚洲精品视频在线观看视频 | av日韩精品 | 欧美精品一区二区性色 | 日韩免费一区二区 | 国产亚洲成人精品 | 在线观看中文字幕一区 | 精品免费观看视频 | 亚洲欧洲精品一区二区 | 国产一级片视频 | 日韩av资源在线观看 | 亚洲最大在线视频 | 亚洲国产视频在线 | 日韩在线视频线视频免费网站 | av大片免费 | 久久久国产一区 | 成人黄色资源 | 天海冀一区二区三区 | 日韩日韩日韩日韩 | 亚洲精品合集 | 国产成人精品网站 | 98超碰在线 | 天天操 夜夜操 | 免费av福利 | 成人精品一区二区三区电影免费 | 日本3级在线观看 | 日色在线视频 | 日本一区二区三区免费观看 | 久草视频视频在线播放 | 天堂网一区二区三区 | 91精品对白一区国产伦 | 999久久久免费精品国产 | 天天干天天搞天天射 | 国产一级特黄电影 | 97人人添人澡人人爽超碰动图 | 国产精品永久免费 | 久久伦理电影网 | 中文字幕免费在线 | 成人黄色电影在线观看 | 国产在线精品国自产拍影院 | 美女国产在线 | 在线99视频 | 天天色天天射综合网 | 超级碰碰碰碰 | 91免费看黄 | 五月天色中色 | 国产在线欧美在线 | 精品久久在线 | 国产精品国产亚洲精品看不卡15 | 欧洲av不卡| 超碰在线官网 | 免费中文字幕视频 | 毛片美女网站 | 亚洲 欧美 国产 va在线影院 | 国产亚州精品视频 | 岛国av在线不卡 | 久久tv| av电影在线播放 | 玖玖玖国产精品 | 中文字幕人成乱码在线观看 | 国产视频一区精品 | 天天天天色综合 | 精品产品国产在线不卡 | 欧美精品在线视频观看 | 国产剧情av在线播放 | 精品在线小视频 | 黄色一级在线免费观看 | 免费观看福利视频 | 亚洲视频综合 | 婷婷日日 | 一级c片 | 九九九视频精品 | 久久精品99国产国产 | 婷婷国产视频 | 亚洲日本国产精品 | 日韩精品中文字幕在线不卡尤物 | 欧美一进一出抽搐大尺度视频 | 日韩精品高清视频 | 亚洲理论在线观看电影 | 亚洲国产中文字幕在线视频综合 | ww亚洲ww亚在线观看 | 中文免费在线观看 | 日日夜夜婷婷 | 国产精品第2页 | 亚洲欧美精品在线 | 中文字幕亚洲综合久久五月天色无吗'' | 黄色小说网站在线 | x99av成人免费 | 久久久久www | 亚洲综合网站在线观看 | 97在线超碰 | av免费看看| 成 人 免费 黄 色 视频 | 青春草免费在线视频 | 国产精品理论视频 | 免费高清在线观看电视网站 | 天天操天天干天天摸 | 激情五月色播五月 | 亚洲免费在线观看视频 | 久久久久久久久久免费视频 | 在线免费av观看 | www色片 | 色成人亚洲网 | 日韩一区二区三区高清免费看看 | 久99久中文字幕在线 | 亚洲国产精品500在线观看 | 久久五月婷婷丁香社区 | 日韩av午夜在线观看 | 色婷婷综合视频在线观看 | 国产精品久久电影观看 | 亚洲伊人网在线观看 | 日韩一区二区久久 | 欧美一区免费观看 | 97精品国产 | 免费91麻豆精品国产自产在线观看 | 91麻豆网| 免费看的国产视频网站 | 免费色av | 最新国产在线 | 91亚州 | 三级av片 | 免费色视频网站 | 日本精品一二区 | 国产免费久久 | 在线黄色毛片 | 国产91成人在在线播放 | 成人av资源网 | 伊人国产在线播放 | 91成版人在线观看入口 | 国产精品99爱 | 日韩a在线播放 | 在线直播av| 日韩精品一区二区三区第95 | 欧美性成人 | 国产成人专区 | 国产精品99久久久久人中文网介绍 | 国产最顶级的黄色片在线免费观看 | 免费看国产一级片 | 亚洲视频在线看 | 69视频在线播放 | 国产精品99久久久精品免费观看 | 五月的婷婷| 在线国产一区二区 | 操操操日日日干干干 | 国产精品高清av | 久草a视频 | 久久久久看片 | 亚洲免费色| 中文字幕之中文字幕 | 天天做日日爱夜夜爽 | 精品欧美一区二区精品久久 | 成人国产一区 | 国产高清在线一区 | 久草在线最新免费 | a一片一级 | 国产福利91精品一区二区三区 | 999日韩| 一级做a爱片性色毛片www | 亚洲国产精品第一区二区 | 成人免费网站在线观看 | 国产精品av免费在线观看 | 亚洲最大在线视频 | 国产精品va在线播放 | 亚洲精选视频在线 | av在线免费网站 | 欧美精品久久久久久久久久久 | 成人蜜桃 | 亚洲国产美女精品久久久久∴ | 亚洲精品欧美成人 | 黄色国产精品 | 99精品视频免费观看视频 | 国产九九九精品视频 | 国产精品久久久久久久久久99 | 国产高清av免费在线观看 | 国产精品久久久久久99 | 成年人免费在线看 | 安徽妇搡bbbb搡bbbb | 色综合 久久精品 | 久久国产精品免费看 | 久久精品亚洲精品国产欧美 | 99精品视频在线看 | 免费高清国产 | 国产欧美精品在线观看 | 久久精品久久99精品久久 | 国产一级精品绿帽视频 | 国产最顶级的黄色片在线免费观看 | 国产精品第十页 | 国产中文字幕在线看 | 久久99国产精品免费网站 | 久操视频在线免费看 | 免费在线播放 | 99精品视频在线 | 久久99精品久久久久久久久久久久 | 久久久精品99 | 欧美性视频网站 | 中文字幕.av.在线 | 99草在线视频 | 三级黄色大片在线观看 | 欧美在线视频a | 免费日韩一区 | 久草在线最新免费 | 91在线国内视频 | 91中文字幕视频 | 国产字幕av | 免费看三片 | 国内视频在线 | 欧美成人播放 | 视频一区在线免费观看 | 亚洲午夜精 | 国产在线中文字幕 | 激情丁香 | 91精品在线播放 | 国产资源网站 | 久久久免费 | 成人av直播 | 免费观看av网站 | 九色91av | 五月综合激情 | 在线免费观看视频a | 免费视频你懂得 | 亚洲成年人在线播放 | 婷婷五月在线视频 | 亚州av免费 | 99久久国产免费,99久久国产免费大片 | 91在线免费公开视频 | 日日躁夜夜躁aaaaxxxx | 国产精品午夜av | 欧美一级在线观看视频 | 国产综合小视频 | 91在线产啪 | 欧美在线观看禁18 | 日韩精品一区二区三区三炮视频 | 国产在线探花 | 国产精品一区久久久久 | 色婷婷亚洲精品 | 日韩字幕| 亚洲精品视频一二三 | 亚洲综合干| 久久国产精品免费观看 | 国产手机av | 日韩伦理片一区二区三区 | 亚洲精品1区2区3区 超碰成人网 | 国产精品成久久久久 | 园产精品久久久久久久7电影 | 国产亚洲精品久久久久久久久久 | 亚洲精品乱码久久久久久蜜桃动漫 | 国产免费一区二区三区最新 | 色www精品视频在线观看 | 午夜色影院| 亚洲最大免费成人网 | 97超级碰碰碰碰久久久久 | 在线免费观看视频一区二区三区 | 成人久久网 | 国产一级片一区二区三区 | 亚洲人成影院在线 | 久久久久久在线观看 | 手机在线看片日韩 | 国产成人一区二区精品非洲 | 日韩在线视频不卡 | 337p日本大胆噜噜噜噜 | 国产精品国产三级国产不产一地 | 亚洲美女视频在线观看 | 激情大尺度视频 | 韩国视频一区二区三区 | 国产精品久久久久久久久久 | 国产精品视频观看 | 久久成人18免费网站 | 日韩免费观看一区二区三区 | 天堂av免费在线 | 亚洲精品婷婷 | 欧美色精品天天在线观看视频 | 亚洲国产精品500在线观看 | 一级淫片在线观看 | 久久看看 | 日韩欧美在线一区二区 | 国产精品一区二区三区久久久 | 九九热在线免费观看 | 91av在线免费看 | 99热最新 | 婷婷中文在线 | 精品美女国产在线 | 在线观看av不卡 | 在线观看韩日电影免费 | 色婷婷亚洲婷婷 | 国产免费一区二区三区最新6 | 久久免费视频播放 | 91伊人影院 | 午夜视频在线观看一区二区三区 | 91在线免费看片 | 精品av网站 | 国产超碰在线观看 | 在线观看一| 国产午夜精品一区二区三区四区 | 欧洲精品亚洲精品 | 麻豆精品视频在线观看免费 | 久久视频精品 | 人人澡视频 | 日韩av一区二区在线播放 | 日本二区三区在线 | 日韩黄色免费在线观看 | 中文字幕在线视频一区二区 | 成人午夜在线观看 | 美女精品国产 | 免费视频黄色 | 色综合久久88色综合天天6 | 亚洲国产成人在线观看 | av在线小说 | 福利区在线观看 | 日韩在线免费高清视频 | 91丨九色丨高潮 | 黄色在线观看免费网站 | 亚洲国产中文字幕在线视频综合 | 激情伊人五月天 | www.狠狠操| 日韩系列在线 | 免费av网址大全 | 在线91观看| 97福利视频 | 一区二区三区日韩在线观看 | 国产精品一区二区久久久久 | 久久精品五月 | 亚州精品在线视频 | 激情av一区二区 | 97热视频 | 国产成人免费精品 | 免费观看91| 欧美一区二区在线免费观看 | 国产日韩视频在线播放 | 日韩中文字幕免费视频 | 日韩av成人在线观看 | 91麻豆国产 | 狠狠色综合欧美激情 | 免费一级特黄毛大片 | 亚洲一区二区视频 | 欧美性色黄大片在线观看 | 四虎影视国产精品免费久久 | 91传媒视频在线观看 | 日韩女同av| 在线免费观看黄色 | 欧美一区中文字幕 | 久久精品国产免费 | 成年人av在线播放 | av九九九 | 最新国产福利 | 在线观看理论 | 国产资源中文字幕 | 久久国产精品99久久人人澡 | 国产精品丝袜在线 | 97色国产 | 婷婷综合国产 | 国产精品视频在线看 | 不卡av在线 | 热re99久久精品国产66热 | 热久久这里只有精品 | 狠狠综合久久 | 天天天综合网 | 成人午夜电影网站 | 国产美女搞久久 | 国产小视频在线观看免费 | 91成人精品国产刺激国语对白 | 色先锋av资源中文字幕 | 久久蜜臀一区二区三区av | 久亚洲精品| 欧美日韩国产一区二区三区在线观看 | 日韩午夜精品福利 | 日韩精品观看 | 日本黄色免费电影网站 | 久久精品8 | 2019av在线视频| 国产亚洲视频在线免费观看 | 69视频网站| 97超碰人人澡人人爱学生 | 99精品视频在线 | 特黄特色特刺激视频免费播放 | 日韩精品免费在线播放 | 五月婷婷深开心 | 日韩 国产 | 日日摸日日| 96精品在线| 五月开心六月婷婷 | 99久久精品免费看 | 国产美女主播精品一区二区三区 | 亚洲综合视频在线播放 | 波多野结衣久久精品 | 精品国产人成亚洲区 | 精品久久网站 | 久久免费国产电影 | 中文字幕999| 91精品国产99久久久久久红楼 | 国产在线a不卡 | 2019中文字幕网站 | 国产 欧美 日韩 | 日韩在线影视 | 在线观看av大片 | 香蕉久久国产 | 久久黄色免费 | 天天操月月操 | 91av福利视频 | 久久国产精品视频观看 | 国产 精品 资源 | 97成人精品视频在线播放 | 成人宗合网 | 精品美女在线视频 | 亚洲国产中文字幕在线观看 | 蜜臀av夜夜澡人人爽人人 | 天天天天天天干 | 国产精品成人自产拍在线观看 | 中文在线字幕观看电影 | 波多野结衣电影一区二区 | 久久精彩免费视频 | 成人app在线免费观看 | 久艹在线播放 | 日韩亚洲在线视频 | 亚洲天堂自拍视频 | 国产九九九精品视频 | 精品久久免费看 | 久久久96| 精品国产伦一区二区三区 | av成人动漫在线观看 | 97色se | 又爽又黄又刺激的视频 | 日本性视频 | 欧美在线日韩在线 | 国产精品第三页 | av看片在线观看 | 日韩中文字幕视频在线观看 | a黄色大片 | 国产精品午夜久久 | 18+视频网站链接 | 天天草网站| av免费观看网址 | 91日韩精品视频 | 在线网址你懂得 | 麻豆视频www | a在线观看免费视频 | 一区二区三区四区精品 | 久久精品毛片 | 热re99久久精品国产66热 | 首页av在线| 这里只有精品视频在线 | 一区二区三区中文字幕在线观看 | 天天操夜夜想 | 成人av教育 | 亚洲五月婷 | 久草在线视频在线观看 | 成人禁用看黄a在线 | 99久久影视| 亚洲精品视频网 | 在线免费中文字幕 | 国产高清在线视频 | 友田真希x88av | 91看成人| 亚洲视频一级 | 欧美精品亚洲精品日韩精品 | 国产在线精品一区二区 | 久草干 | 国产99久久久精品视频 | 久久国产综合视频 | 99色资源| 天无日天天操天天干 | 国产男女爽爽爽免费视频 | 亚洲欧洲国产日韩精品 | 久久综合色天天久久综合图片 | 热久久免费视频 | av黄色亚洲| 探花视频免费在线观看 | 亚洲春色成人 | 欧美国产精品一区二区 | 国产精品久久久亚洲 | 天天色天天爱天天射综合 | 一本一本久久aa综合精品 | 精品久操 | 国产资源精品在线观看 | 欧美一级视频免费 | 亚洲精品国产综合久久 | 成人免费观看完整版电影 | 久久久久久麻豆 | 国产精品美女www爽爽爽视频 | 亚洲有 在线 | 久久久久视| 久久国产精品视频免费看 | 在线视频a | 狠狠狠狠狠狠天天爱 | 天天激情站 | av大全在线看 | 国产一级特黄毛片在线毛片 | 日日夜夜婷婷 | 国产字幕在线播放 | 在线观看黄色免费视频 | 免费福利片2019潦草影视午夜 | 91九色视频在线 | 国产视频精品免费播放 | 99久久er热在这里只有精品66 | 久久国内免费视频 | 国内丰满少妇猛烈精品播 | 久久久久久久国产精品视频 | 在线视频 成人 | 国产美女精品视频 | 夜夜视频 | 国产你懂的在线 | 欧美日韩精品综合 | 奇米网8888| 9i看片成人免费看片 | 日本精品午夜 | 99热超碰在线 | 91av中文字幕 | 国产真实精品久久二三区 | 免费网站色 | 欧美精品久久99 | 久久综合福利 | 国产精品videoxxxx | 国产高清在线免费 | 国产一区在线播放 | 国产高清一级 | 九九视频这里只有精品 | 国产色一区 | 91精品啪在线观看国产 | 亚洲在线a | 在线黄色国产电影 | 色视频在线观看 | 亚洲欧洲一级 | 热久久视久久精品18亚洲精品 | 天天综合久久综合 | 亚洲精品午夜视频 | 亚洲激情小视频 | 久久99电影 | 亚洲国产成人在线观看 | 在线观看黄 | 91在线视频精品 | 91av视频观看 | 国产视频久久久 | 91麻豆免费看 | 婷婷在线视频观看 | 色综合久久久 | 黄毛片在线观看 | 国产亚洲综合在线 | 国产精品va在线观看入 | 国产精品毛片一区二区 | 久久婷婷网 | 国产又粗又硬又长又爽的视频 | 青青久草在线视频 | 久草在线视频免费资源观看 | 免费高清av在线看 | 视频三区在线 | 绯色av一区 | 超碰官网 | 免费成人结看片 | 97精品国产97久久久久久久久久久久 | 久久国产精品视频 | 精品视频免费在线 | 国产精品久久久视频 | 国产精品亚洲a | 黄色软件在线看 | 久久精品一区二区国产 | 国内一级片在线观看 | 婷婷伊人五月天 | 久久久久女人精品毛片 | 精品中文字幕在线播放 | 中文字幕91在线 | 国产午夜精品一区二区三区四区 | 九九视频免费观看视频精品 | 色网av| 在线不卡中文字幕播放 | 国产精品资源网 | 中文字幕久久亚洲 | 99久久久久国产精品免费 | 国产成人一区二 | 九九热免费观看 | 97av视频在线观看 | 丁香久久综合 | 国产精品99久久久久人中文网介绍 | 精品久久五月天 | av千婊在线免费观看 | 国产精品国产精品 | av电影av在线| 久久97视频| 最近2019中文免费高清视频观看www99 | 日本韩国精品一区二区在线观看 | 玖玖在线播放 | 粉嫩av一区二区三区四区在线观看 | 91精品成人 | 欧美精品免费在线 | 免费国产在线精品 | 国产精品久久久久久电影 | 91精品国产网站 | 国产免码va在线观看免费 | 日韩在线观看中文 | 十八岁以下禁止观看的1000个网站 | 91刺激视频| 九九av | 久久8| 日本三级久久 | 日韩欧美第二页 | 一级片免费在线 | 国产精品成人免费精品自在线观看 | 日日骑 | 日韩精品一区二区三区中文字幕 | 久久久久久久久久免费视频 | 成人a免费看 | 九九九九九九精品任你躁 | 成人av播放 | 亚洲天堂香蕉 | 精品国产视频在线 | 黄色在线免费观看网址 | www.黄色网.com | 91成人国产 | 91在线蜜桃臀 | 国产精品网在线观看 | 久久一区国产 | 国产精品一区二区三区在线免费观看 | 久久久久美女 | 国产第一页在线播放 | 综合在线观看色 | 久草青青在线观看 | 在线va视频 | 一级片黄色片网站 | 美女视频是黄的免费观看 | 国产特级毛片aaaaaa毛片 | 午夜视频亚洲 | 六月婷婷久香在线视频 | 少妇bbb | 久久免费观看少妇a级毛片 久久久久成人免费 | 黄色三级免费看 | 久久涩涩网站 | 免费a视频| 97超碰人人澡人人爱学生 | www.色五月.com | 韩国av电影在线观看 | 中文字幕视频在线播放 | aⅴ视频在线 | 九九一级片 | 激情影音先锋 | 欧美 日韩 国产 中文字幕 | 色综合久久久久 | 天天爽夜夜爽人人爽一区二区 | 9在线观看免费 | a电影免费看 | 国外调教视频网站 | 九九免费在线观看视频 | 亚洲专区视频在线观看 | 国产成人61精品免费看片 | 亚洲精品成人在线 | 亚洲闷骚少妇在线观看网站 | 在线小视频你懂得 | 国产精品国产精品 | 国产精品久久久久永久免费观看 | 综合网五月天 | 91大神dom调教在线观看 | av在线电影播放 | 国产精品va | 国产成人三级在线观看 | 91色综合| 中文字幕乱视频 | 在线小视频国产 | 久久久久久网址 | 色妞色视频一区二区三区四区 | 久久久久女教师免费一区 | 在线电影播放 | 国产91精品一区二区 | 国产高清在线看 | 在线观看视频99 | 久久久久激情视频 | 久热av| www.狠狠色.com | 91超碰免费在线 | 中文字幕免费 | 亚洲视频h | 国产专区第一页 | 久久精品99久久久久久 | 色瓜 | 99精品欧美一区二区蜜桃免费 | 欧美国产视频在线 | 久久精品一区二区三区中文字幕 | 国产专区第一页 | 极品久久久 | 中文字幕在线视频国产 | 激情伊人 | 亚洲区视频在线观看 | 久久国产视屏 | 国际精品久久 | 色播五月激情五月 | 亚洲 欧美 综合 在线 精品 | 久久99久久99精品免视看婷婷 | 午夜黄色一级片 | 久久久久亚洲最大xxxx | 久久免费视频99 | 国产精品18久久久久久久久久久久 | 一区二区三区日韩精品 | 午夜视频在线观看欧美 | 色夜影院 | 国产精品9999 | 麻豆成人网 | av在线最新 | 伊人五月天综合 | www黄色| 日韩v在线91成人自拍 | 免费在线观看午夜视频 | 日韩免费视频在线观看 | 天天草av| 狠狠色丁香婷婷综合最新地址 | 99久久综合国产精品二区 | 国产高清专区 | 人人澡人人干 | 在线小视频国产 | 韩国三级在线一区 | 99久久99久久精品国产片 | 国产免费叼嘿网站免费 | 一区二区视频免费在线观看 | 亚洲在线视频免费 | 日韩欧美精品一区 | 在线精品亚洲一区二区 | 欧美精品在线一区 | 国产精品久久久久一区 | 伊人天堂久久 | 久久久久人人 | 亚洲欧美日韩在线一区二区 | 天天干天天操天天射 | 日韩成人免费观看 | 激情伊人五月天久久综合 | 久久免费视频这里只有精品 | 色资源二区在线视频 | 国产精品粉嫩 | 免费人成在线观看网站 | 欧美 日韩 久久 | 国产精品一区二区三区在线免费观看 | 日本aaaa级毛片在线看 | 一级片黄色片网站 | 国产 中文 日韩 欧美 | 国产黄a三级三级 | 午夜 久久 tv | 五月婷婷网站 | 91最新视频 | 99精品视频免费观看 | 国产97在线视频 | 黄色资源网站 | 日本精品视频一区二区 | 亚洲专区在线播放 | 久久国产精品免费视频 | 超碰在线人 | 97av精品| 久久久久亚洲a | 亚洲综合在线五月天 | 久久综合久久88 | 99久久99久久免费精品蜜臀 | 99精品偷拍视频一区二区三区 | 夜夜干天天操 | 日韩三区在线观看 | 日韩mv欧美mv国产精品 | 久久99在线 | 免费人成在线观看网站 | 免费韩国av | 99r精品视频在线观看 | 91视频a | 在线成人免费电影 | 国产麻豆精品免费视频 | 黄色特级毛片 | 亚洲精品乱码久久久久v最新版 | 久久久精品高清 | 国产在线不卡精品 | 国内揄拍国内精品 | 日韩毛片在线免费观看 | 成人黄色电影视频 | 在线播放日韩 | 国产成人精品一二三区 | 亚洲成人av在线电影 | 天天干天天射天天插 | 黄色大片网 | 丁香国产视频 | 国产视频精品网 | av观看久久久| 97爱爱爱 | 亚洲黄色免费在线看 | 国产裸体视频网站 | 国产精品igao视频网网址 | 人人干免费 | 久久无码av一区二区三区电影网 | 欧美激情一区不卡 | 免费成人在线观看视频 | 欧美大片第1页 | 最新国产精品拍自在线播放 | 日韩三级av | 中文字幕日韩av | a在线观看免费视频 | 国产女人40精品一区毛片视频 | www.五月天色| 免费网站看av片 | 国产精品一区二区三区在线免费观看 | 欧美日韩一区二区在线观看 | 国产视频精品在线 | 久草在线观看 | 精品一区二区影视 | 99免费在线 | 亚洲精品系列 | 最近免费观看的电影完整版 | 在线观看一区二区精品 | 中文字幕中文 | 国产精品一区二区三区99 | 日韩系列| www日韩在线| 久久久视屏 | 色综合久久久久久久久五月 | 午夜精品久久久久久久久久久 | 久草.com| 免费在线播放av电影 | 成人免费看视频 | 久久久久久久久久久久国产精品 | 国产精彩视频一区 | 中文字幕免费高 | 国产99久久久国产精品免费看 | 日韩影片在线观看 | 国产99一区视频免费 | 成人久久电影 | 四虎精品成人免费网站 | 91手机在线看片 | 国产成人精品一区二区三区福利 | 国产视频一区精品 | av日韩中文 | 激情婷婷综合网 | 日韩在线不卡视频 | 欧美日韩视频观看 | 中文字幕高清av | 亚洲成人黄色网址 | 亚洲欧洲国产精品 | 国产玖玖在线 | 亚洲激情视频 | 免费观看www7722午夜电影 | 免费在线观看一区二区三区 | .精品久久久麻豆国产精品 亚洲va欧美 | av中文电影| 久久在线免费 | 精品美女久久久久 | 九九99| 国产一区二区三区久久久 | 探花视频在线版播放免费观看 | 久久久久久久久久久免费视频 | 免费观看成年人视频 | 国产一区二区在线播放 | 久久国产精品99国产精 | 深爱激情av | 日韩av电影中文字幕在线观看 | 色综合久久久久久久 | 国产精品亚州 | 国产大片免费久久 | 免费日韩三级 | 97超碰香蕉 | 国产成人精品午夜在线播放 | 成人性生交视频 | 国产精品久久久区三区天天噜 | 97免费在线观看视频 | 亚洲第一香蕉视频 | 玖玖999 | 在线色吧| 在线日韩| 亚洲精品在线电影 | 三上悠亚一区二区在线观看 | 国产精品2018 | 99精品国产高清在线观看 | www.狠狠色.com| 亚洲精品国产日韩 | 2018亚洲男人天堂 | 久久国产精品色av免费看 | 国产精品二区在线观看 | 九九九热视频 | 国产一线二线三线在线观看 | 成年人看片网站 | 91在线porny国产在线看 | av一本久道久久波多野结衣 | 能在线看的av | 精品美女在线视频 | 毛片一区二区 | 婷婷色在线观看 | 国产精品美女久久久久久久久久久 | 免费视频久久 | 国产美女被啪进深处喷白浆视频 | 国产自在线| 国产一区成人 | 久久中文字幕导航 | 亚洲精品美女久久 | 欧美日本高清视频 | 日韩精品一区在线播放 | 国产精品一区二区吃奶在线观看 | 丝袜美腿一区 | 午夜精品福利一区二区三区蜜桃 | 国产免费一区二区三区最新 | 99亚洲视频 | 国产日产精品一区二区三区四区的观看方式 | 九九热免费在线视频 | 久久新| 国产亚洲欧美精品久久久久久 | 欧美一区免费观看 | 久久99欧美 | 国产超碰在线 | 色综合色综合久久综合频道88 | 99国产精品久久久久久久久久 | 五月综合激情婷婷 | 超碰97国产精品人人cao | 欧美午夜激情网 | 久久精品国产一区二区三 | 天天干天天操天天操 | 久久在线视频精品 | 天天干天天天天 | 中文字幕在线观看第三页 | 久久欧洲视频 | 亚洲精品视频网址 | 91av视频在线播放 | 丁香六月天婷婷 | 深夜福利视频在线观看 | 福利视频在线看 | 国产一区久久久 | 色六月婷婷 | 在线观看免费黄视频 | 99久久精品国产网站 | 久久系列 | 黄色特一级 | 国产亚洲成av人片在线观看桃 | 在线免费观看视频一区二区三区 | 狠狠色丁香婷婷综合欧美 | 日本女人逼 | 中文字幕日韩av | 久草在线| 亚洲另类xxxx | 免费中文字幕视频 | wwxxxx日本| 午夜精品久久久久久久99热影院 | 日韩美女免费线视频 | 亚洲一级电影在线观看 | 亚洲黄色免费在线看 | 五月天久久婷婷 | 高清免费av在线 | 蜜臀久久99精品久久久无需会员 | 美女网站在线观看 | 国产九色在线播放九色 | 视频福利在线观看 | 日日躁你夜夜躁你av蜜 | 国产精品白虎 | 丁香六月综合网 | 久久精品黄 | 日韩有码在线观看视频 | 国产91免费在线 | 亚洲一级性 | 二区三区在线视频 | 国产超碰在线 | av在线网站观看 | 天天看天天操 |