首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在OpenCV中释放摄像头(ubuntu-12.04)

如何在OpenCV中释放摄像头(ubuntu-12.04)
EN

Stack Overflow用户
提问于 2013-07-04 23:46:29
回答 1查看 168关注 0票数 0

如何在不关闭正在运行的程序的情况下在OpenCV中释放摄像头?我使用了以下代码,但摄像头仍处于打开状态。

代码语言:javascript
复制
main( int argc, char* argv[] ) 
{
    int j;
    CvCapture* capture = NULL;
    capture = cvCreateCameraCapture( 0 );

    IplImage *frames = cvQueryFrame(capture);

    //Create a new window
    cvNamedWindow( "Recording ...press ESC to stop !", CV_WINDOW_AUTOSIZE );

    while(1)
    {
        if (j<10)
        {
            frames = cvQueryFrame( capture );
            cvShowImage( "Recording ...press ESC to stop !", frames );
        }
        j++;

        if(j==10)
        cvReleaseCapture ( &capture );

        char c = cvWaitKey(33);
        if( c == 27 ) break;
    }
    cvDestroyWindow ( "Recording ...press ESC to stop !");
    return 0;
}
EN

回答 1

Stack Overflow用户

发布于 2013-07-05 03:31:39

问题是,您在没有首先初始化j的情况下就比较了(j < 10)(j == 10)。这是Undefined Behavior,这是一件非常糟糕的事情。在您的情况下,它碰巧相机没有关闭。

修复方法很简单,就是在使用j之前将其初始化,如下所示:

代码语言:javascript
复制
int j = 0;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17474197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档