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

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

4

1 回答 1

0

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

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

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

&是按位与运算符

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

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

于 2020-04-28T07:16:44.513 回答