静止画確認(Pixelink SDK)
Snapshot
静止画に関連しているキーワードはSnapshotでした。
- getSnapshot.py
- getMultipleSnapshots.py
- getNumPySnapshot.py
- openCVSnapshot.py
- getPolarSnapshot.py
- getHDRSnapshot.py
該当するのは上記の6つでした。Polar とHDRは偏光カメラとHDRカメラの事と思われます。そのカメラは所有していないので確認できないかもしれません。
getSnapshot.py
動作をさせると、終了しました。 # Call registered threading atexit functions before threads are joined. # Order is reversed, similar to atexit. for atexit_call in reversed(_threading_atexits): atexit_call() のatexit_callでとまりました。スレッドの終了処理が何だかんだと書いてありますが、よく分からないので飛ばします。と思いましたら、ProgramFile内でそのまま使用していたせいでそのフォルダへの書き込み許可がありませんでエラーになっていました。 プログラムをドキュメントフォルダあたりに移動させてから実行させると 以下の結果になりました。
一番下のエラーはraw_mono8のフォーマットはモノクロカメラのみ動作するそうで、今回はカラーカメラを接続しているのでエラーとなっております。8つのフォーマットで静止画を保存すると言うサンプルコードでした。
保存されたファイルです。
jpgの画像を確認したところ白飛びしており良い撮影結果にはなりませんでした。
プログラムの流れは、まずPxlAPi.initialize(0)でカメラとの通信確認をしてからカメラの情報を取得してと色々と結構複雑な事を経てファイルの保存まで動作しておりました。
main()にファイル名とどのフォーマットで静止画を取得するのか指定しているので、そこを変更する事と、save_to_file()に保存するフォルダ名があるのでそこを変更する事は出来そうです。
カメラの露光調整等は、別のコードで変更してから取るのが良さそうです。
getMultipleSnapshots.py
実行結果になります。
連続で5枚静止画を保存しました。
サンプルコードの中身はgetSnapshot.pyとほぼ一緒でした。get_snapshotの関数をfor文で回してました。time.sleep(2)がノウハウの様な気がします。
getNumPySnapshot.py
実行結果になります。
getSnapshot.pyと同じ結果になりました。ソースコード内にコメントがありまして、”このコードはsnapShot.pyとよく似ていますが画像バッファにNumPyの2次元配列が使用されています。”と書いてありました。調べてみましたらNumPyはPythonの拡張モジュールだそうです。
画像を確認すると中央に白い四角がありました。なにこれ?ソースコードを確認したところget_snapshot()の関数内でDo any image prossessing hereとありますので、ここで中央を白くしていました。たぶん画像処理をする場合にはgetNumPySnapshot.pyのサンプルコードを使用するのが良さそうです。動作時間もほとんど変わりませんでした。
openCVSnapshot.py
まずはopencv-pythonをPypiからインストールしました。実行結果になります。
取得した画像は下記になります。
ファイル保存のところでopenCVの関数を使用しているコードの様です。バッファに保存した画像をcv2.imwrite()でファイル保存している様でした。画像処理する場合はここに処理内容を記入すると良さそうでした。
getPolarSnapshot.py
偏光カメラを接続していないのでエラーが出ました。手持ちに偏光カメラはありません。
サンプルコードを見てみますと、get_snapshotの要素に偏光方向(1:0deg 2:45deg 3:90deg 4:135deg)を加えられたget_polar_snapshot関数が登場していました。サンプルコードはbmp形式にて保存していました。
getHDRSnapshot.py
HDRカメラを接続していないのエラーが出ました。手持ちにHDRカメラはありません。
ソースコードを見てみますとHDRゲインを変えて複数枚の画像を保存しておりました。
この記事へのコメントはありません。