ブラウザ上でカメラを起動するのであれば、httpsサーバに変更してChromeでカメラを許可にすれば良いんだが… openCVでカメラ画像の読み込もうとしてエラーになった。。。
import cv2 import numpy as np cap = cv2.VideoCapture(-1) while True: _, frame = cap.read() frame = cv2.resize(frame, (500, 300)) cv2.imshow('OpenCV web camera', frame) k = cv2.waitKey(1) if k == 27 or k == 13: break cap.release() cv2.destroyAllWindows()
$ python3 app.py
[ WARN:0] global /root/opencv_build/opencv/modules/videoio/src/cap_v4l.cpp (880) open VIDEOIO(V4L2): can’t find camera device
Traceback (most recent call last):
File “app.py”, line 8, in
frame = cv2.resize(frame, (500, 300))
cv2.error: OpenCV(4.5.0-dev) /root/opencv_build/opencv/modules/imgproc/src/resize.cpp:4051: error: (-215:Assertion failed) !ssize.empty() in function ‘resize’
No /dev/video in WSL (1 or 2).が原因っぽいが。。
Videoは今すぐは使わないが、、、
とりあえず動画ファイルの読み込みVideoCapture(‘*.mp4’)で再度やってみよう
cap = cv2.VideoCapture("fuji.mp4") print(type(cap)) print(cap.isOpened())
$ python3 app.py
False
isOpened()でfalseなので、読み込めてない。
build infoを見る
Video I/O:
DC1394: NO
FFMPEG: NO
avcodec: NO
avformat: NO
avutil: NO
swscale: NO
avresample: NO
GStreamer: NO
v4l/v4l2: YES (linux/videodev2.h)
Video I/Oに問題があるみたい。
なるほど、buildか。。