#include #include "opencv2/opencv.hpp" int camera_in(); int camera_in_video_out(); int main() { return camera_in_video_out(); } int camera_in() { cv::VideoCapture camera(0); if (!camera.isOpened()) { std::cerr << "camera.isopened()" << std::endl; return 1; } cv::Mat img; double fps = 1000 / camera.get(cv::VideoCaptureProperties::CAP_PROP_FPS); std::cout << "\n\n" << fps << "\n\n"; while (true) { camera >> img; if (img.empty()) { std::cerr << "img.empty()" << std::endl; return 1; } cv::imshow("img", img); if (cv::waitKey(fps) == 27) break; } return 0; } int camera_in_video_out() { cv::VideoCapture camera(0); if (!camera.isOpened()) { std::cerr << "camera.isopened()" << std::endl; return 1; } cv::Mat img; int w = cvRound(camera.get(cv::VideoCaptureProperties::CAP_PROP_FRAME_WIDTH)); int h = cvRound(camera.get(cv::VideoCaptureProperties::CAP_PROP_FRAME_HEIGHT)); double fps = camera.get(cv::VideoCaptureProperties::CAP_PROP_FPS); cv::VideoWriter outputVideo("output.avi", cv::VideoWriter::fourcc('D', 'I', 'V', 'X'), fps, cv::Size(w, h)); while (true) { camera >> img; if (img.empty()) { std::cerr << "img.empty()" << std::endl; return 1; } outputVideo << ~img; cv::imshow("img", img); if (cv::waitKey(fps) == 27) break; } return 0; }