Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

you can do all of this in the main thread:

include <opencv2 opencv.hpp="">

include <iostream>

using namespace cv; using namespace std;

int err(String message) { cout << message << endl; return (1); }

int main() { VideoCapture playback("A.avi"); // playback video if (!playback.isOpened()) return err("playback did not open"); VideoCapture cam(0); // camera if (!cam.isOpened()) return err("camera did not open");

// create GUI windows
namedWindow("Frame");
namedWindow("Video Frame");

// please *avoid* Global variables
Mat cam_frame, pb_frame; // current frames
int keyboard = 0; // input from keyboard (raii)
bool condition = false; // ???
while ((char)keyboard != 'q' && (char)keyboard != 27) {
    cam >> cam_frame;
    if (cam_frame.empty())
        break;

    flip(cam_frame, cam_frame, 1);

    // no idea, what you have in mind, i'll use the space bar:
    if (keyboard==' ') condition = ! condition;
    if (condition) {
        playback >> pb_frame;
        if (pb_frame.empty()) { // end of movie, what now ? just rewind ?
            playback.set(CAP_PROP_POS_FRAMES, 0);
        } else { // only show, if valid
            imshow("Video Frame", pb_frame);
        }
    }

    imshow("Frame", cam_frame);
    keyboard = waitKey(30);
}

//destroy GUI windows
destroyAllWindows();
return EXIT_SUCCESS;

}

you can do all of this in the main thread:

include <opencv2 opencv.hpp="">

include <iostream>

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

std; int err(String message) { cout << message << endl; return (1); }

} int main() { VideoCapture playback("A.avi"); // playback video if (!playback.isOpened()) return err("playback did not open"); VideoCapture cam(0); // camera if (!cam.isOpened()) return err("camera did not open");

open");
// create GUI windows
 namedWindow("Frame");
 namedWindow("Video Frame");
 // please *avoid* Global variables
 Mat cam_frame, pb_frame; // current frames
 int keyboard = 0; // input from keyboard (raii)
 bool condition = false; // ???
 while ((char)keyboard != 'q' && (char)keyboard != 27) {
 cam >> cam_frame;
 if (cam_frame.empty())
 break;
  flip(cam_frame, cam_frame, 1);
  // no idea, what you have in mind, i'll use the space bar:
 if (keyboard==' ') condition = ! condition;
 if (condition) {
  playback >> pb_frame;
  if (pb_frame.empty()) { // end of movie, what now ? just rewind ?
 playback.set(CAP_PROP_POS_FRAMES, 0);
  } else { // only show, if valid
 imshow("Video Frame", pb_frame);
 }
 }
  imshow("Frame", cam_frame);
  keyboard = waitKey(30);
 }
 //destroy GUI windows
 destroyAllWindows();
 return EXIT_SUCCESS;
}

}