这是程序(部分程序):

CvVideoWriter* vidWriterDepth = 0;


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

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


在这里,我试图调用vidWriterDepth的方法,但出现错误:
Pointer to incomplete class type is not allowed(显示vidWriterDepth->)。
所以我不能使用vidWriterDepth的任何方法。
没有它,即使创建并初始化vidWriterDepth,它也可以编译。

最佳答案

我想知道,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

08-17 11:55