赞
踩
适用于VideoCapture打开的摄像头
VideoCapture capture(0);
- capture.set(CV_CAP_PROP_FRAME_WIDTH, 1080);//宽度
- capture.set(CV_CAP_PROP_FRAME_HEIGHT, 960);//高度
- capture.set(CV_CAP_PROP_FPS, 30);//帧率 帧/秒
- capture.set(CV_CAP_PROP_BRIGHTNESS, 1);//亮度 1
- capture.set(CV_CAP_PROP_CONTRAST,40);//对比度 40
- capture.set(CV_CAP_PROP_SATURATION, 50);//饱和度 50
- capture.set(CV_CAP_PROP_HUE, 50);//色调 50
- capture.set(CV_CAP_PROP_EXPOSURE, 50);//曝光 50
- capture.get(CV_CAP_PROP_FRAME_WIDTH);
- capture.get(CV_CAP_PROP_FRAME_HEIGHT);
- capture.get(CV_CAP_PROP_FPS);
- capture.get(CV_CAP_PROP_BRIGHTNESS);
- capture.get(CV_CAP_PROP_CONTRAST);
- capture.get(CV_CAP_PROP_SATURATION);
- capture.get(CV_CAP_PROP_HUE);
- capture.get(CV_CAP_PROP_EXPOSURE);
capture.get(CV_CAP_PROP_FRAME_COUNT);//视频帧数
- /**
- @brief OpenCV摄像头和视频属性操作
- @author xiaolei
- @copyright -
- @version 1.0
- @data 2019/10/12
- @note -
- */
- #include <iostream>
- #include "opencv2/opencv.hpp"
-
- using namespace std;
- using namespace cv;
-
- const string window_name = "用户界面";
-
- #define USE_CAMERA
- //#define USE_VIDEO
-
- int main()
- {
- Mat frame;
-
- double brightness = 0; //亮度
- double contrast = 0; //对比度
- double saturation = 0; //饱和度
- double hue = 0; //色调
- double gain = 0; //增益
- double exposure = 0; //曝光
- double white_balance = 0; //白平衡
-
- double pos_msec = 0; //当前视频位置(ms)
- double pos_frame = 0; //从0开始下一帧的索引
- double pos_avi_ratio = 0; //视频中的相对位置(范围为0.0到1.0)
- double frame_width = 0; //视频帧的像素宽度
- double frame_height = 0; //视频帧的像素高度
- double fps = 0; //帧速率
- double frame_count = 0; //视频总帧数
- double video_duration = 0.00; //视频时长
- double format = 0; //格式
-
- #ifdef USE_VIDEO
- const string file_name = "201910915314.avi";
- VideoCapture capture(file_name);
-
- frame_width = capture.get(cv::CAP_PROP_FRAME_WIDTH);
- frame_height = capture.get(cv::CAP_PROP_FRAME_HEIGHT);
- fps = capture.get(cv::CAP_PROP_FPS);
- frame_count = capture.get(cv::CAP_PROP_FRAME_COUNT);
- format = capture.get(cv::CAP_PROP_FORMAT);
- pos_avi_ratio = capture.get(cv::CAP_PROP_POS_AVI_RATIO);
- video_duration = frame_count / fps;
-
- cout << "---------------------------------------------" << endl;
- cout << "视频中的相对位置(范围为0.0到1.0):" << pos_avi_ratio << endl;
- cout << "视频帧的像素宽度:" << frame_width << endl;
- cout << "视频帧的像素高度:" << frame_height << endl;
- cout << "录制视频的帧速率(帧/秒):" << fps << endl;
- cout << "视频文件总帧数:" << frame_count << endl;
- cout << "图像的格式:" << format << endl;
- cout << "视频时长:" << video_duration << endl;
- cout << "---------------------------------------------" << endl;
- #endif // USE_VIDEO
-
- #ifdef USE_CAMERA
- VideoCapture capture(0);
- brightness = capture.get(cv::CAP_PROP_BRIGHTNESS);
- contrast= capture.get(cv::CAP_PROP_CONTRAST);
- saturation = capture.get(cv::CAP_PROP_SATURATION);
- hue = capture.get(cv::CAP_PROP_HUE);
- gain = capture.get(cv::CAP_PROP_GAIN);
- exposure = capture.get(cv::CAP_PROP_EXPOSURE);
- white_balance = capture.get(cv::CAP_PROP_WHITE_BALANCE_BLUE_U);
-
- std::cout << "---------------------------------------------" << endl;
- std::cout << "摄像头亮度:" << brightness << endl;
- std::cout << "摄像头对比度:" << contrast << endl;
- std::cout << "摄像头饱和度:" << saturation << endl;
- std::cout << "摄像头色调:" << hue << endl;
- std::cout << "摄像头增益:" << gain << endl;
- std::cout << "摄像头曝光度:" << exposure << endl;
- std::cout << "摄像头白平衡:" << white_balance << endl;
- std::cout << "---------------------------------------------" << endl;
- #endif // USE_CAMERA
-
- namedWindow(window_name,WINDOW_AUTOSIZE);
- while (capture.isOpened())
- {
- capture >> frame;
-
- #ifdef USE_VIDEO
- pos_msec = capture.get(cv::CAP_PROP_POS_MSEC);
- pos_frame = capture.get(cv::CAP_PROP_POS_FRAMES);
- pos_avi_ratio = capture.get(cv::CAP_PROP_POS_AVI_RATIO);
- cout << "---------------------------------------------" << endl;
- cout << "视频文件中当前位置(ms):" << pos_msec << endl;
- cout << "从0开始下一帧的索引:" << pos_frame << endl;
- cout << "视频中的相对位置(范围为0.0到1.0):" << pos_avi_ratio << endl;
- cout << "---------------------------------------------" << endl;
- #endif // USE_VIDEO
-
- imshow(window_name, frame);
- if (waitKey(60)==27)
- {
- break;
- }
- }
- capture.release();
- destroyAllWindows();
- return 0;
- }
打印结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。