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 的文档。如果您想直接从文件中读取视频,这是最好的方法。但是,如果你想像你提到的主题那样读取已经在内存缓冲区中的视频,我认为没有办法轻松使用它。
我检查了这个主题(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 的文档。如果您想直接从文件中读取视频,这是最好的方法。但是,如果你想像你提到的主题那样读取已经在内存缓冲区中的视频,我认为没有办法轻松使用它。