我正在尝试使用python从defualt carmera拍照,为此,我正在使用openCV(来自python shell的import cv2
)。但是,当我尝试禁用相机时,它会关闭但出现错误[ WARN:0] terminating async callback
。
这是我要运行的代码:
import cv2
camera_port = 0
camera = cv2.VideoCapture(camera_port)
return_value, image = camera.read()
cv2.imwrite("image.png", image)
camera.release() # Error is here
代码输出所需的结果-需要保存一张图片,但我不明白为什么会出现错误消息或如何删除它
答案 0 :(得分:1)
它可能显示警告,因为您没有释放摄像头的手柄。
尝试将其添加到代码末尾
camera.release()
cv2.destroyAllWindows()
我希望这会有所帮助!
答案 1 :(得分:0)
第一:添加cv2.destroyAllWindows()
第二:您已禁止的摄像头权限,请检查。
答案 2 :(得分:0)
camera = cv2.VideoCapture(camera_port,cv2.CAP_DSHOW)
cv2.destroyAllWindows()
答案 3 :(得分:0)
它对我有效,如 Sumit Kumar
camera_port = 0
#camera = cv2.VideoCapture(camera_port)
camera = cv2.VideoCapture(camera_port,cv2.CAP_DSHOW)
# Check if the webcam is opened correctly
if not camera.isOpened():
raise IOError("Cannot open webcam")
return_value, image = camera.read()
print("We take a picture of you, check the folder")
cv2.imwrite("image.png", image)
camera.release() # Error is here
cv2.destroyAllWindows()
答案 4 :(得分:0)
我也有同样的警告。 只需将 camera = cv2.VideoCapture(camera_port)行修改为 camera = cv2.VideoCapture(camera_port,cv2.CAP_DSHOW)并添加 cv2.destroyAllWindows()< / strong>作为代码的最后一行。
答案 5 :(得分:0)
camera = cv2.VideoCapture(camera_port, cv2.CAP_DSHOW) # Added cv2.CAP_DSHOW
return_value, image = camera.read()
cv2.imwrite("image.png", image)
camera.release()
cv2.destroyAllWindows() # Handles the releasing of the camera accordingly
答案 6 :(得分:0)
大家发现解决方案pip install opencv-contrib-python == 3.4.7.28尝试这样,我们必须专门说一下,尝试使用我的4.x较小的版本,所以我做到了,没有错误弹出
答案 7 :(得分:0)
如果你是为了这个错误
anonymous-namespace'::SourceReaderCB::~SourceReaderCB terminating async callback
修复是将 opencv 版本降级到 3.4.2.16
做:
pip install opencv-python==3.4.2.16
答案 8 :(得分:-1)
我这样做了,以后也看不到该警告。(仅适用于Windows操作系统)
打开cmd并输入:
setx OPENCV_VIDEOIO_PRIORITY_MSMF 0