【问题标题】:OpenCV frame delayedOpenCV 帧延迟
【发布时间】:2013-04-15 15:52:59
【问题描述】:

我有一个简单的代码,根据用户输入,相机将捕获图像。代码如下:

for (int i=0; i<4; i++){
    cvWaitKey(0);                         //wait for input then take picture
    Mat grabbed = cam1.CamCapture();
    Image[i].setImage(grabbed.clone());
    imshow("picture", Image[i].getImage());
    cvWaitKey(1);
}

问题是在显示图像时,Image[i] 正在显示用于 Image[i-1] 的图片。

我不明白这似乎是什么问题,因为我认为进入循环后,我必须按下一个键,然后相机会捕获一张图片并将其存储到第一个对象 Image[0] 和该过程重复4次。然而,情况似乎并非如此。

我目前有一个使用嵌套循环的解决方法。 诠释 k; 对于 (int i=0; i

然而,这似乎不是一种有效的方式。我认为这个问题可能是由于缓冲区问题,但我不太确定。

请指教,谢谢。

【问题讨论】:

    标签: opencv frame


    【解决方案1】:

    将你的 for 循环更改为 do while 循环

    int i=0;

    do {
        cvWaitKey(0);                         //wait for input then take picture
        Mat grabbed = cam1.CamCapture();
        Image[i].setImage(grabbed.clone());
        imshow("picture", Image[i].getImage());
        cvWaitKey(1);
    }while ( i<4; i++)
    

    这是未经测试的

    【讨论】:

    • 请问这样做的理由是什么?
    • 这样你至少运行一次代码,i = 0。然后递增。
    猜你喜欢
    • 2014-06-03
    • 1970-01-01
    • 2019-12-09
    • 2021-01-02
    • 1970-01-01
    • 2021-06-15
    • 2022-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多