Ubuntu 22.04 サーバー (RaspberryPi 4B) 上の OpenCV 4.5.4 を使用した PiCamera のキャプチャで空のフレームが返される

Ubuntu 22.04 サーバー (RaspberryPi 4B) 上の OpenCV 4.5.4 を使用した PiCamera のキャプチャで空のフレームが返される

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 ドキュメント

関連情報