gpt4 book ai didi

opencv - OpenCV帧延迟

转载 作者:行者123 更新时间:2023-12-02 16:41:56 25 4
gpt4 key购买 nike

我有一个简单的代码,通过该代码,在用户输入时,相机将捕获图像。这是代码:

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次。但是,似乎并非如此。

我目前有一个使用嵌套循环的解决方法。
int k;
对于(int i = 0; i <4; i ++){
cvWaitKey(0); //等待输入然后拍照
为(int k = 0; i <5; k ++){
抓取垫子= cam1.CamCapture();
图片[i] .setImage(grabbed.clone());
}
imshow(“图片”,Image [i] .getImage());
cvWaitKey(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++)

这是未经测试的

关于opencv - OpenCV帧延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16152308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com