这是程序(部分内容):
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也会编译。
答案 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