Je viens d'écrire un premier programme pour videocaptur et videowriter. J'ai copié la source du wiki et changé le seul nom du fichier vidéo, mais il a fait une erreur.opcv videowriter, je ne sais pas pourquoi ça ne marche pas
Voici la source du wiki.
L'opencv est 2.1 et le compilateur est visuel C++ 2008 express.
#include "cv.h"
#include "highgui.h"
using namespace cv;
int main(int, char**)
{
VideoCapture capture(1); // open the default camera
if(!capture.isOpened()) {
printf("Camera failed to open!\n");
return -1;
}
Mat frame;
capture >> frame; // get first frame for size
// record video
VideoWriter record("RobotVideo.avi", CV_FOURCC('D','I','V','X'), 30, frame.size(), true);
if(!record.isOpened()) {
printf("VideoWriter failed to open!\n");
return -1;
}
namedWindow("video",1);
for(;;)
{
// get a new frame from camera
capture >> frame;
// show frame on screen
imshow("video", frame);
// add frame to recorded video
record << frame;
if(waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
// the recorded video will be closed automatically in the VideoWriter destructor
return 0;
}
Avec la source, j'ai changé 2 parties. L'un est pour VideoCapture. (. Je n'ai pas tunercard ou un appareil photo) La source est
VideoCapture capture(1); // open the default camera
et changé à
VideoCapture capture("C:/Users/Public/Videos/Sample Videos/WildlifeTest.wmv");
Et l'autre est pour Videowriter:
// record video
VideoWriter record("RobotVideo.avi", CV_FOURCC('D','I','V','X'), 30, frame.size(), true);
et changé à
VideoWriter record("C:/Users/Public/Videos/Sample Videos/WildlifeRec.wmv",
CV_FOURCC('W','M','V','1'), 30,frame.size(), true);
et la partie d'erreur est:
// add frame to recorded video
record << frame;
S'il vous plaît montrez-moi quelle est mon erreur!
P.S. lorsque je supprime la ligne record << frame;
, cela fonctionne bien. Je pense que l'erreur causée à la ligne.
Et j'ai trouvé que même si sans changement, le programme source wiki fait la même erreur.