我有一个简单的Python脚本,可以使用基于this post的笔记本电脑相机拍照。
尤其是,用户可以通过按ESC退出程序。以下是脚本的一部分
# cv2 is OpenCV module
key = cv2.waitKey(1)
# ESC is pressed
if k % 256 == 27:
print("ESC is pressed, exit ...")
break
尽管一切正常。但是,当将键盘更改为其他输入(例如俄语,中文)时,在流式传输视频时,按任意键(此处表示A,B,C,...,Z键)出现以下错误的程序会打印出来。
ASSERT: "false" in file qasciikey.cpp, line 501
Abort trap: 6
使用英语/法语/德语键盘时找不到此错误。
如何在我的Python脚本中正确处理此问题?谢谢
答案 0 :(得分:0)
看起来像opencv waitKey不适用于Unicode字符。您可以尝试使用不同的方法,如果您使用Windows,则可以尝试使用pywin32获取字符
import win32api
if win32api.GetAsyncKeyState(0x0000001B): #0x1B 0x001B
print("ESC is pressed, exit ...")
break
或者您可以使用数字按钮来中断循环:
if cv2.waitKey(25)==0x30: #digit zero 0x0030 0x00000030
print("num 0 is pressed, exit ...")
break