if cv2.waitKey(0) & 0xFF == ord('q'):break
通常,我们看到上述句子,用于在指定的时间内等待击键,通常用于图像和视频处理应用程序中,以暂停执行并允许用户与显示的窗口交互。
cv2.waitkey(0) # wait indefinitely
cv2.waitkey(3000) # wait for 3000ms, which is 3s
至于 ord(),它用于返回字符的 unicode编码。
In Python, the ord() function returns the Unicode code for a character. This function takes a unit-length text as an argument and returns the Unicode equivalent of the specified parameter. The ord() function is used to convert a single character into its integer Unicode code value. The function only accepts a string with the length of onehttps://www.bing.com/ck/a?!&&p=875d7487e2e8b060a85beef00f83920bbebc2a908f282873dff588db0080cd2fJmltdHM9MTc0MjUxNTIwMA&ptn=3&ver=2&hsh=4&fclid=266c1486-d8f0-602c-0b69-010cd9966195&psq=ord+python&u=a1aHR0cHM6Ly9sZWFybnB5dGhvbi5jb20vYmxvZy9vcmQtZnVuY3Rpb24taW4tcHl0aG9uLw&ntb=1此处 & 的目的是为了提取出 后8位。cv2.waitKey() 返回一个 32-bit 的整数,通过按位与操作,提取出后八位,并将结果 与 ‘q’ 的 Unicode码进行比较。(Unicode 码 是 ASCII 码的超集)
所以,上述代码会一直等待,直到你 输入'q'。
link:
https://stackoverflow.com/questions/35372700/whats-0xff-for-in-cv2-waitkey1