#include <opencv2/opencv.hpp>
#include <iostream>
#include <time.h>
using namespace cv;
using namespace std;
int main()
{
VideoCapture capture(-1);
capture.set(CV_CAP_PROP_FRAME_WIDTH, 1920);
capture.set(CV_CAP_PROP_FRAME_HEIGHT, 1080);
capture.set(CV_CAP_PROP_FOURCC, CV_FOURCC('M', 'J', 'P', 'G'));
// capture.set(CV_CAP_PROP_FPS, 30);//帧数
//capture.set(CV_CAP_PROP_BRIGHTNESS, 1);//亮度 50
//capture.set(CV_CAP_PROP_CONTRAST, 40);//对比度 50
//capture.set(CV_CAP_PROP_SATURATION, 50);//饱和度 50
//capture.set(CV_CAP_PROP_HUE, 50);//色调 0
//capture.set(CV_CAP_PROP_EXPOSURE, 50);//曝光 -12
//打印摄像头参数
printf("width = %.2f\n", capture.get(CV_CAP_PROP_FRAME_WIDTH));
printf("height = %.2f\n", capture.get(CV_CAP_PROP_FRAME_HEIGHT));
printf("fbs = %.2f\n", capture.get(CV_CAP_PROP_FPS));
printf("brightness = %.2f\n", capture.get(CV_CAP_PROP_BRIGHTNESS));
printf("contrast = %.2f\n", capture.get(CV_CAP_PROP_CONTRAST));
printf("saturation = %.2f\n", capture.get(CV_CAP_PROP_SATURATION));
printf("hue = %.2f\n", capture.get(CV_CAP_PROP_HUE));
printf("exposure = %.2f\n", capture.get(CV_CAP_PROP_EXPOSURE));
while (1)
{
Mat frame;
capture >> frame;
imshow("读取视频", frame);
waitKey(1);
printf("%d\n", time(NULL));
}
return 0;
}
CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(CameraShow)
if(MSVC)
option(OpenCV_STATIC "Use static OpenCV libraries" OFF)
endif()
find_package(OpenCV REQUIRED)
include_directories(. ${OpenCV_INCLUDE_DIRS})
add_executable(CameraShow
main.cpp)
target_link_libraries(CameraShow ${OpenCV_LIBS})
对于OpenCV4 版本,某些API进行了一些修改,代码应该如下:
#include <opencv2/opencv.hpp>
#include <iostream>
#include <time.h>
using namespace cv;
using namespace std;
int main()
{
VideoCapture capture(-1);
capture.set(CAP_PROP_FRAME_WIDTH, 1920);
capture.set(CAP_PROP_FRAME_HEIGHT, 1080);
capture.set(CAP_PROP_FOURCC, VideoWriter::fourcc('M', 'J', 'P', 'G'));
// capture.set(CAP_PROP_FPS, 30);//帧数
//capture.set(CAP_PROP_BRIGHTNESS, 1);//亮度 50
//capture.set(CAP_PROP_CONTRAST, 40);//对比度 50
//capture.set(CAP_PROP_SATURATION, 50);//饱和度 50
//capture.set(CAP_PROP_HUE, 50);//色调 0
//capture.set(CAP_PROP_EXPOSURE, 50);//曝光 -12
//打印摄像头参数
printf("width = %.2f\n", capture.get(CAP_PROP_FRAME_WIDTH));
printf("height = %.2f\n", capture.get(CAP_PROP_FRAME_HEIGHT));
printf("fbs = %.2f\n", capture.get(CAP_PROP_FPS));
printf("brightness = %.2f\n", capture.get(CAP_PROP_BRIGHTNESS));
printf("contrast = %.2f\n", capture.get(CAP_PROP_CONTRAST));
printf("saturation = %.2f\n", capture.get(CAP_PROP_SATURATION));
printf("hue = %.2f\n", capture.get(CAP_PROP_HUE));
printf("exposure = %.2f\n", capture.get(CAP_PROP_EXPOSURE));
while (1)
{
Mat frame;
capture >> frame;
imshow("读取视频", frame);
waitKey(1);
printf("%ld\n", time(NULL));
}
return 0;
}