【问题标题】:Can anyone tell me why the code below used waitKey(20) and what does this 0xFF == ord('q') mean? [duplicate]谁能告诉我为什么下面的代码使用了 waitKey(20) 以及这个 0xFF == ord('q') 是什么意思? [复制]
【发布时间】:2021-07-25 03:12:32
【问题描述】:
if cv2.waitKey(20) & 0xFF == ord('q'):

cv2.waitKey(20) & 0xFF 是什么意思?

【问题讨论】:

  • 0xFF 不属于== 运算符,它属于& 运算符。如果使用括号,则计算顺序为(cv2.waitKey(20) & 0xFF) == ord('q')
  • 好的,谢谢!我是 openCV 的新手,所以这就是为什么要问它。
  • @Progman--你能帮我理解一下这个东西吗,太好了!

标签: opencv3.0


【解决方案1】:

waitKey() 函数等待指定的毫秒数,然后返回被按下的键的代码,如果没有按下任何键,则返回 -1。

为了更好地理解表达式,让我们添加一些括号:

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

& 是一个bitwise and operator,在这里用于位掩码以仅获取最低八位(因为0xFF 等于1111 1111 二进制)。 waitKey() 返回一个 int,它通常是 32 位或 64 位整数,具体取决于架构。因此,任何“多余”位都被按位与“消除”。 ord() 函数 supposedly(!) 返回其参数的序数值,即。 e.在该示例中为'q' 的ASCII 码。

也就是说:等待20毫秒的按键,并检查按下的键是否为Q。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 2021-04-10
    • 1970-01-01
    相关资源
    最近更新 更多