cv2.waitKey

about

本文参考了:

cv2.waitKey接口

Python: cv2.waitKey([delay]) → retval
Parameters: 
delay – Delay in milliseconds. 0 is the special value that means “forever”.
The function waitKey waits for a key event infinitely (when delay <= 0 ) or for delay milliseconds, when it is positive. 
It returns the code of the pressed key or -1 if no key was pressed before the specified time had elapsed.
Note! The function only works if there is at least one HighGUI window created and the window is active. If there are several HighGUI windows, any of them can be active.

test

  • code 1
import cv2

def test():
    lena = cv2.imread('lena.jpg')
    cv2.imshow('image', lena)
    cv2.waitKey(0)
    print "I'm done"

if __name__ == '__main__':
    test()

图片显示着,直到你按下任意一个键,才被关掉,打印出I'm done

  • code 2
import cv2

def test():
    lena = cv2.imread('lena.jpg')
    cv2.imshow('image', lena)
    keycode = cv2.waitKey(1000)
    print keycode
    print "I'm done"

if __name__ == '__main__':
    test()

结果图片只显示1秒,如果此期间你按下一个键,比如键a,那么将打印出

97
I'm done

如果在图片显示时,不按键,则将打印出

-1
I'm done
  • code 3
import cv2

def test():
    lena = cv2.imread('lena.jpg')
    while True:
        cv2.imshow('image', lena)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            print "I'm done"
            break;

if __name__ == '__main__':
    test()

运行代码,会显示一张图片,当你按下q键时,显示图片的窗口被关掉,并打印出I'm done,结束程序。

关于为什么要有0xFF:

On some systems, waitKey() may return a value that encodes more than just the ASCII keycode. 
On all systems, we can ensure that we extract just the ASCII keycode by reading the last byte from the return value like this: 
keycode = cv2.waitKey(1)
if keycode != -1: 
  keycode &= 0xFF
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容