'CV2: "[ WARN:0] terminating async callback" when attempting to take a picture
I am trying to take a picture from the defualt carmera with python, to do this I am using openCV (import cv2
from python shell). However, when I attempt to disable the camera it closes but with the error [ WARN:0] terminating async callback
.
This is code I am trying to run:
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
The code outputs the desired result- it takes a saves an image but I do not understand why the error message occures or how to remove it
Solution 1:[1]
I had the same warning.
Just modify the line camera = cv2.VideoCapture(camera_port)
to camera = cv2.VideoCapture(camera_port, cv2.CAP_DSHOW)
and add cv2.destroyAllWindows()
as the last line of your code.
Solution 2:[2]
It's probably showing a warning because you're not releasing the handle to the webcam.
try adding this to the end of the code
camera.release()
cv2.destroyAllWindows()
I hope this helps!
Solution 3:[3]
camera = cv2.VideoCapture(camera_port,cv2.CAP_DSHOW)
cv2.destroyAllWindows()
Solution 4:[4]
I did this & I don't see that warning there after.(only for Windows OS)
Open cmd and type:
setx OPENCV_VIDEOIO_PRIORITY_MSMF 0
Solution 5:[5]
This seems to be a bug in MSMF backend of opencv.
If you are using windows then you can change the backend to DirectShow
backend.
So, change VideoCapture
like this:
captureDevice = cv2.VideoCapture(0, cv2.CAP_DSHOW)
Solution 6:[6]
It works for me as indicated 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()
Solution 7:[7]
- first:add
cv2.destroyAllWindows()
- second:the camera permission you have banned,and then check it.
Solution 8:[8]
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
Solution 9:[9]
hey guys found the solution pip install opencv-contrib-python==3.4.7.28 try like this we have to specifically say the version try lesser version mine was 4.x so I did and no error popped up
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Sociopath |
Solution 2 | Aprajita Verma |
Solution 3 | Dimitry Ernot |
Solution 4 | Suraj Kumar |
Solution 5 | Codemaker |
Solution 6 | Joe Llerena |
Solution 7 | |
Solution 8 | |
Solution 9 | ARUN AK |