【電子工作】OV5647カメラモジュールを使ってlibcamera-jpegで写真を撮ってみる(Raspberry Pi 4で遊ぼう日記 その19)

投稿日:2022年7月5日
最終更新日:2022年7月5日

Raspberry Pi 4 + OV5647カメラモジュールで写真(静止画)を撮る

前回、OV5647というOmniVision社製イメージセンサーを搭載した以下のカメラモジュールをラズパイに接続し、テストを行った。

今回は、カメラモジュールで写真(静止画)を撮ってみたいと思う。今回もデフォルトでRaspberry Pi OSにインストールされているlibcameraを使う。写真の撮り方はいくつかあるが、まずはlibcamera-jpegというコマンドで写真を撮ってみる。なお、今回もSSH接続はせずに、ラズパイにモニター、キーボード、マウスを接続してGUI上から操作を行った。

なお、今回の内容はラズベリーパイの公式ドキュメントのlibcamera-jpegの情報を参照しながら進めた。

https://www.raspberrypi.com/documentation/accessories/camera.html#libcamera-jpeg

 

実行環境

Raspberry Pi 4 Model B

Raspberry Pi OS (Bullseye)

カメラモジュール(OV5647)

 

とりあえず写真を撮ってみる

libcamera-jpegで写真を撮影する場合に必要な最低限は以下のコマンド。これでコマンドを実行したディレクトリにcameratest.jpgという名前でjpegファイルが保存される。

libcamera-jpeg -o cameratest.jpg

このコマンドで写真を撮影すると、カメラモジュールの最大解像度で写真が保存される。OV5647だと2592 x 1944ピクセルが最大なので、このサイズでjpegファイルが保存されていた。

 

写真のサイズを変えてみる

保存する写真のサイズを指定して撮影することもできる。–widthと–heightオプションをつければ、指定したサイズで写真が保存される。以下のコマンドでは640 x 480ピクセルでcameratest-small.jpgというファイルが保存される。

libcamera-jpeg -o cameratest-small.jpg --width 640 --height 480

以下が撮影してみた画像。色の具合をみたかったので、以前買ったラズパイ用のキットに入っていた抵抗値の早見表を、キットのケースに貼り付けて写真を撮った。

 

カメラの露出補正を使ってみる

camera-jpegでは、オプションでカメラの露出補正も実行することができる。以下のように–evオプションの後に補正値を設定することで露出補正ができる。露出補正は-1.0~1.0の間で調整でき、負の値だと暗くなり、正の値だと明るくなる。

libcamera-jpeg --ev 0.5 -o cameratest-bright.jpg --width 640 --height 480

比較のために、–evの値を0.5と-0.5にして比較してみた。以下のように、露出補正をかけることで画像の明るさが変わっている。

ちなみに、以下のように–shutter、–gainオプションをつければカメラのシャッタースピードやゲインなども設定できるらしい。

libcamera-jpeg -o cameratest.jpg --shutter 20000 --gain 1.5

ただ、こちらの設定値も色々いじっても画像に変化は見られず。OV5647のデータシートをちゃんと読んでないので、設定値が不正になっていたのだろうか。こちらはまた今度調べてみようと思う。

また、以下のように-tコマンドをつけると、previewが表示される時間を調整することもできる。単位はmsecなので、以下のコマンドではpreviewの表示時間は2秒に設定される。

libcamera-jpeg -o cameratest.jpg -t 2000

ざっくりとcamera-jpegの使い方はわかった。今回使ったcamera-jpegはjpegファイルで保存されるが、このほかにcamera-stillというコマンドがあり、こちらを使うとpngなど他のファイル形式が画像が保存できたり、イメージセンサーのrawデータを保存できたりする。

次回はこのcamera-stillコマンドを使って写真を撮ってみたいと思う。

 

日記まとめ

ラズパイで遊んでみた軌跡を以下でまとめてます。

【電子工作】Raspberry Pi 4で遊ぼう日記 まとめ


投稿者: wakky

映画と旅行が大好きなエンジニア。お酒、ゲーム、読書も好き。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください