waitKey()在使用VideoCapture时输出垃圾

时间:2018-04-18 21:05:23

标签: c++ opencv video-capture

我试图在按下转义时停止网络摄像头播放。

cv::VideoCapture cap(0);
while(true){
    cv::Mat cameraFrame;
    cap.read(cameraFrame);
    cv::imshow("cam", cameraFrame);
            std::cerr<<cv::waitKey(1);
    if (cv::waitKey(1) == 27){
        if( cap.isOpened() )
            cap.release();
    }
}

代码来自here。网络摄像头永远不会关闭,这件事的输出是:

-1-1-1-1-11048603-1-1-1-11048603-1-11048603-1-110486031048603-110486031048603-1-11048689-1104868910486891048689-1-1-111140831310819-1-1-1-1-1-1-1-11114089-1-1-1

其中-1是不按任何键的代码,1048603是转义符号,1114089是字母q。究竟发生了什么?我期待着ascii密钥代码。如何让我的程序以正确的方式对按下escape或q做出反应?如果

,则不会发生这种情况

谢谢。

0 个答案:

没有答案