在opencv中按下键时显示

时间:2016-01-25 12:14:06

标签: c++ opencv

有一个程序可以从摄像机获取实时信息:我想在按下键盘上的键时执行一些操作,而不会干扰正在进行的过程。我试过了

if(waitKey(30) == '27')
  cout << "ESC pressed";

但是这个不起作用。

2 个答案:

答案 0 :(得分:3)

  

Documentation:
  该功能仅在至少创建一个HighGUI窗口且窗口处于活动状态时才有效。如果有多个HighGUI窗口,则其中任何一个都可以处于活动状态。

据我所知,你的问题似乎没有任何活跃的窗口。如果是这种情况,首先在imshow功能的帮助下显示图像,然后等待按任何键。

答案 1 :(得分:2)

cv::waitKey()返回一个整数。您可以将其转换为char,然后与此类

之类的任何键的十进制ASCII代码进行比较
if((char)cv::waitKey(1) == 27) std::cout << "ESC pressed" << std::endl;

或(等效地)写

if(cv::waitKey(1) % 256 == 27) std::cout << "ESC pressed" << std::endl;