在使用python的openCV的过程中,如果直接使用
cv2.imshow('img', img)
那么图像不会显示,会直接闪退然后消失,我们需要让图片等一会再消失,所以我们使用imshow的好搭档waitKey,外套Key后面的参数是用来设置图像停留多少毫秒的。可以这样使用代码
cv2.imshow("video", frame)
c = cv2.waitKey(50)
这样就会显示50ms然后再消失。
然后我们有时候会看见下面两种代码
if cv2.waitKey(1000) & 0xFF == ord(‘q’)
#或者
cv2.imshow("video", frame)
c = cv2.waitKey(50)
if c == 113:
break
后者是这个opencv会接受返回值然后返回,如果需要终止或者什么操作可以这样
前者我是不太理解,这里参考优快云上一个高收藏的答案。
cv2.waitKey(1000)是说在1000ms内接受一个键盘的返回值
0xff很显然是一个16进制数字
ord('q')是返回q的二进制码
其实意思就是返回的数字是q的二进制码就为True然后进入下一步,那为什要用11111111与数字取并呢?那是因为返回的数字有的时候会有大于255的时候,这个时候取并能保证其在255内,程序不会报错,如果本来就是,那么与0xff取并肯定会在0-255之内,不用管
我的理解就是这样