我正在调试一些在Ubuntu 14上使用OpenCV的C++代码,已知可以在Ubuntu 12上工作,并可能与其他OpenCV库构建一起工作。
之前的内容:
int key_pressed = waitKey(0);
cout << "key_pressed " << int(key_pressed) << endl;
switch( key_pressed )
{
case 27: //esc
{
//close all windows and quit
destroyAllWindows();
}
...
但是这段代码并没有起作用,输出结果为key_pressed 1048603
这段代码可以正常工作:
char key_pressed = cv::waitKey();
cout << "key_pressed " << int(key_pressed) << endl;
switch( key_pressed )
{
case 27: //esc
{
//close all windows and quit
destroyAllWindows();
}
...
这段代码可以正常工作,输出结果为 key_pressed 27
出现这种情况的原因可能是什么呢?
P.S. 文档中提到 cv::waitKey() 返回一个 int
值,那么我们为什么需要将其转换成 char
呢?