首页 > 解决方案 > 在 OpenCV python 中使用 0xFF 和 keyWait(1)

问题描述

while(True):
   img,frame=cap.read()
   cv.imshow("preview",frame)
    if cv.waitKey(1) & 0xFF==ord('q'):
       break

以上是我用于访问相机的 python OpenCV 程序的片段。谁能解释当我在键盘上按下字符“q”时循环如何结束以及为什么使用 0xFF?

标签: python-3.x

解决方案


根据关于 waitKey 函数的 openCV 文档,

它将至少等待延迟 ms,具体取决于当时您计算机上正在运行的其他内容。如果在指定的时间过去之前没有按下任何键,则返回被按下键的代码或 -1。

0xFF是十六进制,转换为11111111二进制。

&是按位与运算符

这意味着0xFF & cv2.waitKey(1)实质上返回由返回的值的最后 8 位cv2.waitKey()。由于 waitKey 函数返回被按下的键的代码,因此它是被按下的键的最后 8 位。

即如果按下的键等于'q',则中断循环


推荐阅读