не могу получить код ключа сейчас, используя python и opencv - PullRequest
1 голос
/ 24 февраля 2012

хорошо, я использовал эту базовую вещь в последние несколько месяцев, чтобы получать события клавиш, такие как клавиша ESC, клавиша E и т. Д., Для выполнения действий, когда они нажимаются в моей программе opencv.

Ранее, для обнаружения ключа ESC, код был уже во всех примерах в папке примеров и в Интернете. Я понял это. После этого я нашел способ получить коды клавиш для других клавиш, таких как E и S и т. Д. Потому что я хотел использовать их для создания снимков текущих кадров, обрабатываемых в моей программе. И это сработало, я узнал для E его 101, как для ESC 27 Но это значение ASCII или что-то? Я не уверен.

Это то, что я делаю сейчас, но просто не печатать код ключа:

import cv

while True:

   k = cv.WaitKey(100) % 0x100

   if k != 255:
        print k

Так что, когда я нажимаю какую-либо клавишу, значение которой не равно 255, я должен быть уведомлен о том, что эта клавиша была нажата. Это работает в моих программах opencv:

while True:



  k = cv.WaitKey(10)

  if k % 0x100 == 27: # if ESC key is pressed....

    #cv.SaveImage(filename,threshed2)
    cv.DestroyWindow("threshed") #Destroy the window of detection results
    cv.DestroyWindow("gray")
    cv.DestroyWindow("edge")
    cv.DestroyWindow("pupil")
    #cv.DestroyWindow('smooth')
    break

  elif k == 101: #if E is pressed
        eyeSnap = "C:\\Users\\ronnieaka\\Desktop\\PROJ\\openCV\\eyeSnaps\\det_pupil.jpg"
        cv.SaveImage(eyeSnap,image)

Я знаю, что это базовая вещь, и я просто играл, чтобы нажать клавиши и сделать что-то еще, не связанное с OpenCV. Почему я не получаю 101 из предыдущего кода, когда я нажимаю E, или код для других клавиш, когда я нажимаю их?

Ответы [ 2 ]

1 голос
/ 24 февраля 2012

Раньше это было очень просто:

k = cv.WaitKey(10)
if k == 27:         
    # ESC key was pressed

Код выше не работает в вашей системе?

0 голосов
/ 28 апреля 2014


У меня та же проблема, что и у вас, но я всегда не мог получить код ключа (только 255)
Я нахожу его, потому что cv.WaitKey получает ключ только из окон, которые вы создаете, а не из командной строки python:)

...