Python サンプルプログラム集
本セクションでは、INFINICAM GbE-2(Ethernetモデル) を Python(ctypes による C API 呼び出し)から制御し、NumPy や各種画像処理・AI ライブラリと連携させるためのサンプルプログラム集を掲載しています。各サンプルは共通モジュール puclib.py(HelloWorld にて作成)をインポートして動作します。
基礎・環境構築
Section titled “基礎・環境構築”共通モジュール(puclib.py)の構築や、各種フォーマット(PGM / PNG / PPM)での画像保存手順です。
HelloWorld (puclib.py 作成)共通モジュール puclib.py を作成し、GbE-2 の検出・オープン・機器情報を取得します。
SingleImage (PGM保存)1フレームの圧縮キャプチャデータを取得・復号し、NumPy 配列化して PGM 画像ファイルとして保存します。
SingleImage (PNG保存)取得した画像バッファを OpenCV または Pillow を使用して汎用的な PNG ファイルとして保存します。
SingleImage (カラー PPM保存)カラーモデルから取得した圧縮データを Bayer 変換・復号し、PPM カラー画像として保存します。
画像処理・ライブラリ連携
Section titled “画像処理・ライブラリ連携”取得した SingleImage を各種画像処理・機械学習ライブラリで加工・表示・保存する実践的なサンプルです。
OpenCV 画像処理 & 表示キャプチャ画像にエッジ検出やノイズ除去フィルタを適用し、OpenCV ウィンドウで表示・保存します。
scikit-image 解析 & 輪郭抽出scikit-image を使用して適応的閾値処理や輪郭検出を行い、解析結果を可視化・保存します。
torchvision テンソル変換 & 前処理取得画像を PyTorch の Tensor へ変換し、torchvision の Transforms 処理を適用して保存・表示します。
応用・高速処理サンプル
Section titled “応用・高速処理サンプル”リアルタイムストリーミングや、固定長圧縮の特長を活かした高速デコード処理の実装例です。
OpenCV LiveView (モノクロ)取得した画像データをリアルタイムに復号し、OpenCV のウィンドウ上にストリーミング表示します。
連続高速キャプチャC 互換コールバック関数とマルチスレッド復号を活用し、コマ落ちなく連続で画像を取り込みます。
SingleImage + ROI デコード画像全体を展開せず、指定した関心領域(ROI)のみをピンポイントで超高速復号します。
SingleImage + DC成分抽出圧縮データのDC成分のみを取り出し、1/8サイズの軽量プレビュー画像を即座に生成します。
パラメータ制御・特殊機能
Section titled “パラメータ制御・特殊機能”撮影速度・画像サイズの設定変更や、外部信号との同期制御を行うサンプルです。
撮影条件変更 + SingleImage解像度・フレームレート・シャッター速度などの撮影パラメータを変更してキャプチャします。
外部機器同期設定外部パルス信号(SYNC IN)に同期させて撮影を行う設定手順とエラー対処について説明します。
機能別サンプル一覧
Section titled “機能別サンプル一覧”| サンプル名 | 対象機能 / 主なライブラリ | 難易度 | 主な学習内容 |
|---|---|---|---|
| HelloWorld | puclib.py / ctypes |
初級 | 共通ラッパーモジュール作成、GbE-2 検出・機器情報取得 |
| SingleImage (PGM) | NumPy |
初級 | 1フレームキャプチャ、デコード、PGM保存 |
| SingleImage (PNG) | OpenCV / Pillow |
初級 | NumPy 配列から PNG フォーマットへのエンコード・保存 |
| SingleImage (カラー) | NumPy / OpenCV |
初級 | ホワイトバランス設定、Bayer変換復号、PPM/PNG保存 |
| OpenCV 画像処理 | cv2 (OpenCV) |
中級 | Cannyエッジ検出・ガウシアンフィルタ・表示・保存 |
| scikit-image 解析 | skimage / matplotlib |
中級 | 大津の二値化、領域ラベル付け、輪郭表示・保存 |
| torchvision 前処理 | torch / torchvision |
中級 | PyTorch Tensor変換、リサイズ・正規化・保存 |
| OpenCV LiveView | cv2 / ctypes.CFUNCTYPE |
中級 | コールバック受信と OpenCV によるリアルタイム描画 |
| 連続高速キャプチャ | threading / queue |
上級 | Pythonコールバック、スレッド間キューイング処理 |
| ROI デコード | PUC_DecodeData |
中級 | 特定領域(8×8ブロック単位)の限定復号 |
| DC成分抽出 | PUC_DecodeDCData |
中級 | 1/8 縮小プレビュー画像の超高速生成 |
| 撮影条件変更 | PUC_SetResolution |
初級 | 解像度・フレームレート・シャッター速度の変更 |
| 外部機器同期 | PUC_SetSyncInMode |
中級 | 外部信号(SYNC IN)同期撮影とタイムアウト処理 |
