web-dev-qa-db-ja.com

CV2:写真を撮ろうとすると「[WARN:0]非同期コールバックを終了しています」

私はpythonでデフォルトのカルメラから写真を撮ろうとしています。これを行うには、openCV(import cv2 from python Shell)を使用しています。ただし、カメラを無効にしようとすると閉じますが、エラー[ 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

コードは望ましい結果を出力します-それは画像を保存する必要がありますが、エラーメッセージが発生する理由またはそれを削除する方法がわかりません

5
Elephant

Webカメラのハンドルを解放していないため、おそらく警告が表示されています。

これをコードの最後に追加してみてください

camera.release()
cv2.destroyAllWindows()

これが役に立てば幸いです!

1
Aprajita Verma
  1. 最初:追加cv2.destroyAllWindows()
  2. 第二に、あなたが禁止したカメラの許可、そしてそれをチェックしてください。
1
robot liu

こんにちはみんなが解決策を見つけましたpip install opencv-contrib-python == 3.4.7.28このように試してください私たちは具体的にバージョンを試してみる必要があります私のバージョンは4.xだったので、エラーは表示されませんでした

0
ARUN AK
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
0
Brady R

それは示されているように私のために働きます 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()
0
Joe Llerena