質問: SpresenseでSpresenseカメラから1枚の高解像度RBG画像データを取得し、その後に画像処理を行うことが目的です。 「Spresense Arduino Library 開発ガイド」にて 3.2. Camera ライブラリ 第一、第二引数で画像の縦横サイズを指定します。第三引数で画像のピクセルフォーマットを指定します。 現在、画像のピクセルフォーマットはJPEGのみサポートしています。 3.2.6. 取得した画像を変換する。 convertPixformat()は、YUV422からRGB、YUV422からGLAY、の2つのみ対応しています。 つまり、Arduino Libraryでは高解像度RBG画像データは取得できない、と理解しました。 Spresense SDKを使うとできるのでしょうか? サンプルコード参照場所を知りたいです。
回答: Spresense SDKでcameraのサンプルはexamples/cameraにありますが、 このサンプルだと、STILL_CAMTURE場合の設定はJPEGになってますね。 551行目あたりのcamera_prepare()というスタティック関数でフォーマットを指定しているので、これをV4L2_PIX_FMT_RGB565に変更すれば行けるかもしれません。 ただ、そもそもメモリが足りなそうです。 フルHDでさえ1920*1080*2(Byte)=約4MByteなので、Spresenseのメモリサイズ1.5MByteを超えてます。 やりようとしては、 JPEGデコードのライブラリ(libjpegのようです)とサンプル:examples/jpeg_decodeがあるので、 JPEGで高精細で取って、保存しつつ、libjpegでライン毎にデコードして表示したり加工したりする、 というところでしょうか。 参考になれば幸いです。