VNC接続してカメラプレビュー画面を表示させる

前提

Raspberry PiHDMIモニターを接続せずに,VNCSSHでリモートアクセスしている場合,カメラのプレビューが表示されない(例:カメラモジュールを始めよう - Pythonコードでカメラモジュールをコントロールする方法 | Raspberry Pi Projects)。

そこで,以下のような対策を取ってきた。

SSPライブラリでRaspberry Pi Camera Moduleを動かしてみる - input-R

RPi-Cam-Web-Interface - input-R

ちなみに,前者のVisionProcessingFrameworkは,上記ページではリンクが切れているが,今は,https://soho-enterprise.com/page-915/からダウンロードできる。ただし,High quality camera(IMX417R)は該当するライブラリがないので,使えない(と思われる)。

対策

VNC接続の設定を変える

下記に書いた通り,VNC Serverを開き,アプリの右上からOptionsを開く。Troubleshootingを選び,Enable direct capture modeにチェックを入れる。

Raspberry PiへのPoE給電とUbuntuからVNC接続 - input-R

picameraによる実行

pipenv仮想環境にpicameraを入れる(不要かも?)

cd PJhqcamera
pipenv shell
pipenv install picamera

picameraを実行

pipenv仮想環境でjupyter labを立ち上げ,以下のコードを実行。プレビュー画面がUbuntu上に表示される。

from time import sleep
from picamera import PiCamera
camera = PiCamera()
camera.start_preview(fullscreen=False, window=(50,150,1024,576))
sleep(10)
camera.stop_preview()
camera.close()