现在,为了检测ESC密钥,代码已存在于samples文件夹和Web上的所有示例中。我明白。从那以后,我开始了一种方法来获取其他键的密钥代码,例如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无关的其他事情 为什么我按E时没有从前面的代码中获得101,或者当我按下它时按其他键的代码?
答案 0 :(得分:1)
这曾经非常简单:
k = cv.WaitKey(10)
if k == 27:
# ESC key was pressed
上面的代码不适用于您的系统?
答案 1 :(得分:0)
我和你有同样的问题,但我总是得不到keycode(只得到255)
我发现它是因为cv.WaitKey只从你创建的窗口接收密钥而不是python命令行:)