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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

实践教程 | 万字长文,值得收藏/参考的OpenCV C++基础代码

發布時間:2023/12/31 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 实践教程 | 万字长文,值得收藏/参考的OpenCV C++基础代码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

點擊上方“3D視覺工坊”,選擇“星標”

干貨第一時間送達

作者丨卡拉肖克-X

來源丨OpenCV學堂

編輯丨極市平臺

導讀

?

一位友好人士做的B站OpenCV4.x C++ 快速入門30講視頻課程的筆記總結!

01 環境搭建

環境配置了一個早上,到10.48分配置完畢,有點難受。還好最后顯示出第一張圖片。

#include<opencv2/opencv.hpp> #include<iostream>usingnamespacestd; usingnamespace cv; int main() {Mat src = imread("D:/images/011.jpg",IMREAD_GRAYSCALE);//讀取進來的數據以矩陣的形勢,第二個參數代表顯示一張灰度圖像。if (src.empty()) {printf("could not load image");//如果圖片不存在 將無法讀取,打印到終端。}//超過屏幕的圖像無法顯示時候調用此函數。namedWindow("輸入窗口", WINDOW_FREERATIO);//創建了一個新窗口,參數1表示名稱,第二個參數代表一個自由的比例imshow("輸入窗口", src);//表示顯示在新創建的輸入窗口上,第一個參數表示窗口名稱,src表示數據對象Mat waitKey(0);//執行到這句,程序阻塞。參數表示延時時間。單位msdestroyAllWindows();//銷毀前面創建的顯示窗口return0; }

第一節課介紹了如何讀取第一張圖片,并且顯示出來,通過調用imread函數讀取照片,再調用imshow顯示圖片到窗口。同時,講述了如何打印灰度圖像,圖片讀取失敗的處理方式,代碼注釋詳細介紹了每條語句的意思。

02 顯示圖象

1、色彩空間轉換函數 cvtColor
2、圖像的保存

#include<opencv2/opencv.hpp> using namespace cv;class QuickDemo //創建一個QuickDemo對象 {public:void colorSpace_Demo(Mat &imge); //定義一個類,里面包含輸入一個圖片,對圖片操作 };#include<quickopencv.h> void QuickDemo::colorSpace_Demo(Mat &image) {Mat gray, hsv;//定義2個矩陣類的圖像gray和hsv,cvtColor(image,hsv,COLOR_BGR2HSV);//圖像轉換函數,可以把image轉成hsv,第三個參數是轉成的類型cvtColor(image,gray,COLOR_BGR2GRAY);//圖像轉換函數,可以把image轉成hsv,第三個參數是轉成的類型imshow("HSV",hsv);imshow("灰度",gray);imwrite("D:/hsv.jpg",hsv);//保存圖片,前面是保存圖的地址,后面是保存圖的名稱imwrite("D:/gray.jpg",gray); }#include<opencv2/opencv.hpp> #include<iostream> #include<quickopencv.h>using namespace std; using namespace cv; int main() {Mat src = imread("D:/images/1.jpg",IMREAD_ANYCOLOR);//B,G,R實際上0-255三色。3通道//讀取進來的數據以矩陣的形勢,第二個參數代表顯示一張灰度圖像。if (src.empty()) {printf("could not load image");//如果圖片不存在 將無法讀取,打印到終端。return-1;}//超過屏幕的圖像無法顯示時候調用此函數。namedWindow("輸入窗口", WINDOW_FREERATIO);//創建了一個新窗口,參數1表示名稱,第二個參數代表一個自由的比例imshow("輸入窗口", src);//表示顯示在新創建的輸入窗口上,第一個參數表示窗口名稱,src表示數據對象Mat //在主函數中調用之前創建的類對象 QuickDemo qd;qd.colorSpace_Demo(src);waitKey(0);//執行到這句,程序阻塞。參數表示延時時間。單位msdestroyAllWindows();//銷毀前面創建的顯示窗口return0; }

這節主要介紹了創建一個類對象,然后通過類對象調用函數,在main主函數中進行調用實現類對象中的功能,比如轉換成HSV類型圖片和GRAY類型圖片,最后通過imwrite函數進行圖像的保存。

03 圖像對象的創建與賦值

1、怎么操作mat
2、怎么訪問每一個像素點
3、怎么創建一個空圖或者mat

void QuickDemo::mat_creation_demo(Mat &image) {Mat m1, m2;m1 = image.clone();image.copyTo(m2);//創建空白圖像Mat m3 = Mat::ones(Size(400, 400), CV_8UC3);//創建8*8的CV8位的無符號的n通道的unsigned char//ones&zeros是初始化的方法m3 = Scalar(255, 0, 0);//給三個通道都賦值127 ,單通道賦值方法 m3 = 127;//m3初始為藍色//數據的寬度和長度是由通道數決定的。//std::cout << "width:"<<m3.cols<<"height"<< m3.rows <<"channels"<<m3.channels()<< std::endl;//用來查看寬度,高度與通道數。/*std::cout << m3 << std::endl;*/Mat m4 = m3.clone();//賦值M4就是M3 M4改變了,M3也改變了,沒有產生新的自我(M4與M3同體)//M4為M3的克隆,M3還是原來的顏色,不會改變。(M4與M3不同體,各自是各自的顏色)//m3.copyTo(m4);//把M3賦值給M4,M4就是藍色m4 = Scalar(0, 255, 255);//改變m4的顏色為黃色 ,m4也改變imshow("圖像3", m3);//標題和圖像名稱 顯示圖像m3 純藍色imshow("圖像4", m4);//標題和圖像名稱 }

本節課介紹了如何創建一個Mat對象,通過創建新的Mat對象來創建用戶的特定的底色畫布,創建圖像的基本類型有兩種一種是ones一種是zeros,ones()中的第一個參數代表圖像的大小,第二個參數代表創建幾維的圖像,UC代表無符號字符型,數組3代表通道數。克隆和賦值的區別,克隆就是產生一個新的對象,新對象改變屬性,舊對象屬性不變(各自為政)。賦值是二者同體,當新屬性發生改變,舊屬性也發生改變(二者同體)。

04 圖像像素的讀寫操作

如何遍歷和修改每個像素點的數值,分為單通道和多通道。訪問模式模式也有兩種。第一種是數組訪問模式,用最常規的數組下標訪問像素值。

void QuickDemo::pixel_visit_demo(Mat &image) {int dims = image.channels();int h = image.rows;int w = image.cols;for (int row = 0; row < h; row++) {for (int col = 0; col < w; col++) {if (dims == 1) //單通道的灰度圖像{int pv = image.at<uchar>(row, col);//得到像素值image.at<uchar>(row, col) = 255 - pv;//給像素值重新賦值}if (dims == 3) //三通道的彩色圖像{Vec3b bgr = image.at<Vec3b>(row, col); //opencv特定的類型,獲取三維顏色,3個值image.at<Vec3b>(row, col)[0] = 255 - bgr[0];image.at<Vec3b>(row, col)[1] = 255 - bgr[1];image.at<Vec3b>(row, col)[2] = 255 - bgr[2];//對彩色圖像讀取它的像素值,并且對像素值進行改寫。}}}namedWindow("像素讀寫演示", WINDOW_FREERATIO);imshow("像素讀寫演示", image); }

第二種為指針訪問模式,指定一個指針為圖片的首地址,通過循環遍歷,指針++,一次往后推。

void QuickDemo::pixel_visit_demo(Mat &image) {int dims = image.channels();int h = image.rows;int w = image.cols;for (int row = 0; row < h; row++){uchar *current_row = image.ptr<uchar>(row);for (int col = 0; col < w; col++){if (dims == 1) //單通道的灰度圖像{int pv = *current_row;//得到像素值*current_row++ = 255 - pv;//給像素值重新賦值}if (dims == 3) //三通道的彩色圖像{*current_row++ = 255 - *current_row; //指針每做一次運算,就向后移動一位*current_row++ = 255 - *current_row;*current_row++ = 255 - *current_row;}}}namedWindow("像素讀寫演示", WINDOW_FREERATIO);imshow("像素讀寫演示", image);}

本節主要介紹了通過兩種遍歷的方式訪問圖像的像素值,并且改變圖像的像素值。

05 圖像像素的操作

對圖像的各個像素點實現加減乘除的操作。介紹了常用的除爆函數saturate_cast,防止數值過界。

void QuickDemo::operators_demo(Mat &image) {Mat dst = Mat::zeros(image.size(), image.type());Mat m = Mat::zeros(image.size(), image.type());dst = image - Scalar(50, 50, 50);m = Scalar(50, 50, 50);multiply(image,m,dst);//乘法操作 apiimshow("乘法操作", dst);add(image, m, dst);//加法操作 apiimshow("加法操作", dst);subtract(image, m, dst);//減法操作 apiimshow("減法操作", dst);divide(image, m, dst);//除法操作 apinamedWindow("加法操作", WINDOW_FREERATIO);imshow("加法操作", dst);//加法操作底層int dims = image.channels();int h = image.rows;int w = image.cols;for (int row = 0; row < h; row++){for (int col = 0; col < w; col++){Vec3b p1 = image.at<Vec3b>(row, col); //opencv特定的類型,獲取三維顏色,3個值Vec3b p2 = m.at<Vec3b>(row, col);dst.at<Vec3b>(row, col)[0] = saturate_cast<uchar>(p1[0] + p2[0]);//saturate_cast用來防爆,小于0就是0,大于255就是255dst.at<Vec3b>(row, col)[1] = saturate_cast<uchar>(p1[1] + p2[1]);dst.at<Vec3b>(row, col)[2] = saturate_cast<uchar>(p1[2] + p2[2]);//對彩色圖像讀取它的像素值,并且對像素值進行改寫。}}imshow("加法操作", dst); }

介紹了四種不同的API實現,并且演示了一種加法的算法。

06 滾動條演示操作-調整圖片亮度

本節介紹怎么通過createTrackbar來設置一個進度條,實現圖片的亮度調節。

Mat src, dst, m; int lightness = 50;//定義初始的亮度為50 static void on_track(int ,void*) {m = Scalar(lightness,lightness,lightness);//創建調整亮度的數值subtract(src, m, dst);//定義亮度變化為減imshow("亮度調整", dst);//顯示調整亮度之后的圖片 } void QuickDemo::tracking_bar_demo(Mat &image) {namedWindow("亮度調整",WINDOW_AUTOSIZE);dst = Mat::zeros(image.size(), image.type());//圖片的初始化創建一個和image大小相等,種類相同的圖像m = Mat::zeros(image.size(), image.type());//圖片的初始化創建一個和image大小相等,種類相同的圖像src = image;//給src賦值int max_value = 100;//定義最大值為100createTrackbar("Value Bar:", "亮度調整", &lightness, max_value,on_track);//調用函數實現功能。on_track(50, 0); }

07 滾動條演示操作-傳遞參數

無類型指針類型轉換與參數傳遞!

static void on_lightness(int b ,void* userdata) {Mat image = *((Mat*)userdata);Mat dst = Mat::zeros(image.size(), image.type());Mat m = Mat::zeros(image.size(), image.type());m = Scalar(b,b,b);addWeighted(image,1.0,m,0,b,dst);//融合兩張圖imshow("亮度&對比度調整", dst); } static void on_contrast(int b, void* userdata) {Mat image = *((Mat*)userdata);Mat dst = Mat::zeros(image.size(), image.type());Mat m = Mat::zeros(image.size(), image.type());double contrast = b / 100.0;addWeighted(image, contrast, m, 0.0, 0, dst);//融合兩張圖imshow("亮度&對比度調整", dst); } void QuickDemo::tracking_bar_demo(Mat &image) {namedWindow("亮度&對比度調整",WINDOW_AUTOSIZE);int lightness = 50;int max_value = 100;int contrast_value = 100;createTrackbar("Value Bar:", "亮度&對比度調整", &lightness, max_value, on_lightness,(void*)(&image));createTrackbar("Contrast Bar:", "亮度&對比度調整", &contrast_value, 200, on_contrast, (void*)(&image));on_lightness(50, &image); }

08 鍵盤響應操作

本節介紹通過鍵盤輸入,終端能夠讀取響應的信息。

void QuickDemo::key_demo(Mat &image) {Mat dst= Mat::zeros(image.size(), image.type());while (true) {char c = waitKey(100);//停頓100ms 做視頻處理都是1if (c == 27) { //esc 退出應用程序break;}if (c == 49)//key#1{std::cout <<"you enter key #1" << std::endl;cvtColor(image, dst, COLOR_BGR2GRAY);}if (c == 50)//key#1{std::cout << "you enter key #2" << std::endl;cvtColor(image, dst, COLOR_BGR2HSV);}if (c == 51)//key#1{std::cout << "you enter key #3" << std::endl;dst = Scalar(50, 50, 50);add(image,dst,dst);}imshow("鍵盤響應",dst);std::cout << c << std::endl;} }

通過鍵盤輸入,在終端得到響應,輸入不同的鍵值,得到不一樣的結果。

09 opencv自帶顏色操作

void QuickDemo::color_style_demo(Mat &image) {int colormap[] = {COLORMAP_AUTUMN ,COLORMAP_BONE,COLORMAP_CIVIDIS,COLORMAP_DEEPGREEN,COLORMAP_HOT,COLORMAP_HSV,COLORMAP_INFERNO,COLORMAP_JET,COLORMAP_MAGMA,COLORMAP_OCEAN,COLORMAP_PINK,COLORMAP_PARULA,COLORMAP_RAINBOW,COLORMAP_SPRING,COLORMAP_TWILIGHT,COLORMAP_TURBO,COLORMAP_TWILIGHT,COLORMAP_VIRIDIS,COLORMAP_TWILIGHT_SHIFTED,COLORMAP_WINTER};Mat dst;int index = 0;while (true) {char c = waitKey(100);//停頓100ms 做視頻處理都是1if (c == 27) { //esc 退出應用程序break;}if (c == 49)//key#1 按下按鍵1時,保存圖片到指定位置{std::cout << "you enter key #1" << std::endl;imwrite("D:/gray.jpg", dst);}applyColorMap(image, dst, colormap[index%19]);//循環展示19種圖片index++;imshow("循環播放", dst);} }

偽色彩填充與顏色表匹配

10 圖像像素的邏輯操作

本節介紹如何對圖像的像素進行操作,包括與、或、非、異或,矩形在圖像中的繪制。

void QuickDemo::bitwise_demo(Mat &image) {Mat m1 = Mat::zeros(Size(256,256),CV_8UC3);Mat m2 = Mat::zeros(Size(256,256),CV_8UC3);rectangle(m1,Rect(100,100,80,80),Scalar(255,255,0),-1,LINE_8,0);//小于0表示填充,大于0表示繪制rectangle(m2,Rect(150,150,80,80), Scalar(0,255,255), -1, LINE_8, 0);imshow("m1", m1);imshow("m2", m2);Mat dst;bitwise_and(m1, m2, dst);//位操作與bitwise_or(m1, m2, dst);//位操作或bitwise_not(image, dst);//取反操作bitwise_xor(m1, m2, dst);//異或操作imshow("像素位操作", dst); } rectangle(m1,Rect(100,100,80,80),Scalar(255,255,0),-1,LINE_8,0);

這個函數參數1是圖片名稱,參數2是矩形的起始&末尾位置,參數3 Scalar表示將要繪制圖像的顏色,參數4表示小于0表示填充,大于0表示繪制,參數5表示四鄰域或者八鄰域的繪制,參數6表示中心坐標或者半徑坐標的小數位數。

11 通道的分離與合并

本節介紹如何把不同的通道給分離,歸并,使得能顯現出來不同的通道顏色。

void QuickDemo::channels_demo(Mat &image) { std::vector<Mat>mv;split(image, mv);//imshow("藍色", mv[0]);//0,1,2三個通道分別代表BGR。//關閉2個通道意味著開啟一個通道。//imshow("綠色", mv[1]);//imshow("紅色", mv[2]);Mat dst;mv[0] = 0;mv[2] = 0;merge(mv, dst);imshow("藍色", dst);int from_to[] = { 0,2,1,1,2,0 };//把通道相互交換,第0->第2,第一->第一,第二->第0mixChannels(&image,1,&dst,1,from_to,3);//3表示3個通道//參數1指針引用圖像->參數2引用到dstimshow("通道混合", dst); }

M[0],M[1],M[2]分別代表BGR個不同的通道。要開啟某個通道只需要關閉另外的一個通道即可。第二個內容為通道的合并,將不同通道的像素值進行轉換操作,使圖片呈現出不同的效果。

12 圖像色彩空間轉換

本節內容實現任務是提取任務的輪廓,首先把RGB色彩空間的圖片轉換到HSV空間中,其次,提取圖片的mask,通過使用inrangle提取hsv色彩空間的顏色。HSV色彩空間的顏色

void QuickDemo::inrange_demo(Mat &image) {Mat hsv;cvtColor(image, hsv, COLOR_BGR2HSV);Mat mask;inRange(hsv,Scalar(35,43,46),Scalar(77,255,255),mask);//35,43,46根據圖片中綠色最低來確定最小值。//77,255,255 提取//參數1低范圍,參數2高范圍//將hsv中的由低到高的像素點提取出來并且存儲到mask當中。imshow("mask",hsv);Mat redback = Mat::zeros(image.size(), image.type());redback = Scalar(40, 40, 200);bitwise_not(mask, mask);imshow("mask", mask);image.copyTo(redback, mask);//把redback復制到mask,mask通過inRange得到。imshow("roi提取", hsv); }

13 圖像像素值統計

分別定義雙精度型變量 minv和maxv。指針變量minLoc,maxLoc;因為這圖片是多通道的,所以使用一個容器裝取數值,并且用split分離圖片到MV中通過for循環操作,遍歷圖片信息,并且打印信息到終端。圖像信息包括,方差,均值,大小。

void QuickDemo::pixel_statistic_demo(Mat &image) {double minv, maxv;//定義最值Point minLoc, maxLoc;//定義最值地址std::vector<Mat>mv;//mv是一個Mat類型的容器 裝在這個容器內split(image, mv);for (int i = 0; i < mv.size(); i++) {//分別打印各個通道的數值minMaxLoc(mv[i], &minv, &maxv, &minLoc, &maxLoc, Mat());//求出圖像的最大值和最小值。std::cout <<"No.channels:"<<i<<"minvalue:" << minv << "maxvalue:" << maxv << std::endl;}Mat mean, stddev;meanStdDev(image, mean, stddev);//求出圖像的均值和方差std::cout << "mean:" << mean << std::endl;std::cout << "stddev:" << stddev << std::endl; }

14 圖像幾何形狀的繪制

本節課介紹如何繪制橢圓,矩形,直線,圓等

void QuickDemo::drawing_demo(Mat &image) {Rect rect;rect.x = 200;rect.y = 200;rect.width = 100;rect.height = 100;Mat bg = Mat::zeros(image.size(),image.type());rectangle(image, rect, Scalar(0, 0, 255), -1, 8, 0);//參數1為繪圖的底圖或者畫布名稱,參數2位圖片的起始,寬度,高度//參數3代表填充顏色。參數4大于0是線小于0是填充//參數5表示鄰域填充,參數6默認值為0circle(bg, Point(350, 400), 15, Scalar(0, 0, 255), 2, LINE_AA, 0);//參數2位圖片中心位置,參數3為半徑為15的圓Mat dst;//addWeighted(image, 0.7, bg, 0.3, 0, dst);RotatedRect rtt;rtt.center = Point(200, 200);rtt.size = Size(100, 200);rtt.angle = 0.0;line(bg,Point(100,100),Point(350,400), Scalar(0, 0, 255), 8, LINE_AA, 0);//line_AA表示去掉鋸齒ellipse(bg,rtt, Scalar(0, 0, 255), 2, 8);imshow("矩形的繪制",bg); }

15 隨機數與隨機顏色

本節主要介紹如何能產生一個隨機數字和隨機顏色,并且用線條的方式顯示出來。

void QuickDemo::random_drawing() {Mat canvas = Mat::zeros(Size(512,512), CV_8UC3);int w = canvas.cols;int h = canvas.rows;RNG rng(12345);while (true) {int c = waitKey(10);if (c == 27) {break;}int x1 = rng.uniform(0,canvas.cols);int y1 = rng.uniform(0, h);int x2 = rng.uniform(0, canvas.cols);int y2 = rng.uniform(0, h);int b = rng.uniform(0, 255);int g = rng.uniform(0, 255);int r = rng.uniform(0, 255);canvas = Scalar(0,0,0);line(canvas, Point(x1, y1), Point(x2, y2), Scalar(b,g,r), 8, LINE_AA,0);//line_AA表示去掉鋸齒 imshow("隨機繪制演示", canvas);} }

16 多邊形填充與繪制

這節課介紹了2種多邊形繪制的實現方式。

void QuickDemo::polyline_drawing_demo(Mat &image) {Mat canvas = Mat::zeros(Size(512, 512), CV_8UC3);Point p1(100, 100);Point p2(350, 100);Point p3(450, 280);Point p4(320, 450);Point p5(80, 400);std::vector<Point>pts;//將5個點裝入一個容器內。pts.push_back(p1);//未初始化數組容量,只能用pushback操作//如果初始化,可以用數組下標操作。pts.push_back(p2);pts.push_back(p3);pts.push_back(p4);pts.push_back(p5);//fillPoly(canvas, pts, Scalar(122, 155, 255), 8, 0);//填充多邊形//polylines(canvas, pts, true, Scalar(0, 0, 255), 2, 8, 0);//繪制多邊形/*參數1表示畫布,參數2表示點集,參數3表示true,參數4顏色參數5表示線寬,參數6表示渲染方式,參數7表示相對左上角(0,0)的位置*///單個API搞定圖片的繪制填充std::vector<std::vector<Point>>contours;contours.push_back(pts);drawContours(canvas,contours,-1, Scalar(0, 0, 255),-1);//參數2表示容器名稱,參數3為正表示多邊形的繪制,為負表示多邊形的填充imshow("多邊形繪制", canvas); }

第一種方式,通過標記各個點,然后存儲到容器中,之后對容器中的點進行操作。填充多邊形調用fillPoly,繪制多邊形調用polylines。第二種方式,使用一個API接口繪制。通過一個容器中的存儲的點組成的另一個容器。

17 鼠標操作與響應

鼠標事件響應與繪制!考察基本的圖形繪制編程能力。

//參數1表示鼠標事件。 Point sp(-1, -1);//鼠標的開始的位置 Point ep(-1, -1); Mat temp; static void on_draw(int event,int x,int y,int flags,void *userdata) {Mat image = *((Mat*)userdata);if(event == EVENT_LBUTTONDOWN)//如果鼠標的左鍵按下{sp.x = x;sp.y = y;std::cout << "start point" <<sp<< std::endl;}elseif (event == EVENT_LBUTTONUP){ep.x = x;ep.y = y;int dx = ep.x - sp.x;int dy = ep.y - sp.y;if (dx > 0 && dy > 0) {Rect box(sp.x, sp.y, dx, dy);imshow("ROI區域", image(box));rectangle(image, box, Scalar(0, 0, 255), 2, 8, 0);imshow("鼠標繪制", image);sp.x = -1;sp.y = -1;//復位,為下一次做準備}}elseif (event == EVENT_MOUSEMOVE) {if (sp.x > 0 && sp.y > 0){ep.x = x;ep.y = y;int dx = ep.x - sp.x;int dy = ep.y - sp.y;if (dx > 0 && dy > 0){Rect box(sp.x, sp.y, dx, dy);temp.copyTo(image);rectangle(image, box, Scalar(0, 0, 255), 2, 8, 0);imshow("鼠標繪制", image);}}} } void QuickDemo::mouse_drawing_demo(Mat &image) {namedWindow("鼠標繪制", WINDOW_AUTOSIZE);setMouseCallback("鼠標繪制", on_draw,(void*)(&image));//設置窗口的回調函數。參數1表示名稱,參數2表示調用on_drawimshow("鼠標繪制", image);temp = image.clone(); }

18 圖像像素類型的轉換與歸一化

像素值歸一化是很常見的預處理方式,OpenCV支持字節與浮點數的圖象顯示。

void QuickDemo::norm_demo(Mat &image) {Mat dst;//定義一個名為dst的二值化類型的數據std::cout << image.type() << std::endl;//打印出來圖片的類型image.convertTo(image,CV_32F);//將dst數據轉換成浮點型float32位數據。std::cout << image.type() << std::endl;//再次打印轉換后的數據類型normalize(image, dst, 1.0, 0, NORM_MINMAX);//進行歸一化操作std::cout << dst.type() << std::endl;//打印歸一化操作之后的數據imshow("圖像的歸一化", dst);//顯示歸一化的圖像//CV_8UC3 ,CV_32FC3 //3通道每個通道8位的UC類型//轉換后 3通道 每個通道32位的浮點數 }

19 圖像的放縮與插值

介紹基本的圖像變換大小的方法。圖像的差值處理主要有線性、雙線性差值、盧卡斯差值、雙立方差值。

void QuickDemo::resize_demo(Mat &image) {Mat zoomin, zoomout;int h = image.rows;int w = image.cols;resize(image, zoomin, Size(w/2, h/2),0,0,INTER_LINEAR);//線性差值操作。imshow("zoomin", zoomin);; resize(image, zoomout, Size(w*1.5, h*1.5), 0, 0, INTER_LINEAR);imshow("zoomin", zoomout);// }

20 圖像的翻轉

圖像的上下、左右、對角線翻轉

void QuickDemo::flip_demo(Mat &image) {Mat dst;flip(image, dst, 0);//上下翻轉 x對稱flip(image, dst, 1);//左右翻轉 y對稱flip(image, dst, -1);//旋轉180°imshow("圖像翻轉",dst); }

21 圖像的旋轉

圖像旋轉的基本原理,變換矩陣M的計算,中心位置偏移計算等。

void QuickDemo::rotate_demo(Mat &image) {Mat dst, M;int h = image.rows;//定義圖片的高度int w = image.cols;//定義圖片的寬度M = getRotationMatrix2D(Point(w / 2, h / 2),45,1.0);doublecos = abs(M.at<double>(0, 0));doublesin = abs(M.at<double>(0, 1));int nw = cos * w + sin * h;int nh = sin * w + cos * h;M.at<double>(0, 2) += (nw / 2 - w / 2);M.at<double>(1, 2) += (nh / 2 - h / 2);//參數1原來圖像的中心位置。參數2角度是多少。參數3是圖像本身大小的放大縮小warpAffine(image, dst, M,Size(nw,nh),INTER_LINEAR,0, Scalar(0, 0, 255));imshow("旋轉演示", dst); }

22 視頻文件攝像頭使用

本節介紹了如何讀取一個視頻,以及調用電腦的攝像頭。并且對讀取到的視頻進行操作。

void QuickDemo::video_demo(Mat &image) {VideoCapture capture("D:/images/123.mp4"); //讀取視頻的地址Mat frame;//定義一個二值化的 framewhile (true){capture.read(frame); //讀取視頻//flip(frame, frame, 1);//圖像鏡像操作if(frame.empty())//如果視頻為空的話 跳出操作{break;}imshow("frame", frame);//顯示視頻colorSpace_Demo(frame);//對視頻調用之前的demoint c = waitKey(100);//停頓100ms 做視頻處理都是1if (c == 27) { //esc 退出應用程序break;}}capture.release();//釋放相機的資源 }

對讀取到的視頻 操作方式有鏡像對稱。加各種濾鏡等等。

23 視頻處理與保存

視頻的屬性,SD(標清),HD(高清),UHD(超清),藍光。如何讀取視頻文件,以及讀取視頻文件的屬性,衡量視頻處理指標:FPS。保存視頻時的編碼格式。保存視頻的實際size和create的size大小保持一致。

void QuickDemo::video_demo(Mat &image) {VideoCapture capture("D:/images/123.mp4");int frame_width = capture.get(CAP_PROP_FRAME_WIDTH);//獲取視頻的寬度int frame_height = capture.get(CAP_PROP_FRAME_HEIGHT);//獲取視頻的高度int count = capture.get(CAP_PROP_FRAME_COUNT);//視頻總的幀數//fps是衡量處理視頻的能力double fps = capture.get(CAP_PROP_FPS);std::cout << "frame width" << frame_width << std::endl;std::cout << "frame height" << frame_height << std::endl;std::cout << "frame FPS" << fps << std::endl;std::cout << "frame count" << count << std::endl;VideoWriter writer("D:/test.mp4",capture.get(CAP_PROP_FOURCC),fps,Size(frame_width, frame_height),true);//參數1 保存地址。參數2 獲取圖片的格式 參數3 圖片的幀數 參數4 視頻寬高 參數5 真Mat frame;while (true){capture.read(frame);//flip(frame, frame, 1);//圖像鏡像操作if(frame.empty()){break;}imshow("frame", frame);colorSpace_Demo(frame);writer.write(frame);int c = waitKey(100);//停頓100ms 做視頻處理都是1if (c == 27) { //esc 退出應用程序break;}}capture.release();//釋放相機的資源writer.release();//釋放存放的資源 }

本節課,介紹了視頻的一些基本熟悉,緊接介紹如何獲取視頻的屬性,并且通過特定的格式保存到相應的存儲位置上。

24 圖像的直方圖

直方圖是圖像的統計學特征。表示了圖像的各個像素在0-255出現的頻率。圖像的平移旋轉都不會對性質進行改變。缺點:不能表征一張圖像。

25 直方圖的均衡化

用途:用于圖像增強,人臉檢測,衛星遙感。均衡化的圖像只支持單通道。

void QuickDemo::histogram_eq_demo(Mat &image) {Mat gray;cvtColor(image, gray, COLOR_BGR2GRAY);//直方圖均衡化只支持灰度圖像,不支持彩色圖像。imshow("灰度圖像", gray);Mat dst;equalizeHist(gray, dst);imshow("直方圖均衡化", dst); }

26 圖像的卷積操作

卷積的作用,高的往下降,低的往上升。但是會造成信息丟失。產生模糊效果。是一種線性操作,點乘,之后相加。

void QuickDemo::blur_demo(Mat &image) {Mat dst;blur(image, dst, Size(15, 15), Point(-1, -1));//參數1原始圖像,參數2卷積之后的圖像,參數3卷積的矩陣大小,支持單行或者單列的卷積操作,參數4卷積的起始點。imshow("圖像卷積操作", dst); }

27 高斯模糊

中心的數值最大,離中心距離越遠,數值越小。高斯卷積數學表達式說明:

void QuickDemo::gaussian_blur_demo(Mat &image) {Mat dst;GaussianBlur(image, dst, Size(5, 5), 15);imshow("高斯模糊", dst);//參數1表示初始圖像,參數2表示處理后的圖像,參數3表示高斯矩陣大小 正數而且是奇數,//參數4表示西格瑪x為15 西格瑪y為15 }

28 高斯雙邊模糊

邊緣保留的濾波算法!去噪!

void QuickDemo::bifilter_demo(Mat &image) {Mat dst;bilateralFilter(image,dst,0,100,0);//參數1代表原圖,參數2代表處理之后的圖像,參數3色彩空間。參數4表示坐標空間,雙邊是指 色彩空間和坐標空間。namedWindow("雙邊模糊", WINDOW_FREERATIO);//創建了一個新窗口,參數1表示名稱,第二個參數代表一個自由的比例imshow("雙邊模糊", dst);//表示顯示在新創建的 }

29 實時視頻人臉檢測

OpenCV4.x中基于深度神經網絡模型的高實時,穩定的人臉檢測演示。

dnn::Net net = dnn::readNetFromTensorflow(root_dir+ "opencv_face_detector_uint8.pb", root_dir+"opencv_face_detector.pbtxt"); VideoCapture capture("D:/images/video/example_dsh.mp4"); Mat frame; while (true) {capture.read(frame);if (frame.empty()) {break;}Mat blob = dnn::blobFromImage(frame, 1.0, Size(300, 300), Scalar(104, 177, 123), false, false);net.setInput(blob);// NCHWMat probs = net.forward(); // Mat detectionMat(probs.size[2], probs.size[3], CV_32F, probs.ptr<float>());// 解析結果for (int i = 0; i < detectionMat.rows; i++) {float confidence = detectionMat.at<float>(i, 2);if (confidence > 0.5) {int x1 = static_cast<int>(detectionMat.at<float>(i, 3)*frame.cols);int y1 = static_cast<int>(detectionMat.at<float>(i, 4)*frame.rows);int x2 = static_cast<int>(detectionMat.at<float>(i, 5)*frame.cols);int y2 = static_cast<int>(detectionMat.at<float>(i, 6)*frame.rows);Rect box(x1, y1, x2 - x1, y2 - y1);rectangle(frame, box, Scalar(0, 0, 255), 2, 8, 0);}}imshow("人臉檢測演示", frame);int c = waitKey(1);if (c == 27) { // 退出break;} }

本文僅做學術分享,如有侵權,請聯系刪文。

下載1

在「3D視覺工坊」公眾號后臺回復:3D視覺即可下載 3D視覺相關資料干貨,涉及相機標定、三維重建、立體視覺、SLAM、深度學習、點云后處理、多視圖幾何等方向。

下載2

在「3D視覺工坊」公眾號后臺回復:3D視覺github資源匯總即可下載包括結構光、標定源碼、缺陷檢測源碼、深度估計與深度補全源碼、點云處理相關源碼、立體匹配源碼、單目、雙目3D檢測、基于點云的3D檢測、6D姿態估計源碼匯總等。

下載3

在「3D視覺工坊」公眾號后臺回復:相機標定即可下載獨家相機標定學習課件與視頻網址;后臺回復:立體匹配即可下載獨家立體匹配學習課件與視頻網址。

重磅!3DCVer-學術論文寫作投稿?交流群已成立

掃碼添加小助手微信,可申請加入3D視覺工坊-學術論文寫作與投稿?微信交流群,旨在交流頂會、頂刊、SCI、EI等寫作與投稿事宜。

同時也可申請加入我們的細分方向交流群,目前主要有3D視覺CV&深度學習SLAM三維重建點云后處理自動駕駛、多傳感器融合、CV入門、三維測量、VR/AR、3D人臉識別、醫療影像、缺陷檢測、行人重識別、目標跟蹤、視覺產品落地、視覺競賽、車牌識別、硬件選型、學術交流、求職交流、ORB-SLAM系列源碼交流、深度估計等微信群。

一定要備注:研究方向+學校/公司+昵稱,例如:”3D視覺?+ 上海交大 + 靜靜“。請按照格式備注,可快速被通過且邀請進群。原創投稿也請聯系。

▲長按加微信群或投稿

▲長按關注公眾號

3D視覺從入門到精通知識星球:針對3D視覺領域的視頻課程(三維重建系列、三維點云系列、結構光系列、手眼標定、相機標定、orb-slam3等視頻課程)、知識點匯總、入門進階學習路線、最新paper分享、疑問解答五個方面進行深耕,更有各類大廠的算法工程人員進行技術指導。與此同時,星球將聯合知名企業發布3D視覺相關算法開發崗位以及項目對接信息,打造成集技術與就業為一體的鐵桿粉絲聚集區,近2000星球成員為創造更好的AI世界共同進步,知識星球入口:

學習3D視覺核心技術,掃描查看介紹,3天內無條件退款

?圈里有高質量教程資料、可答疑解惑、助你高效解決問題

覺得有用,麻煩給個贊和在看~??

總結

以上是生活随笔為你收集整理的实践教程 | 万字长文,值得收藏/参考的OpenCV C++基础代码的全部內容,希望文章能夠幫你解決所遇到的問題。

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

婷五月激情 | 亚洲视频在线观看 | 欧美在线一二区 | 国产日韩在线视频 | 久草视频在 | 免费观看不卡av | 毛片网免费 | 91久久国产综合精品女同国语 | 亚洲精品午夜久久久 | 91福利社区在线观看 | 中文国产在线观看 | 久久精品国产免费看久久精品 | 91视频国产高清 | 在线精品国产 | 日韩午夜精品 | 色网站黄 | 久久九九精品久久 | www.国产在线视频 | 久久婷婷国产色一区二区三区 | 久久国产亚洲精品 | 黄网站色成年免费观看 | 伊人影院得得 | 亚洲影院色 | 日韩欧美xxxx | 成人av在线影院 | 99亚洲精品视频 | 国际精品久久久久 | 一区二区三区四区精品视频 | 超碰公开97 | 免费试看一区 | 久久国产精品一国产精品 | 中文高清av| 在线视频观看你懂的 | 国产一级视频免费看 | 在线国产一区 | 欧美在线观看小视频 | 中文字幕日本特黄aa毛片 | 日本资源中文字幕在线 | 国产.精品.日韩.另类.中文.在线.播放 | 六月丁香在线观看 | 久久精品爱视频 | 国产视频欧美视频 | 久久99久久99精品免费看小说 | 久99视频| 久久精品a| 欧美日韩精品电影 | 色九九影院 | 久草免费福利在线观看 | 色婷婷九月 | 日韩色爱| 丁香五婷 | 成人91在线 | 欧美日韩99| 狠狠色丁香婷婷综合久久片 | 精品国产成人av在线免 | 国产在线97| 免费高清看电视网站 | www久久久久 | 九九综合九九 | 国产自偷自拍 | 午夜天使 | 国产1区在线 | 久久久香蕉视频 | 免费在线观看a v | 久久精品久久久精品美女 | 亚洲一区精品人人爽人人躁 | 国内一区二区视频 | 日韩xxx视频 | 天天天色| 不卡在线一区 | 亚洲免费精彩视频 | 久久久一本精品99久久精品66 | 天天射天天干天天爽 | 中文字幕欲求不满 | 亚洲 成人 欧美 | 91最新地址永久入口 | 成人av日韩| 在线观看av大片 | 成人三级网站在线观看 | 久久99精品久久久久久 | 亚洲午夜久久久久久久久久久 | 国产免费观看高清完整版 | 91网页版在线观看 | 久久久久久久毛片 | 人人舔人人爽 | 激情五月播播久久久精品 | 欧美专区国产专区 | 国产视频手机在线 | 中文字幕激情 | 久久久久久国产精品 | 日日爽天天爽 | 久久久久久久国产精品视频 | 国产九九精品 | 日韩网 | 久久国产亚洲 | 99久国产 | 国产黄大片在线观看 | 国产精品久久久久国产精品日日 | 亚洲精品视频在线观看免费视频 | 在线亚洲欧美日韩 | 免费国产黄线在线观看视频 | 国产精品久久久久三级 | 中文字幕在线免费观看 | 亚洲视频每日更新 | 人人澡超碰碰 | 91成年人视频 | av网站免费线看精品 | www国产亚洲 | 免费人人干 | 久久精品视频观看 | 五月婷婷电影网 | 成人aaa毛片| av成人动漫在线观看 | 免费福利视频网站 | 日韩视频一区二区三区在线播放免费观看 | 91视频在线免费观看 | 99视频久久 | 中文字幕av最新更新 | 国产精品久久久久久久久大全 | 日韩欧美一区二区三区视频 | 一区二区三区在线观看免费视频 | 欧美专区日韩专区 | 国产伦理一区二区三区 | 国产精品九九九 | 亚洲综合欧美日韩狠狠色 | 91片在线观看 | 久久字幕网 | 草久久久 | 久久第四色 | 人人网人人爽 | 免费av高清| 九九热精品视频在线播放 | 中文字幕av日韩 | 日韩高清www| 日韩电影久久久 | 成人久久久久久久久久 | 午夜在线观看影院 | 中文字幕中文字幕在线中文字幕三区 | 色av色av色av | 中文字幕一区二区三区久久蜜桃 | 人交video另类hd | 亚洲人成免费 | 在线视频 日韩 | 四虎影视欧美 | 久久综合九色99 | 黄色一级大片在线免费看产 | 日韩精品一区二区久久 | 久久精品国产免费看久久精品 | 亚洲精品国产精品国自 | 成人在线免费小视频 | 最新av免费在线观看 | 玖玖在线观看视频 | 欧美少妇bbwhd | 天天色棕合合合合合合 | 亚洲天堂自拍视频 | 狠狠干天天射 | 91视频 - x99av| 九九久久电影 | 午夜av免费在线观看 | 91av在线不卡 | 伊人国产在线播放 | 久久字幕网 | 国产在线永久 | 精品自拍av | 99综合视频 | 99精品国产视频 | 日日干天天射 | 日本精品久久久久 | 黄色的网站在线 | 天天综合在线观看 | 亚洲精品99久久久久中文字幕 | 免费观看一级一片 | 中文不卡视频 | 亚洲精品乱码久久久久久9色 | 婷婷色六月天 | 久久精品欧美一区二区三区麻豆 | 国产在线国产 | 日韩一区在线免费观看 | 日韩美精品视频 | 久久久一本精品99久久精品 | 在线观看国产亚洲 | 开心激情网五月天 | 国产馆在线播放 | 在线观看你懂的网站 | 免费观看久久 | 婷婷色伊人 | 免费美女久久99 | 婷婷在线资源 | 99视频精品免费视频 | 波多野结衣在线播放一区 | 国产精品一区二区免费视频 | 日韩爱爱片 | 国产精品久久久久影院 | av黄色大片| 亚洲国产高清在线观看视频 | 国产视频精品久久 | 久久国产精品视频 | 国产精品免费视频一区二区 | 97成人在线观看视频 | 国产中文伊人 | 国产精品免费久久久久 | 免费视频久久久 | 国产高清在线看 | 7777xxxx| 337p西西人体大胆瓣开下部 | 美女视频黄免费的 | 久久一级片 | 中文字幕美女免费在线 | 久久在线一区 | 欧美乱码精品一区二区 | 91精品久久久久久久99蜜桃 | 欧美a级成人淫片免费看 | 中文字幕av最新 | 2021久久 | 久草网视频在线观看 | 在线精品观看 | 久久在线观看 | 欧美日韩视频 | 欧美在线观看视频一区二区 | 久久国产精品一国产精品 | 久久国产精品色av免费看 | 国语黄色片 | 国产精品午夜在线观看 | 97热视频| 麻豆视频www | 五月婷在线播放 | 9草在线| 国产成人久久av免费高清密臂 | 国产免费xvideos视频入口 | 人人狠 | 狠狠色丁香久久综合网 | av久久在线 | 亚洲无吗视频在线 | 日韩伦理片一区二区三区 | 亚洲精品国产精品久久99热 | 成人在线视频免费观看 | 91视频啪| 亚洲精品在线观看中文字幕 | 最近免费中文视频 | 中文字幕在线观看免费高清完整版 | 国产精品免费视频久久久 | 国内精品久久久久久久影视麻豆 | 91成熟丰满女人少妇 | 欧美片网站yy| 亚洲国产精品一区二区久久,亚洲午夜 | 免费看黄视频 | 久久激情视频 久久 | 欧洲一区二区三区精品 | 久久精品精品 | av一区二区三区在线播放 | 狠狠躁夜夜a产精品视频 | 人人看人人做人人澡 | 欧美精品在线观看一区 | 激情综合五月婷婷 | 久久久免费网站 | 午夜精品久久久久久久99水蜜桃 | 麻豆传媒视频观看 | 一区二区av | 天天艹天天爽 | 91九色丨porny丨丰满6 | 亚洲夜夜综合 | 亚洲欧美精品一区 | 国产在线一区二区 | 国产精品18p | 免费三级黄 | 91精品视频免费看 | 日韩在线网址 | 一区二区国产精品 | 精品99免费视频 | 91精品国自产拍天天拍 | 黄色一及电影 | 国产精品久久久久四虎 | 久草观看视频 | 不卡精品视频 | 久久一区二区三区超碰国产精品 | 国产美女免费视频 | 在线成人看片 | 午夜91在线 | 天天操天天射天天舔 | 久久久精品一区二区 | 天堂av在线7| 精品福利视频在线 | aaa免费毛片 | 亚洲国产三级在线观看 | 四虎国产精品免费 | 成人av资源网站 | 99亚洲天堂 | 日韩av在线网站 | av免费在线看网站 | 成人午夜影视 | 狠狠干狠狠艹 | 精品国产1区2区 | 色综合久久综合中文综合网 | 91精品视频在线看 | 黄网站www | 欧美小视频在线 | 免费视频久久久久久久 | 一级a性色生活片久久毛片波多野 | 四虎影视成人精品 | 麻豆91网站| www久久 | 久久精品视频国产 | 国产精品 日韩 | 色网站在线免费 | 精品国产一区二区三区久久久蜜月 | 亚洲精品在线视频播放 | 成人免费视频a | 婷婷丁香七月 | 国产一区二区三区高清播放 | 亚洲黄色片在线 | 九九精品视频在线观看 | 国产精品毛片久久久久久久久久99999999 | 日本中文字幕在线一区 | www.国产高清 | 久久国产手机看片 | 日日夜夜噜 | 顶级bbw搡bbbb搡bbbb | 在线视频观看国产 | 免费在线a| 99成人精品| 九九热只有精品 | 久久看片网站 | 久久久精品成人 | 欧美在线视频一区二区 | 亚洲精品乱码久久久久久 | 色婷婷久久久综合中文字幕 | 国产成人精品在线观看 | 在线观看成人国产 | 综合激情网| 又黄又爽的免费高潮视频 | 日韩视频一区二区在线观看 | 免费激情网 | www.av中文字幕.com | av福利在线 | 97超碰总站 | 国产精品久久久久久久久久白浆 | 最近中文字幕高清字幕在线视频 | 国产视频欧美视频 | 久热只有精品 | 在线免费精品视频 | 超碰97网站 | 福利网址在线观看 | 欧美一区二区免费在线观看 | 2019天天干天天色 | 国产亚洲综合性久久久影院 | 99久久一区 | 国产精品自产拍在线观看 | 久久午夜剧场 | 青青草国产精品 | 天天干夜夜想 | 97高清视频 | 日韩欧美一区二区三区视频 | 国产一区二区在线看 | 国产精品人成电影在线观看 | 久久久精品日本 | 一级一片免费视频 | 中文字幕在线久一本久 | 少妇自拍av | 91精品国产91久久久久福利 | 精品国产精品一区二区夜夜嗨 | 在线视频a | 天天射天天爱天天干 | www国产亚洲精品久久麻豆 | 亚洲精品久久久久久国 | 久久久久久久久久久黄色 | 波多野结衣在线观看一区二区三区 | 欧美男女爱爱视频 | 国产精品久久在线观看 | 国产一区视频在线 | 欧美电影黄色 | 特级西西www44高清大胆图片 | 久久久久久久久影院 | 久久男人免费视频 | 99热精品免费观看 | 在线激情小视频 | 三级动图 | 天堂av在线网 | 久久xx视频 | 国内精品亚洲 | 亚洲精品乱码久久久久久蜜桃91 | 亚洲精品日韩在线观看 | 免费看v片 | 最近免费中文字幕mv在线视频3 | 在线看片一区 | 少妇视频一区 | 日韩欧美在线观看一区二区三区 | 日韩,中文字幕 | 亚洲在线精品 | 日韩剧情 | 日本公妇在线观看高清 | 精品欧美小视频在线观看 | 激情偷乱人伦小说视频在线观看 | 久久情侣偷拍 | 综合天堂av久久久久久久 | 91片网 | 日韩在线观看视频一区二区三区 | 91在线区| 亚洲手机天堂 | 日韩欧美第二页 | 久久精品一区二 | 免费看的黄色录像 | 日本性xxx| 日韩欧美一区二区三区免费观看 | 久久久久久久久久久高潮一区二区 | 久久精品视 | 中文字幕频道 | 天天操夜夜操天天射 | 日韩精品一区电影 | 97视频网站 | 午夜影院在线观看18 | 91高清免费看 | 国产亚洲视频在线免费观看 | 婷婷综合| 日韩av网站在线播放 | 波多野结衣一区三区 | 五月天六月婷婷 | 亚洲九九九在线观看 | 黄av免费 | 国产99久久精品一区二区300 | 国产精品一区二区三区在线免费观看 | 中文字幕 第二区 | 中文在线亚洲 | 18国产精品白浆在线观看免费 | 黄色小说视频在线 | 美女久久99| 午夜国产福利在线观看 | 日韩中文字幕在线观看 | 91精品国产综合久久婷婷香蕉 | 日韩在线视频国产 | 国产精品第2页 | 免费成人在线观看 | 欧美一级视频免费看 | 婷婷色在线 | 色综合天天综合网国产成人网 | 黄在线免费观看 | 久热免费在线观看 | 99视频精品在线 | 日本午夜免费福利视频 | 日韩精品一区二区三区视频播放 | 欧美一二区视频 | 在线视频欧美日韩 | 日av免费 | 黄色软件网站在线观看 | 夜夜爽天天爽 | 日韩欧美视频在线 | 免费观看的黄色片 | 日韩大片免费在线观看 | 久一久久 | 欧美三级在线播放 | 2022久久国产露脸精品国产 | 久久精品视频播放 | 久久人人爽av | 免费欧美高清视频 | 天天夜夜操 | 精品久久五月天 | 色婷婷综合五月 | 精品久久亚洲 | 狠狠干干 | 欧美日韩中文国产一区发布 | 久久久国内精品 | 一级欧美日韩 | 国产日韩精品视频 | 免费一区在线 | 91精品久久香蕉国产线看观看 | 亚洲精品国产麻豆 | 亚洲成年人在线播放 | 在线观看av网站 | 天天操天天干天天插 | 免费一级毛毛片 | 久久久久久久久久久免费 | 美女露久久 | 欧美日韩精品二区第二页 | 制服丝袜亚洲 | 中文av在线天堂 | 午夜精品久久久久久久99 | 不卡视频在线看 | 天天摸天天舔 | 日韩高清在线观看 | 91精品91| 久热只有精品 | 国产精品一区二区av日韩在线 | 天天躁日日 | 麻豆网站免费观看 | 亚洲精品午夜久久久久久久久久久 | 久久刺激视频 | 色综合久久久久综合体桃花网 | 日本精品久久久久中文字幕5 | 中文有码在线 | 久久免费视频精品 | 日韩最新在线视频 | 蜜臀av免费一区二区三区 | www国产精品com| 色综合天天色综合 | 精品视频国产一区 | 999电影免费在线观看 | 六月婷操 | 69av国产| 很黄很污的视频网站 | 久草精品在线观看 | 免费人成网 | 国产日韩欧美在线影视 | 欧美最猛性xxxxx免费 | 不卡中文字幕在线 | 久久久人| 久草视频在线看 | 99国产在线 | 国产在线视频资源 | 日韩在线免费电影 | 91免费高清视频 | 91中文字幕在线观看 | 在线观看日本高清mv视频 | 色综合久久88色综合天天人守婷 | 天天干夜夜夜 | www.一区二区三区 | 91中文字幕在线 | 欧美日韩亚洲在线观看 | 婷婷在线网站 | 久久综合桃花 | 欧美色图另类 | 国产精品永久久久久久久久久 | 日韩高清在线一区二区三区 | 国产九九九精品视频 | 欧美精品一区二区蜜臀亚洲 | 1024在线看片 | 婷婷色影院 | 免费观看特级毛片 | 日韩久久在线 | 欧美日韩国产精品一区二区亚洲 | 色欧美88888久久久久久影院 | 六月丁香激情综合色啪小说 | 欧美视频国产视频 | 黄色av电影免费观看 | 美女福利视频一区二区 | 五月天丁香 | 91丨九色丨首页 | 狠狠色丁香婷婷综合久小说久 | www色片| 国产精品视频久久久 | 国产精品久久久久久久久久久久午夜片 | www.av免费| 国产一级三级 | 日韩在线免费看 | 国产综合在线观看视频 | 欧美精品久久久久久 | 国产h在线观看 | 99久久精品网 | 精品免费国产一区二区三区四区 | www.色综合.com | 一区二区三区免费在线播放 | av在线免费在线观看 | 国产精品免费av | 成年人网站免费观看 | 欧美日韩在线免费观看视频 | 极品久久久久久久 | 国内精品美女在线观看 | 亚洲综合色视频 | 东方av在| 欧美在线视频免费 | 色a综合 | 精品久久久久久久久久久久久久久久久久 | 国产中文字幕91 | 天天干天天操天天拍 | 欧美a视频在线观看 | 日韩在线观看精品 | 国产精品久久久久久久久大全 | 欧美超碰在线 | 国产精品久久久久久超碰 | 久久久免费精品国产一区二区 | 午夜少妇av | 日韩精品在线一区 | 国内精品久久久久久久久 | 99视频在线观看视频 | 日韩欧美91 | 天堂av在线中文在线 | 激情网综合 | 亚洲精品乱码久久久久久蜜桃动漫 | 五月天精品视频 | 一色屋精品视频在线观看 | 成人免费视频视频在线观看 免费 | av电影免费观看 | 成人9ⅰ免费影视网站 | 亚洲精品欧美精品 | 激情五月伊人 | 人人爽人人av | 狠狠狠狠狠狠操 | 国产精品精品久久久久久 | 日韩欧美在线影院 | 久久韩国免费视频 | 97精品免费视频 | 黄色一级大片在线免费看国产一 | sm免费xx网站 | 探花视频在线观看+在线播放 | 精品一区欧美 | 伊人av综合 | 亚洲精品88欧美一区二区 | a天堂中文在线 | 亚洲男人天堂a | 中文字幕xxxx | 天堂va在线高清一区 | 久久试看 | 日韩国产精品毛片 | 91精品久久久久久久久久久久久 | 五月婷香 | 国产一区黄色 | 中文字幕第一页在线播放 | 免费福利视频网站 | 日韩电影一区二区在线 | 亚洲欧美综合精品久久成人 | 99视频精品在线 | 丁香婷婷色综合亚洲电影 | 色综合天天色 | 天天干天天射天天插 | 欧美一级片在线免费观看 | av中文字幕不卡 | 看国产黄色大片 | 日韩中文字幕免费视频 | 色窝资源| 天天搞夜夜骑 | 黄色精品久久久 | 国产精品毛片一区二区在线看 | 成人毛片一区二区三区 | 日韩精品一区二区三区第95 | 九九九电影免费看 | 在线视频精品 | 精品国内自产拍在线观看视频 | 免费看黄在线 | 久久精品久久99 | 999ZYZ玖玖资源站永久 | 香蕉网在线播放 | 国产日本亚洲高清 | 久久99久久精品国产 | 成片视频免费观看 | 欧美极品在线播放 | av一级久久 | www.狠狠操.com | 超碰97.com| 精品亚洲视频在线观看 | 久久久久久国产精品免费 | 欧美成人手机版 | 亚洲春色奇米影视 | 久热电影 | 日韩在线观看第一页 | a在线观看视频 | 日韩在线欧美在线 | 欧美黑人性猛交 | 少妇精品久久久一区二区免费 | 天天色天天操综合网 | av电影在线观看 | 97视频总站| 天无日天天操天天干 | 超碰在线98 | 狠狠色丁婷婷日日 | 在线免费观看羞羞视频 | 91看片淫黄大片在线播放 | 91视频黄色 | 久久色视频 | av在线进入| 日韩中文字幕在线看 | 色噜噜日韩精品一区二区三区视频 | 91女人18片女毛片60分钟 | 色视频在线观看免费 | 九九久久影院 | 在线观看视频你懂 | 狠狠躁日日躁狂躁夜夜躁av | 超碰大片 | 亚洲综合在线观看视频 | 成人黄色电影在线观看 | 奇米影视777四色米奇影院 | 99精品免费久久久久久日本 | 亚洲成av片人久久久 | 一区二区欧美在线观看 | 国产裸体永久免费视频网站 | 色综合久久综合中文综合网 | 日日干天天爽 | 色视频在线免费观看 | 日韩毛片在线一区二区毛片 | 99久久国产免费免费 | 精品99999| 国产精品久久久久影院 | 波多野结衣在线视频一区 | 国产免费xvideos视频入口 | 五月激情丁香婷婷 | 视频在线日韩 | 亚洲精品在线一区二区三区 | av爱干| 欧美精品久久久久久久亚洲调教 | 丰满少妇在线 | 久久不色 | 99久久er热在这里只有精品15 | 日本中出在线观看 | 久久精品一区二区三区国产主播 | 一二区电影| 久久免费视频1 | 日日夜夜天天射 | 天天操天天干天天爱 | 日韩精品在线看 | 日韩色在线观看 | 国产成人在线免费观看 | 久久毛片网站 | 香蕉久久久久 | 五月婷婷中文网 | 三上悠亚一区二区在线观看 | 精品久久久久久久久久岛国gif | 伊人久操 | av在线免费网 | 日韩在线视频播放 | 丝袜美腿在线播放 | 少妇bbbb| 免费日韩一区二区三区 | 国产一级黄色免费看 | 三级黄免费看 | 欧美一级性生活片 | 久久免费看a级毛毛片 | 手机版av在线 | 亚洲.www| 精品国产乱子伦一区二区 | 成年人免费观看在线视频 | 成人h在线观看 | 在线一区观看 | 91福利社区在线观看 | 色综合中文综合网 | 国产精品毛片一区视频播 | 日韩欧美精品在线 | 日本精品一区二区在线观看 | 久久久99精品免费观看乱色 | 中文字幕免费国产精品 | 成人免费视频视频在线观看 免费 | 美女露久久 | 中文字幕一区在线 | 国产精品高潮呻吟久久久久 | 一区二区三区日韩在线观看 | 国产黄色网 | 日韩欧美xxxx | 色视频在线 | 国产精品99久久免费黑人 | 欧美色888| 久久久久久亚洲精品 | 日韩精选在线观看 | 欧美最猛性xxx | 国内精品视频在线 | 五月天婷亚洲天综合网鲁鲁鲁 | 97人人人人 | 久久免费片 | 国产群p | 激情五月av | 久热av | 日韩专区在线观看 | 狠狠的干狠狠的操 | 国产精品情侣视频 | 久久综合免费视频 | 一区二区三高清 | 精品国精品自拍自在线 | 嫩草伊人久久精品少妇av | 精品久久久久久久久久岛国gif | 亚洲综合成人婷婷小说 | 免费福利在线视频 | 亚洲精品乱码久久久久久按摩 | 国产精品第十页 | 国产在线精品二区 | 有码一区二区三区 | 激情开心网站 | 久久久高清视频 | 五月婷婷影视 | 在线观看视频免费播放 | 日韩国产精品毛片 | 最新av免费在线 | av在线成人 | 91自拍视频在线 | 国产精品久久久久久久av电影 | 人人干人人做 | 91黄色成人| 国产精品九九九 | 日韩中文字幕一区 | 国产高清99| 久久91久久久久麻豆精品 | 日日夜精品 | 久久在线免费视频 | 欧美久久久久久 | 五月开心色 | 欧美大荫蒂xxx | 黄色亚洲免费 | 国产日韩精品一区二区三区在线 | 中文字幕在线观看网站 | 亚洲精品中文字幕视频 | 国产精品手机视频 | 免费在线观看视频一区 | 大荫蒂欧美视频另类xxxx | 五月天视频网 | 在线精品亚洲 | 亚洲精品国产精品国自产 | 亚洲精品小区久久久久久 | 福利视频精品 | 久久精品久久精品久久39 | 日韩在线小视频 | 精品国产自 | 成人中文字幕在线观看 | www·22com天天操| 久综合网| 免费午夜在线视频 | 午夜av在线 | 久久国产免费看 | 国产精品一区二区久久精品 | 成人91免费视频 | 日韩精品不卡在线 | 亚洲视频99 | 国产99黄| 99久久爱| 日日草av | 97av超碰 | 国产中的精品av小宝探花 | 久久在线精品视频 | 成人污视频在线观看 | 一级成人免费视频 | 久久午夜精品视频 | 操操操影院| 五月婷婷丁香网 | 久久综合偷偷噜噜噜色 | 久久国产精品精品国产色婷婷 | 色婷婷激情五月 | 免费看色的网站 | av中文字幕在线看 | 婷婷亚洲五月色综合 | 久久久免费精品国产一区二区 | 91精品久久久久久综合乱菊 | 91亚洲精品久久久蜜桃网站 | 久久久久久国产精品免费 | 夜夜躁日日躁狠狠久久88av | 免费在线h | 97超碰国产精品女人人人爽 | 国产精品18久久久久久久久久久久 | 91漂亮少妇露脸在线播放 | 天天爱天天射天天干天天 | 中文字幕资源网 国产 | 最近日本中文字幕a | 91成年人网站 | 久久久久欠精品国产毛片国产毛生 | 97超碰人人爱 | 国产精品久久久久久久久久了 | 成人精品影视 | 亚洲欧美视频 | 91久久在线观看 | 91色国产| 亚洲精品视频国产 | 亚洲一区动漫 | 在线精品在线 | 欧美大片在线看免费观看 | 黄色av电影在线 | 欧美淫aaa免费观看 日韩激情免费视频 | 免费在线电影网址大全 | 精品久久久久亚洲 | 亚洲aⅴ在线 | 高清有码中文字幕 | 黄色网www| 欧美日韩在线精品一区二区 | 在线观看免费av片 | 日韩最新理论电影 | 久久久久免费精品视频 | 四虎成人免费观看 | 国内精品视频在线 | 日本中文字幕在线 | 人人网av | 色综合久久精品 | 亚洲黄色在线免费观看 | 久久96国产精品久久99漫画 | 国产精品国产三级国产aⅴ入口 | 国产在线91精品 | 日韩精品最新在线观看 | 欧洲亚洲精品 | 国产一区二区不卡在线 | 午夜精品久久久久久中宇69 | 99精品欧美一区二区三区 | 中文字幕成人在线 | 午夜少妇 | 日韩婷婷 | 国产精品人成电影在线观看 | 国产视频 亚洲精品 | 九九九九九九精品任你躁 | 9ⅰ精品久久久久久久久中文字幕 | 日日骑 | bbbbb女女女女女bbbbb国产 | 国产精品国内免费一区二区三区 | 国产资源精品在线观看 | 欧美精品久久久久a | 在线精品视频免费播放 | 国产一级免费片 | 最近中文字幕大全 | 99精品免费 | 国产成人精品福利 | 四虎成人免费影院 | 精品久久久久久久 | 五月婷婷婷婷婷 | 精品在线观看一区二区 | 丁香综合网 | 国产精品一区二区在线 | 日韩一级理论片 | 亚洲天堂精品视频在线观看 | 欧美一区二区三区在线播放 | 亚洲日本va午夜在线影院 | 亚洲理论视频 | 免费在线观看av网址 | 免费在线观看黄色网 | 国产精品色在线 | 免费观看国产精品 | 国产在线视频资源 | 久久99精品国产麻豆宅宅 | 综合五月 | 国产视频99| 国产美女在线免费观看 | 最新极品jizzhd欧美 | 国产传媒一区在线 | 久久九九久久九九 | 国内精品视频一区二区三区八戒 | 五月婷婷操 | 四虎影视8848dvd | 国产成人久久久77777 | 精品久久久久久久久久久久久久久久 | 久久久久成人精品亚洲国产 | av高清在线观看 | 中文字幕精品一区 | 午夜av在线 | 久久一区二区三区超碰国产精品 | 97超碰在线久草超碰在线观看 | 麻豆传媒视频在线 | 综合铜03 | 日本精油按摩3 | 国产视频在线观看一区二区 | 国产麻豆精品免费视频 | 久久人视频 | 日日夜夜添 | 成年人视频在线免费 | 成人黄大片 | 欧美黑人性猛交 | 久久这里有精品 | 免费在线观看av电影 | 一本到在线 | 免费在线观看毛片网站 | a级国产乱理论片在线观看 特级毛片在线观看 | 看片网站黄 | 91成人久久 | 黄色三级在线观看 | 一区二区三区四区在线 | 久久久国产一区二区 | 日韩专区在线观看 | 天天干天天搞天天射 | 麻豆传媒电影在线观看 | 92精品国产成人观看免费 | 丁香综合激情 | 中文字幕三区 | 尤物九九久久国产精品的分类 | 久久草草影视免费网 | 成人在线播放av | 成人午夜剧场在线观看 | 99草视频| 久久爱资源网 | 精品国产伦一区二区三区观看体验 | 麻豆果冻剧传媒在线播放 | 久久久久高清毛片一级 | 欧美性生活一级片 | 五月天丁香综合 | 人人搞人人搞 | 很黄很黄的网站免费的 | 日韩精品久久久久久久电影竹菊 | 欧美精品xxx | 亚洲理论在线观看 | 久久,天天综合 | 在线精品视频免费播放 | 玖玖玖影院 | 免费在线播放 | 色999精品 | 中文字幕视频 | 成人在线电影观看 | 一级电影免费在线观看 | 国色天香在线观看 | 91成人免费视频 | 美国三级黄色大片 | 麻豆av电影| 玖玖在线免费视频 | 五月婷婷伊人网 | 911国产| 欧美精品国产综合久久 | 国产精品丝袜久久久久久久不卡 | 在线观看岛国av | 黄av免费 | 国产二区av | 亚洲婷婷在线视频 | 黄色三级免费观看 | 69久久久久久久 | 亚洲综合网站在线观看 | 夜夜躁日日躁狠狠久久av | 亚洲高清国产视频 | 麻豆久久一区 | 99视频免费看 | 久久亚洲综合国产精品99麻豆的功能介绍 | 亚洲精品午夜国产va久久成人 | 国产在线精品观看 | 狠狠88综合久久久久综合网 | 99se视频在线观看 | 91成年人网站 |