performance - OpenCV 的视频流很慢

标签 performance opencv frame webcam

我正在使用 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)非常难看,可能会更慢。

关于performance - OpenCV 的视频流很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9155728/

相关文章:

ajax - 如何减少 MVC 应用程序的等待时间 (TTFB)

python - 如何让最难的部分在 python 中花费最长的时间

java - 单例和性能

ffmpeg 提取帧并根据 exif 或 txt 中每个提取帧的创建时间获取时间戳

c - 如何为 FFmpeg 库创建函数以将帧编码为任何(可能的)格式?

php - __get/__set/__call PHP性能问题

opencv - 如何使用 OpenCV_Contrib 检测视频中的地标?

python - OpenCV:计算相机和物体之间的角度

c++ - 不保存任何图像..保存视频帧时

java - 不使用 Swing 将图像添加到 GUI? java