Opencv cv :: waitKey () valor de retorno

Estoy depurando un código C ++ que usa OpenCV en Ubuntu 14, que se sabe que funciona en Ubuntu 12 y tal vez con otras compilaciones de bibliotecas OpenCV.

Lo que era antes

int key_pressed = waitKey(0);
cout << "key_pressed " << int(key_pressed) << endl;
switch( key_pressed )
{
    case 27: //esc
    {
        //close all windows and quit
        destroyAllWindows();
    }

    ...

Pero este código no funciona y en la salida tengokey_pressed 1048603

Este código de trabajo:

char key_pressed = cv::waitKey();
cout << "key_pressed " << int(key_pressed) << endl;
switch( key_pressed )
{
    case 27: //esc
    {
        //close all windows and quit
        destroyAllWindows();
    }

    ...

Este código está funcionando y en la salida tengokey_pressed 27

¿Cuál puede ser la razón de tal comportamiento?

PDla documentación dice that cv :: waitKey () returnintEntonces, ¿por qué deberíamos convertirlo achar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta