我有一个简单的代码,根据用户输入,相机将捕获图像。这是代码:
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; for (int i=0; i<4; i++){ cvWaitKey(0); //等待输入然后拍照 for (int k=0;i<5;k++){ Mat grabbed = cam1.CamCapture(); Image[i].setImage(grabbed.clone()); } imshow("图片", Image[i].getImage()); cvWaitKey(1); }
然而,这似乎不是一种有效的方式。我认为这个问题可能是由于缓冲区问题,但我不太确定。
请指教,谢谢。