C++視頻讀取與視頻保存


    VideoCapture cap("E:\\122.avi");    
    //計算視頻幀數
    int VedioFPS = cap.get(CV_CAP_PROP_FPS);
    //cout << "視頻幀率" << VedioFPS << endl;
    // 保存視頻
    VideoWriter writer("LoadBeltTear.mp4", CV_FOURCC('M', 'J', 'P', 'G'), VedioFPS, Size(ROI_Weidth, ROI_Height * 2));
    if (!cap.isOpened())
    {
        cout << "Error opening video stream or file" << endl;
        return -1;
    }
    Mat frame;
    while (1) {
        // Capture frame-by-frame
        cap >> frame;
        // If the frame is empty, break immediately
        if (frame.empty()) break;
        if (frame.channels() == 3) cvtColor(frame, frame, CV_RGB2GRAY);
                //******************
                // 處理圖像
        //******************
        //在圖像上打上標記
        cvtColor(frame(roi_rect), ROIimg, CV_GRAY2RGB);
        std::string str2 = "OriginalImage";
        cv::putText(ROIimg, str2, Point(roi_rect.width *0.5 - 20, 20), cv::FONT_HERSHEY_SIMPLEX, 0.3, cv::Scalar(0, 255, 255), 1);
        cv::putText(ROIimg, "LoadBelt", Point(0, 20), cv::FONT_HERSHEY_SIMPLEX, 0.5, cv::Scalar(0, 255, 255), 1);
        std::string str1 = "ImageProcessing";
        cv::putText(tempImg, str1, Point(roi_rect.width *0.5 - 30, 20), cv::FONT_HERSHEY_SIMPLEX, 0.3, cv::Scalar(0, 255, 255), 1);
        vconcat(ROIimg, tempImg, conbine);
        imshow("拼接", conbine);
        writer << conbine;
        char c = (char)waitKey(1);
        if (c == 27)
            break;
    }
    cap.release();
    destroyAllWindows();            

從視頻文件中讀取視頻,對單幀圖像進行相關處理,將處理后的圖像整理成視頻


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM