python - cv2.waitKey(1) 中的 0xFF 是什么?

标签 python opencv hex

我试图了解 0xFF 在以下代码段中的作用:

if cv2.waitKey(0) & 0xFF == ord('q'):
    break

有什么想法吗?

最佳答案

同样重要的是要注意,如果您激活了 NumLock,ord('q') 可以返回不同的数字(也许其他键也会发生这种情况)。 比如按c的时候,代码:

key = cv2.waitKey(10) 
print(key) 

返回

 1048675 when NumLock is activated 
 99 otherwise

将这两个数字转换为二进制我们可以看到:

1048675 = 100000000000001100011
99 = 1100011

我们可以看到,最后一个字节是相同的。然后有必要只取最后一个字节,因为其余的都是由于 NumLock 的状态引起的。因此,我们执行:

key = cv2.waitKey(33) & 0b11111111  
# 0b11111111 is equivalent to 0xFF

键的值将保持不变,现在我们可以将它与我们想要的任何键进行比较,例如您的问题

if key == ord('q'):

关于python - cv2.waitKey(1) 中的 0xFF 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35372700/

相关文章:

python - QAbstractItemModel 和 QModelIndex 之间的相互作用

java - 在 java 中使用 python 类方法

c++ - OpenCV - 如何计算照片中的物体?

iOS - Xcode 中的 JPG "open as"十六进制

java - java 中十六进制数字的 extratinf RGB 分量

c# - 将十六进制解析为颜色系列的算法

python - [可靠];使用多个字典

python - 为什么在 Python 中计算点距离这么慢?

c++ - 编译一个c工程到最小尺寸

opencv - cv2.projectPoints 实际上是如何工作的?