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

您是否啟用了相機raspi 配置工具?

我最近在使用 Ubuntu 22.04 伺服器的 Raspberry pi 4 上的 OpenCV 中使用相機時遇到了相同的問題。

您需要安裝raspi 配置工具。

在終端機中輸入以下命令來安裝該工具。

sudo apt install raspi-config

然後使用開啟該工具

sudo raspi-config

打開工具畫面後,轉到“介面選項”,然後啟用“舊版相機選項”。

有關 raspi-config 工具的更多信息樹莓派文檔

相關內容