14 мая 2011 г.

Баг в opencv под GTK

При работе с opencv под Ubuntu обнаружил странное поведение метода cv.WaitKey. Он возвращал не ASCII код нажатых клавиш. Например код:
key = cv.WaitKey(5)
print key 
при нажатой клавиши 'q' вернул мне код 1048689 вместо 113.Дело в том что в GTK используется 16 разрядов для помещения в старший байт дополнительной информации, более подробно об этом тут. Что бы корректно все работало, нужно маскировать первый байт. Пример правильного получения нажатого символа:
key = chr(cv.WaitKey(5) & 0xff)
Функция chr(i) преобразования кода ASCII в символ.
Вот и все :)

Комментариев нет:

Отправить комментарий