日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

OpenCV VideoCapture 设置和获取摄像头参数

發(fā)布時(shí)間:2023/12/15 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 OpenCV VideoCapture 设置和获取摄像头参数 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

適用于VideoCapture打開的攝像頭

VideoCapture capture(0);

設(shè)置攝像頭參數(shù)不要隨意修改

1 capture.set(CV_CAP_PROP_FRAME_WIDTH, 1080);//寬度 
2 capture.set(CV_CAP_PROP_FRAME_HEIGHT, 960);//高度
3 capture.set(CV_CAP_PROP_FPS, 30);//幀率 幀/秒
4 capture.set(CV_CAP_PROP_BRIGHTNESS, 1);//亮度 1
5 capture.set(CV_CAP_PROP_CONTRAST,40);//對(duì)比度 40
6 capture.set(CV_CAP_PROP_SATURATION, 50);//飽和度 50
7 capture.set(CV_CAP_PROP_HUE, 50);//色調(diào) 50
8 capture.set(CV_CAP_PROP_EXPOSURE, 50);//曝光 50

獲取攝像頭參數(shù)

1 capture.get(CV_CAP_PROP_FRAME_WIDTH);
2 capture.get(CV_CAP_PROP_FRAME_HEIGHT);
3 capture.get(CV_CAP_PROP_FPS);
4 capture.get(CV_CAP_PROP_BRIGHTNESS);
5 capture.get(CV_CAP_PROP_CONTRAST);
6 capture.get(CV_CAP_PROP_SATURATION);
7 capture.get(CV_CAP_PROP_HUE);
8 capture.get(CV_CAP_PROP_EXPOSURE);

源代碼

  1 /**
  2 @brief       OpenCV攝像頭和視頻屬性操作
  3 @author      
  4 @copyright    -
  5 @version     1.0
  6 @data        
  7 @note        -
  8 */
  9 #include <iostream>
 10 #include "opencv2/opencv.hpp"
 11  
 12 using namespace std;
 13 using namespace cv;
 14  
 15 const string window_name = "用戶界面";
 16  
 17 #define USE_CAMERA
 18 //#define USE_VIDEO
 19  
 20 int main()
 21 {
 22     Mat frame;
 23     
 24     double brightness = 0;        //亮度
 25     double contrast = 0;        //對(duì)比度
 26     double saturation = 0;        //飽和度
 27     double hue = 0;                //色調(diào)
 28     double gain = 0;            //增益
 29     double exposure = 0;        //曝光
 30     double white_balance = 0;    //白平衡
 31  
 32     double pos_msec = 0;        //當(dāng)前視頻位置(ms)
 33     double pos_frame = 0;        //從0開始下一幀的索引
 34     double pos_avi_ratio = 0;    //視頻中的相對(duì)位置(范圍為0.0到1.0)
 35     double frame_width = 0;        //視頻幀的像素寬度
 36     double frame_height = 0;    //視頻幀的像素高度
 37     double fps = 0;                //幀速率
 38     double frame_count = 0;        //視頻總幀數(shù)
 39     double video_duration = 0.00;    //視頻時(shí)長(zhǎng)
 40     double format = 0;            //格式
 41  
 42 #ifdef USE_VIDEO
 43     const string file_name = "201910915314.avi";
 44     VideoCapture capture(file_name);
 45     
 46     frame_width = capture.get(cv::CAP_PROP_FRAME_WIDTH);
 47     frame_height = capture.get(cv::CAP_PROP_FRAME_HEIGHT);
 48     fps = capture.get(cv::CAP_PROP_FPS);
 49     frame_count = capture.get(cv::CAP_PROP_FRAME_COUNT);
 50     format = capture.get(cv::CAP_PROP_FORMAT);
 51     pos_avi_ratio = capture.get(cv::CAP_PROP_POS_AVI_RATIO);
 52     video_duration = frame_count / fps;
 53  
 54     cout << "---------------------------------------------" << endl;
 55     cout << "視頻中的相對(duì)位置(范圍為0.0到1.0):" << pos_avi_ratio << endl;
 56     cout << "視頻幀的像素寬度:" << frame_width << endl;
 57     cout << "視頻幀的像素高度:" << frame_height << endl;
 58     cout << "錄制視頻的幀速率(幀/秒):" << fps << endl;
 59     cout << "視頻文件總幀數(shù):" << frame_count << endl;
 60     cout << "圖像的格式:" << format << endl;
 61     cout << "視頻時(shí)長(zhǎng):" << video_duration << endl;
 62     cout << "---------------------------------------------" << endl;
 63 #endif // USE_VIDEO
 64  
 65 #ifdef USE_CAMERA
 66     VideoCapture capture(0);
 67     brightness = capture.get(cv::CAP_PROP_BRIGHTNESS);
 68     contrast= capture.get(cv::CAP_PROP_CONTRAST);
 69     saturation = capture.get(cv::CAP_PROP_SATURATION);
 70     hue = capture.get(cv::CAP_PROP_HUE);
 71     gain = capture.get(cv::CAP_PROP_GAIN);
 72     exposure = capture.get(cv::CAP_PROP_EXPOSURE);
 73     white_balance = capture.get(cv::CAP_PROP_WHITE_BALANCE_BLUE_U);
 74     
 75     std::cout << "---------------------------------------------" << endl;
 76     std::cout << "攝像頭亮度:" << brightness << endl;
 77     std::cout << "攝像頭對(duì)比度:" << contrast << endl;
 78     std::cout << "攝像頭飽和度:" << saturation << endl;
 79     std::cout << "攝像頭色調(diào):" << hue << endl;
 80     std::cout << "攝像頭增益:" << gain << endl;
 81     std::cout << "攝像頭曝光度:" << exposure << endl;
 82     std::cout << "攝像頭白平衡:" << white_balance << endl;
 83     std::cout << "---------------------------------------------" << endl;
 84 #endif // USE_CAMERA
 85  
 86     namedWindow(window_name,WINDOW_AUTOSIZE);
 87     while (capture.isOpened())
 88     {
 89         capture >> frame;
 90  
 91 #ifdef USE_VIDEO
 92         pos_msec = capture.get(cv::CAP_PROP_POS_MSEC);
 93         pos_frame = capture.get(cv::CAP_PROP_POS_FRAMES);
 94         pos_avi_ratio = capture.get(cv::CAP_PROP_POS_AVI_RATIO);
 95         cout << "---------------------------------------------" << endl;
 96         cout << "視頻文件中當(dāng)前位置(ms):" << pos_msec << endl;
 97         cout << "從0開始下一幀的索引:" << pos_frame << endl;
 98         cout << "視頻中的相對(duì)位置(范圍為0.0到1.0):" << pos_avi_ratio << endl;
 99         cout << "---------------------------------------------" << endl;
100 #endif // USE_VIDEO
101         
102         imshow(window_name, frame);
103         if (waitKey(60)==27)
104         {
105             break;
106         }
107     }
108     capture.release();
109     destroyAllWindows();
110     return 0;
111 }

打印結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的OpenCV VideoCapture 设置和获取摄像头参数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。