我正在使用opencv从网络摄像头捕获视频并将其显示在namedWindow中。
cv::Mat rawImage;
cv::VideoCapture captureDevice;
captureDevice.open(0);
cv::namedWindow("webcam", 1);
bool running = true;
while(running)
{
captureDevice >> rawImage;
if(!rawImage.data)
{
continue;
}
cv::imshow("webcam", rawImage);
char ch = cv::waitKey(33);
if(ch == 'e')
running = false;
}
最初代码运行正常,但随机(约5秒)之后,较早的命名窗口冻结,弹出一些垃圾名称的新窗口并开始显示网络摄像头图像。这继续发生,我得到了多个不需要的命名窗口。弹出那些不需要的窗户的原因是什么?
答案 0 :(得分:4)
您是否尝试过此处描述的解决方案?
他们还表示他们不明白原因,但是通过向VS2012添加预处理器定义_ITERATOR_DEBUG_LEVEL=0
来手动修复它
答案 1 :(得分:1)
与opencv 2410和visual studio 2013有相同的问题,窗口7 64位。 我链接调试库进行调试配置时解决了。
e.g。 opencv_highgui2410的 d 强>的.lib
答案 2 :(得分:0)
OpenCV中不存在waitkey()
,只有waitKey()
(也许你这里有拼写错误)。无论如何,尝试改变
char ch = cv::waitkey(33);
到
char ch = cv::waitKey(33);
再次测试。我在我的电脑上测试过它(在VS2010下),它工作正常。