performance - OpenCV 的视频流很慢

我正在使用 C++ 和 OpenCV 做视频处理应用程序。这就是我编写代码来初始化网络摄像头的方式。

    storage = cvCreateMemStorage( 0 );
capture = cvCaptureFromCAM(1);

cvNamedWindow( "video", 1 );

while( key != 'q' ) {
    frame = cvQueryFrame( capture );
    if( !frame ) {
        fprintf( stderr, "Cannot query frame!\n" );
        break;
    }
    cvFlip( frame, frame, 1 );
    frame->origin = 0;
    key = cvWaitKey( 1 );
}

谁能建议我一个解决方案,以提高从网络摄像头捕获帧的速度。与具有 OpenCV 应用程序网络摄像头视频流的实际网络摄像头视频流相比,大约有 3 秒的延迟。

谢谢你。

最佳答案

你用的是什么版本的opencv?您正在使用使用英特尔线程构建模块 (tbb.dll) 的构建吗?如果没有,那就使用它,那是你的加速器。

你也可以尝试一个简单的代码来看看你得到了什么类型的加速:

存储 = cvCreateMemStorage(0);
捕获 = cvCaptureFromCAM(1);

while(1) {
帧 = cvQueryFrame(捕获);
cvWaitKey(1);
}

除此之外,我建议使用 c++ 接口(interface)来 opencv,c 接口(interface)非常难看,可能会更慢。

https://stackoverflow.com/questions/9155728/

相关文章:

opencv - 数手指数

macos - 将OpenCV集成到OpenGL应用程序中

opencv - OpenCV2.3.1,基本程序,在QtCreator中不起作用

opencv - Ubuntu:NetBeans:OpenCV:找不到共享库

maven - 如何在 Maven 的 pom.xml 中找到 '"libopencv_java.s

image - 如何在C++中加载24位Tiff图像

image-processing - OpenCV中的对象识别方法

android - 使用Android二进制文件使用openCV Matrix裁剪图像

android - Android:如何将图库中的图像加载到OpenCv Mat变量中?

image-processing - Blob 的中轴(正交骨架化)