opencv(C语言)视频编写者无法使用方法

时间:2015-12-02 04:10:14

标签: c opencv

这是程序(部分内容):

if (vidWriterColored == 0) {
   vidWriterDepth = cvCreateVideoWriter("depth_vid", CV_FOURCC('Z', 'L', 'I', 'B'), 30 , cvSize(rawImg1->width, rawImg1->height), 0);
}
...
vidWriterDepth->

在while循环中(从相机获取视频帧):

Pointer to incomplete class type is not allowed

这里我试图调用vidWriterDepth的方法,但是收到错误: void Game::validate(string& str1) { bool exit = false; int strLength = str1.length(); while (exit == false) { for (int i = 0; i < strLength; i++) { if(!isalpha(str1[i]) || isspace(str1[i])) //|| str1.empty())//? { cout << "Not a valid name, please try again: " << endl; getline(cin, str1); } else if(isalpha(str1[i])) { exit = true; } } } (显示vidWriterDepth-&gt;)。 所以我不能使用vidWriterDepth的任何方法。 没有它,即使创建和初始化vidWriterDepth也会编译。

1 个答案:

答案 0 :(得分:1)

我想知道,C中有方法吗?

您必须使用

等功能
cvWriteFrame(vidWriterDepth, FImage);

它被称为C接口。来自online help的任意示例。查看C:说明

VideoCapture::grab

Grabs the next frame from video file or capturing device.
C++: bool VideoCapture::grab()
Python: cv2.VideoCapture.grab() → retval
C: int cvGrabFrame(CvCapture* capture)
Python: cv.GrabFrame(capture) → int