ブラウザ上でカメラを起動するのであれば、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か。。