ESP-EYE CameraWebServer with QR Code Detection.
ESP-EYE QR Code Scanner with qrdec. の続きです。
前回の、ESP-EYE を使った、QR Code Scanner で、実際 に、カメラで、QR Code がどのように写っているのか知りたくて作ってみました。
CameraWebServer に、 Face Detect の代わりに、qrdec を使って、QR Detect にしてみました。
グレースケールで、320x240 の画像で、ピンとはどうなのかが確認できました。
あとで、github に公開します。 by nishi 2024.1.17
iconv は、ESP32 Arduino ライブラリーに入っているのに、うまく動かない。
なぜだろうか?
なにかのコンパイルパラメータが、必要なのだろうか?
いろんなボードが加わって、ライブラリーのソフト開発が追いついていないのか?
1. github に公開しました。
tosa-no-onchan/CameraWebServer
$ git clone https://github.com/tosa-no-onchan/CameraWebServer.git
platform io ide のプロジェクトディレクトリーに、コピーか、import します。
詳しくは、上の github を見とうせ!!
CameraWebServer に Browser でアクセスして、Streamming 画像をみていると、どうやら、画像の上下を逆にして、
左右を反転させた方がよさそう。
しなくても、QR Code は、拾えるみたいだが。
やはり、実際のカメラの映像をチェックすることは重要ぞね!!
2. おんちゃんのメモ。
CameraWebServer.ino でのカメラの初期化について。
オリジナルは、
config.pixel_format = PIXFORMAT_JPEG;
config.frame_size = FRAMESIZE_UXGA;
で、実際より大きな画像サイズで、カメラを初期化して、そのあとに、
// drop down frame size for higher initial frame rate
s->set_framesize(s, FRAMESIZE_QVGA); // 320x240
して、実際の画像サイズに変更している。
これで、実行中も簡単に画像サイズ (初期値よりも小さい画像サイズに) を変更できる。
しかし、
config.pixel_format = PIXFORMAT_GRAYSCALE;
で同じ事をすると。
と怒られる。これは、カメラのバッファサイズと実際に取り込んだサイズが
一致しない事らしい。
config.pixel_format = PIXFORMAT_GRAYSCALE;
のときは、同じ手法が使えない。
この場合は、常に、実際に取り込みたい画像サイズに合わせてカメラを初期化しないといけない。
画像サイズを替えたいばあいは、一度
esp_err_t err=esp_camera_deinit();
カメラを、リセットして、再度、画像サイズを変更して、初期化する。
config.frame_size = FRAMESIZE_QVGA; // 320x240
esp_err_t err = esp_camera_init(&config);