我试图在按下转义时停止网络摄像头播放。
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做出反应?如果
,则不会发生这种情况谢谢。