【发布时间】:2020-01-14 00:19:15
【问题描述】:
我尝试过使用
if cv2.waitKey(0) & 0xFF == ord('q'):
break
但我不断收到TypeError。但是,当我使用其中任何一个时,我的相机都不会响应代码。
import cv2
import numpy as np
capture = cv2.VideoCapture(0)
while True:
ret, frame = capture.read()
cv2.imshow("frame", frame)
if cv2.waitKey(0) & 0xFF == ord('q'):
break
capture.release()
cv2.destroyAllWindows()
如果 cv2.waitKey(0) & 0xFF == ord('q'):
TypeError: &: 'NoneType' 和 'int' 的操作数类型不受支持
进程以退出代码 1 结束
【问题讨论】:
-
0xFF是一个整数值,255显然,cv.waitKey(0)返回值为None。不过,您的问题是您使用的是&而不是and。&是二元运算符,您正在寻找逻辑运算符and- 这也将修复排序,因为&比==强,但==比and强,所以你不需要括号。 -
@Gris 我认为二元运算符很好stackoverflow.com/a/52913689/2308683
-
@FunnyBunny 您能否提供更多见解:您是否看到
cv2.imshow("frame", frame)之后捕获的图像?您发布的错误是立即发生还是仅在您按下按钮后发生?您能否也澄清一下“但是,当我使用其中任何一个时,我的相机都不会响应代码” -
-
@FlyingTeller 我在
cv2.imshow("frame",frame)之后看不到任何图像。当我只使用waitKey或0xFF时,没有错误但我的显示器不会给出任何响应。我认为它可能是相关的,但是当两者一起使用时,它似乎有TypeError。