CV2:尝试拍照时出现“ [[WARN:0]终止异步回调”

时间:2018-12-21 17:44:32

标签: python image cv2

我正在尝试使用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

代码输出所需的结果-需要保存一张图片,但我不明白为什么会出现错误消息或如何删除它

9 个答案:

答案 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