#include #include #include #include #include using namespace cv; using namespace std; int main() { const int fourcc = cv::VideoWriter::fourcc('M', 'J', 'P', 'G'); const Size size(1600, 1200); VideoCapture cap; cv::TickMeter tm; { tm.start(); std::vector params; params.push_back(cv::CAP_PROP_FRAME_WIDTH); params.push_back(size.width); params.push_back(cv::CAP_PROP_FRAME_HEIGHT); params.push_back(size.height); params.push_back(cv::CAP_PROP_FOURCC); params.push_back(fourcc); cap.open(0, cv::CAP_DSHOW, params); bool ret = cap.isOpened(); if (!ret) return -1; tm.stop(); cout << "Open time: " << tm.getLastTimeMilli() << " ms" << endl; } { tm.start(); const double fps = cap.get(cv::CAP_PROP_FPS); const int w = cap.get(cv::CAP_PROP_FRAME_WIDTH); const int h = cap.get(cv::CAP_PROP_FRAME_HEIGHT); const int actual_fourcc = cap.get(cv::CAP_PROP_FOURCC); tm.stop(); std::cout << "FPS: " << fps << " w:" << w << " h:" << h << std::endl; printf("Actual : 0x%x\n", actual_fourcc); printf("Requested: 0x%x\n", fourcc); } { tm.start(); cv::Mat frame; cap.read(frame); tm.stop(); cout << "Frame: " << frame.size() << " x " << frame.channels() << " in " << tm.getLastTimeMilli() << " ms" << std::endl; } cout << "Total: " << tm.getTimeMilli() << " ms" << endl; return 0; }