opencv2 的 cvcapture 及其子类在哪里?

Where is opencv2's cvcapture and their subclass?

我检查了这个主题(process video stream from memory buffer),我想在第一个答案中做同样的事情。 我试图创建一个继承自 cvCapture_FFMPEG 的新 class 文件,并覆盖 "open" 函数。 但是我找不到任何名为 "cvCapture_FFMPEG".

的 class 的 OpenCV 模块

我假设 "cvCapture_FFMPEG" 在 OpenCV 及其 API 中不存在。我对吗? 如果是这样,您能告诉我在 OpenCV 中处理缓冲区的最佳方法吗?

请帮忙。

如您所见,只要缓冲区有新内容,here, there exists a constructor for cv::Mat in which you directly give the buffer representing a frame. Why not try to use this alongside memcpy 就更新 Mat 的内容object?

类似的东西:

/*myBuffer is a void* pointing on your data.
myBufferType is very important as it will give the number of bytes to 
be read for each element*/
cv::Mat myImage(height, width, myBufferType, myBuffer); 

while(1){

    if(myBufferHasBeenUpdated)
        std::memcpy(Mat.data, myBuffer, numberOfBytesToCopy);

    //Performing some operations on the Mat object
}   

编辑: 我看到您更改了问题的标题。这是 OpenCV 的 highgui 模块中关于 cv::VideoCapture 的文档。如果您想直接从文件中读取视频,这是最好的方法。但是,如果你想像你提到的主题那样读取已经在内存缓冲区中的视频,我认为没有办法轻松使用它。