今週はまた岡谷に来ているが、
ここで書いたように Raspberry-Piを同伴してきて、暇を潰している。そんな中での話題。
多くの Web情報では、openCVでカメラ制御するためには O/Sは Bullseyeを使えと書いてある。しかし今回新たに BookWarmをインストールしたので、そのまま試してみた。
結果、Picamera2のライブラリを使うことで静止画と動画が撮影できることがわかった。しかしそれ以上の発見は、VNCで接続した PCとの間で何もしなくてもコピペが可能だということ。ラズパイでは Chromiumが初期インストールされていてそのままでも Web検索など出来るが、リモート接続なので反応はやや緩慢だし、日本語辞書などのインストールなども面倒なので、慣れない Pythonスクリプトなど親機の PC側で検索して必要部分だけをコピーしてから、ラズパイのエディタにペーストしたい。リモート接続しているとはいえ別PCなので、何かツールをインストールしないとならないだろうと勝手に思っていた。しかし調べたらそのままでクリップボードが共有されているという。実際に試したら双方向でコピペが可能だった。
さて、openCVでのカメラ撮影は以下のスクリプトで出来た。
from picamera2 import Picamera2
import cv2
key = input ("imput j or m :") # j か m の後で Enterを押す
print (key + " が押された")
if key == 'j':
# j だったら
picam2 = Picamera2()
# 画像を保存
picam2.start_and_capture_file("test.jpg")
elif key == 'm':
# m だったら動画記録
picam2 = Picamera2()
picam2.start_and_record_video("test.mp4", duration=5)
else:
print ("none:")
print ("end:")
これで、実行ファイルと同じフォルダーに test.jpg か test.mp4 が保存された。
なお、試した環境は以下の通り
bookworm/Debian 12
python -v: 3.11.2
openCV version: 4.6.0
numpy version: 1.24.2
camera: ov5647 [2592x1944 10-bit GBRG]