【发布时间】:2016-03-08 23:28:46
【问题描述】:
我目前正在使用带有 Visual Studio 2008 的 OpenCV 2.3.1。我正在尝试使用 VideoCapture 从 Hauppauge Usb Live-2 读取帧,但我遇到了一个奇怪的问题。以下是我的代码的相关部分:
VideoCapture vc(0);
if (!vc.isOpened()) return -1;
Mat frame;
namedWindow("Camera");
bool success;
while (true)
{
success = vc.read(frame);
if (!success) continue;
imshow("Camera", frame);
if (waitkey(30) == 27) break;
}
最初,当我在调试模式下运行我的代码时,显示捕获帧的窗口只显示一个纯灰色图像。尝试调试我的程序时,我在代码开头放置了断点,并逐行执行。然而,在 imshow 上,窗口开始正确显示抓取的帧,显示我的相机捕捉到的内容。随后,我意识到只要在打开设备和在窗口上显示之间输入一个断点,框架就会开始正常显示。
有谁知道进入断点会如何影响程序在调试模式下的执行(在这种情况下允许 VideoCapture 对象开始正确读取帧)?
注意:运行可执行文件也没有问题,所以出于好奇,我发布了这个问题。
【问题讨论】: