Ai Thinker のESP32CAMを使ってウェブカメラやタイムラプスカメラを作成しています。
明るさ、コントラスト、ホワイトバランスなどの設定はデフォルトのままで運用していますが、設定できないか調べてみました。
- ESP32CAMの画像設定の詳細
- 明るさ設定(範囲: -2 から 2)
- コントラスト設定(範囲: -2 から 2)
- 彩度を設定(範囲: -2 から 2)
- 特殊効果設定(0: 効果なし、1: ネガ、2: グレースケール、3: 赤、4: 緑、5: 青、6: セピア)
- ホワイトバランス(0: 無効、1: 有効)
- : 自動ホワイトバランスのゲイン(0: 無効、1: 有効)
- ホワイトバランスモード設定(0: 自動、1: 晴れ、2: 曇り、3: オフィス、4: 屋内)
- : 露出制御(0: 無効、1: 有効)
- : 高度露出制御(0: 無効、1: 有効)
- : 自動露出レベル設定(範囲: -2 から 2)
- : 自動露出値設定(範囲: 0 から 1200)
- : ゲイン制御(0: 無効、1: 有効)
- 自動ゲイン制御設定(範囲: 0 から 30)
- ゲインの上限設定(範囲: 0 から 6)
- 欠陥ピクセル補正(0: 無効、1: 有効)
- ホワイトピクセル補正(0: 無効、1: 有効)
- ガンマ補正(0: 無効、1: 有効)
- レンズ補正(0: 無効、1: 有効)
- 水平反転(0: 無効、1: 有効)
- 垂直反転(0: 無効、1: 有効)
- ダウンサンプル/クロップ/ウィンドウ(0: 無効、1: 有効)
- : カラーバー(0: 無効、1: 有効)
- スケッチへの記載方法
- 関連記事
ESP32CAMの画像設定の詳細
海外のサイトですが、分かりやすいです。 設定しやすいように日本語化しておきます。
スケッチへの書き込みもいたって簡単です。それぞれの数字の部分を適宜書き換えてください。
60+ ESP32-CAM Projects, Tutorials and Guides with Arduino IDE
明るさ設定(範囲: -2 から 2)
set_brightness(s, 0);
コントラスト設定(範囲: -2 から 2)
set_contrast(s, 0);
彩度を設定(範囲: -2 から 2)
set_saturation(s, 0);
特殊効果設定(0: 効果なし、1: ネガ、2: グレースケール、3: 赤、4: 緑、5: 青、6: セピア)
当然ですが、グレースケールにするとデータ量が激減します。
set_special_effect(s, 0);
ホワイトバランス(0: 無効、1: 有効)
いまいち違いがわからない設定です。取り合えず有効で良いかと思います。
set_whitebal(s, 1);
: 自動ホワイトバランスのゲイン(0: 無効、1: 有効)
set_awb_gain(s, 1);
ホワイトバランスモード設定(0: 自動、1: 晴れ、2: 曇り、3: オフィス、4: 屋内)
set_wb_mode(s, 0);
: 露出制御(0: 無効、1: 有効)
set_exposure_ctrl(s, 1);
: 高度露出制御(0: 無効、1: 有効)
set_aec2(s, 0);
: 自動露出レベル設定(範囲: -2 から 2)
set_ae_level(s, 0);
: 自動露出値設定(範囲: 0 から 1200)
set_aec_value(s, 300);
: ゲイン制御(0: 無効、1: 有効)
set_gain_ctrl(s, 1);
自動ゲイン制御設定(範囲: 0 から 30)
set_agc_gain(s, 0);
ゲインの上限設定(範囲: 0 から 6)
set_gainceiling(s, (gainceiling_t)0);
欠陥ピクセル補正(0: 無効、1: 有効)
set_bpc(s, 0);
ホワイトピクセル補正(0: 無効、1: 有効)
set_wpc(s, 1);
ガンマ補正(0: 無効、1: 有効)
set_raw_gma(s, 1);
レンズ補正(0: 無効、1: 有効)
set_lenc(s, 1);
水平反転(0: 無効、1: 有効)
set_hmirror(s, 0);
垂直反転(0: 無効、1: 有効)
set_vflip(s, 0);
ダウンサンプル/クロップ/ウィンドウ(0: 無効、1: 有効)
特に変化なし、とりあえず有効で良いかと思われます。
set_dcw(s, 1);
: カラーバー(0: 無効、1: 有効)
特に変化なし。 動画モードだとカラーバーが表示されます。
set_colorbar(s, 0);
スケッチへの記載方法
スケッチへの書き込み方法はいたって簡単です。
setup() 内に次のコードを入力して書き込みアップロードしてみてください。
void setup() { (略) //センサー設定 sensor_t * s = esp_camera_sensor_get(); //s->set_hmirror(s, 1); // 0 = disable , 1 = enable //s->set_vflip(s, 1); // 0 = disable , 1 = enable }
生成された画像が左右反転、上下反転されると思います。
ほとんどデフォルトでそれなりに撮影できます。明るさ、コントラストは変化がありますので、設定してみても良いかもしれません。
関連記事
- 【解決】AiThinker ESP32-CAMがGoogle Driveに繋がらなくなった
- 【自作タイムラプス】ESP32-CAMをDeepSleepモードで省電力化してみた【Time Lapse】
- 【IoT】ESP32-CAMを使ってWEBカメラを自作してみた(Wifi接続編)
コメント