Raspberry Pi4B 上の Ubuntu 22.04 サーバーに OpenCV 4.5.4 をインストールしました。
( sudo apt install python3-opencv -y )
Video4Linux はカメラを認識します:
$ v4l2-ctl --list-devices
...
unicam (platform:fe801000.csi):
/dev/video0
/dev/media0
OpenCVでPiCamera v1.3からビデオをキャプチャしようとすると、空のフレームが返される
#!/usr/bin/env python3
import cv2
from datetime import datetime
# open camera
cap = cv2.VideoCapture('/dev/video0', cv2.CAP_V4L)
# set dimensions
# 16:9 - 1296x730, 1920x1080
# 4:3 - 640x480, 1296x972, 2592x1944
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 2592)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 1944)
# filename format
fname = "capture_"+datetime.now().strftime("%Y%m%d-%H%M%S")+".jpg"
# capture a frame
ret, frame = cap.read()
print("ret:",ret)
if ret:
print("h,w: ", frame.shape[:2])
# wirte frame to file
cv2.imwrite(fname, frame)
else:
print("Frame not captured")
# release camera
cap.release()
# ---
$ ./snapJPG_opencv.py
ret: False
Frame not captured
デバッグする方法はありますか?
答え1
カメラを有効にしましたか?ラズパイ設定道具?
最近、Ubuntu 22.04 Server を搭載した Raspberry pi 4 上の OpenCV でカメラを使用したときに同じ問題が発生しました。
インストールする必要がありますラズパイ設定道具。
ターミナルで以下のコマンドを入力してツールをインストールします。
sudo apt install raspi-config
次に、ツールを開きます。
sudo raspi-config
ツール画面が開いたら、インターフェース オプションに移動し、「レガシー カメラ オプション」を有効にします。
raspi-configツールの詳細Raspberry Pi ドキュメント