下面給出的是我用來從我的網絡攝像頭獲取視頻並將其保存在我的硬盤上的代碼。在運行該程序時,它說「視頻編寫器未打開」。我哪裏錯了?視頻採集和保存使用OpenCV
#include <opencv\cv.h>
#include <opencv2\highgui\highgui.hpp>
#include <opencv2\imgproc\imgproc.hpp>
#include <WinSock2.h>
#include <WS2tcpip.h>
#include <stdio.h>
#include <iostream>
#pragma comment(lib, "Ws2_32.lib")
#define default_buflen 1024
using namespace std;
using namespace cv;
#define default_port "1234"
int main(int argc, char** argv)
{
Mat capture;
VideoCapture cap(0);
if(!cap.isOpened())
{
cout<<"Cannot connect to camera"<<endl;
getchar();
return -1;
}
double fps=30;
Size s=Size((int)cap.get(CV_CAP_PROP_FRAME_WIDTH),(int)cap.get(CV_CAP_PROP_FRAME_WIDTH));
VideoWriter vidcapt;
vidcapt.open("c:\\out.avi",CV_FOURCC('D','I','V','X'),cap.get(CV_CAP_PROP_FPS),s,true);
if(!vidcapt.isOpened())
{
cout<<"Video writer not opening"<<endl;
getchar();
return -1;
}
while(true)
{
cap>>capture;
namedWindow("Display",1);
imshow("Display",capture);
vidcapt<<capture;
int ch=waitKey(5);
if(char(ch)==27)
{
break;
}
}
}
我已閱讀給定here和here的答案,但我不明白我要去的地方錯了。
嘗試了所有這些。還是行不通。接下來做什麼?另外,如何找出哪些編解碼器已安裝? –
@PrakharMohanSrivastava檢查您的編解碼器,重新安裝它們,如果使用調試選項編譯它,請調試opencv – Dabo