Python 3.x 在OpenCV python中使用0xFF和keyWait(1)

Python 3.x 在OpenCV python中使用0xFF和keyWait(1),python-3.x,Python 3.x,上面是我访问照相机的python OpenCV程序的一个片段。 谁能解释一下当我按下键盘上的“q”字符时循环是如何结束的,为什么使用0xFF?根据openCV文档中的waitKey函数 它将等待至少延迟毫秒,这取决于当时计算机上运行的其他内容。它返回所按下键的代码,如果在指定时间之前未按下任何键,则返回-1 0xFF是十六进制,它转换为二进制的11111111 &是按位AND运算符 这意味着0xFF&cv2.waitKey(1)基本上返回cv2.waitKey()返回的值的最后8位。由于wait

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

根据openCV文档中的waitKey函数

它将等待至少延迟毫秒,这取决于当时计算机上运行的其他内容。它返回所按下键的代码,如果在指定时间之前未按下任何键,则返回-1

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

&
是按位AND运算符

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


i、 e如果按下的键等于“q”,则根据waitKey函数上的openCV文档中断循环

它将等待至少延迟毫秒,这取决于当时计算机上运行的其他内容。它返回所按下键的代码,如果在指定时间之前未按下任何键,则返回-1

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

&
是按位AND运算符

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

i、 e如果按下的键等于“q”,则断开循环

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