хорошо, я использовал эту базовую вещь в течение последних нескольких месяцев, чтобы получать ключевые события, такие как клавиша 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, или код для других клавиш, когда я нажимаю их?