cv2.waitKey(10) & 0xFF==27的理解
cv2.waitKey(10)的意思就是延迟十毫秒,如果期间有按键按下返回的值就是按下按键的ASCII值,就比如esc键的ASCII值是27,cv2.waitKey(10) & 0xFF==27就是当按下按键是esc的时候返回true。其实要是我写的话可能会直接写cv2.waitKey(10)==27,现在才发现为啥要 & 0xFF,0xFF意思是16进制的FF也就是八位2进制数1
·
cv2.waitKey(10)的意思就是延迟十毫秒,如果期间有按键按下返回的值就是按下按键的ASCII值,就比如esc键的ASCII值是27,cv2.waitKey(10) & 0xFF==27就是当按下按键是esc的时候返回true。
其实要是我写的话可能会直接写cv2.waitKey(10)==27,现在才发现为啥要 & 0xFF,0xFF意思是16进制的FF也就是八位2进制数1111 1111. xxx & 0xFF得出的结果永远是xxx本身的后八位,按键的ASCII值有的可不止8位,在其他按键如numclock激活的时候有些按键的ascii值就会超过8位,如果引入& 0xFF==27 那么得出的结果永远是后八位,这样就可以排除其他按键的干扰。 当然这样做还是会区分大小写的,就比如大写的A和小写的a的ascii值分别是1010001和1100001,本身后八位就是不一样的。& 0xFF只是为了排除键盘上其他按键的干扰
更多推荐
已为社区贡献1条内容
所有评论(0)