📚 Baslerカメラ × pylon SDK 制御シリーズまとめ(C# / .NET対応)
Baslerなどの産業用カメラをC#から制御したい方向けに、pylon SDKを使った各種設定・取得・パラメータ制御の方法をシリーズで解説しています。
- SDKの導入から画像取得
- 露出・ゲイン・フレームレートの設定
- 実測値の比較やパフォーマンス改善
など、実際の業務で役立つ観点に絞って紹介しています。
✅ 対象読者
- 画像処理アプリや検査系ソフトを開発している方
- C#/.NETからBaslerカメラを操作したい方
- pylon SDKの使い方を短時間で把握したい方
🧭 記事一覧(おすすめ順)
| No | タイトル | 内容概要 |
|---|---|---|
| ① | Baslerのpylon SDKでカメラ画像を1枚取得する方法(C# × .NET 8) | SDK導入後、画像を1枚取得・保存するまでの最小構成を紹介します。 |
| ② | Basler pylon SDKで露出時間を変更する(C# / .NET対応) | 自動露出をオフにして、露出時間(ExposureTime)を手動で設定・検証する方法を解説します。 |
| ③ | Basler pylon SDKでゲイン(Gain)を手動制御する(C# / .NET対応) | 明るさの補正手段としてゲイン(Gain)を使う方法と、露出とのバランス比較を画像付きで検証します。 |
| ④ | Basler pylon SDKでフレームレートを制御・確認する【C# / .NET対応】 | フレームレート設定(AcquisitionFrameRate)と実際の取得速度(ResultingFrameRate)をコードとテストで検証します。 |
| ⑤ | Basler pylon SDKで連続撮影(バーストキャプチャ)をC#で実装する | 指定枚数・fpsで画像を連続取得し、タイムスタンプ付き保存。保存時間の実測・ログ出力付き。 |
| ⑥ | ROIを活用してバースト撮影を高速化する【Basler pylon SDK / C#】 | フル解像度での撮影ではフレームレートに限界があることも。ROI(Region of Interest)を設定して、読み出す範囲を限定することで高速化が可能です。 |
| ⑦ | イベント駆動で非同期キャプチャを行う(Basler pylon SDK × C#) |
ImageGrabbedイベントを利用して、画像取得と保存を非同期で分離。キャプチャ時の処理負荷を軽減する設計パターンを紹介します。 |
| ⑧ | Basler pylon SDKで取得画像をOpenCVのMat形式に変換する(C# / .NET対応) | GrabResultから直接OpenCvSharpのMatに変換し、画像処理やリアルタイムプレビューに活用する方法を解説します。 |
| ⑨ | Baslerカメラの設定を保存・読み込みする方法(C# / .NET対応) |
pfsファイルを使って、撮影条件を保存・読み込みする方法を解説。再現性のある撮影フローの構築に役立ちます。 |
| ⑩ | Baslerカメラで撮影画像に設定値を記録する方法(C# / .NET対応) | EXIFが使えない産業用カメラで、画像ファイル名・CSV・JSON・XMLに撮影条件を保存する方法を紹介します。比較表付きでメリット・デメリットを解説。 |
| ⑪ | Basler pylon SDKでソフトウェアトリガー撮影を行う(C# / .NET対応) | 初心者向けに、任意タイミングで1枚撮影する手順を解説。フリーランとの違いをStopwatchで比較し、設定手順と注意点をまとめました。 |
| ⑫ | WPFアプリでBaslerカメラの静止画を表示する【pylon SDK / C# / .NET 8】 | 初心者向け:WPFでConnect/Disconnect/Snapの最小ビューアを実装。Imageに表示し、終了時の確実な切断・解放まで。 |
| ⑬ | WPFでBaslerカメラのライブビューを実装する【pylon SDK / C# / .NET 8】 | 初心者向け:ImageGrabbedイベントで受信→BitmapSourceに反映し、Dispatcher経由で安全にライブ表示。Start/Stopの基本実装とハマりどころも整理。 |
| ⑭ | WPFでBaslerライブビューにHUDを重ねる【FPS・露光・ゲイン/二層レイアウト】 | 初心者向け:映像レイヤとHUDレイヤを分離して重ねる二層レイアウト。ズーム/パンで文字がにじまない設計。FPSは約10Hzに間引き、露光/ゲインもHUDに表示。将来はHUD込みキャプチャやROI編集にも拡張可能。 |
| ⑮ | TransformGroupを活用したWPFライブビューのズーム/パン対応【 C# / .NET 8】 | HUDに加え、マウスホイールによるズーム、Shift+ドラッグによるパン、ROI矩形の追従、クロスヘア固定を実装。映像レイヤとHUDレイヤを分離する設計を解説。 |
| ⑯ | WPF × Basler pylon SDKで背景差分(動体検出)を実装する |
背景差分による動体検出を実装。Absdiff+Threshold+Erode/Dilateでノイズ除去し、WPF上に矩形表示。リアルタイム処理とメモリ管理のポイントを解説。 |
| ⑰ | (めぐる式)二分探索法で露光時間を自動調整【C# / .NET対応】 |
二分探索法を用いて飽和しない露光時間を高速に求めるアルゴリズムを実装。めぐる式二分探索を応用し、最大輝度を目標値に収束させる。 |
| ⑱ | ビニング処理の実装 ― 画質×速度×帯域のバランス【Basler pylon × C#】 | センサビニングを利用し、解像度・S/N・フレームレートの関係をコードと理論で解説します。 |
🔜 今後の予定(記事準備中)
- フレームレート × ROI × 露出の最適化事例
- 撮影パラメータをGUIで設定&保存できるWPFツール
⚠️ ご注意
本記事は、Basler社が提供する「pylon Camera Software Suite SDK」を用いて、自作アプリケーションを開発・解説するものです。
記載された内容は筆者が独自に調査・実装したものであり、Basler社の公式見解やサポートを受けたものではありません。本記事では Basler SDK本体(DLLやヘッダファイル等)の配布や転載は一切行っておりません。
SDKのご利用には、Basler公式サイトより正規にダウンロード・同意のうえ、ライセンス契約に基づきご利用ください:また、SDKの利用にあたっては、商用目的・再配布・高リスク用途などに制限がある場合があります。詳細は エンドユーザライセンス契約(EULA) をご確認ください。
本記事内のサンプルコード・解説は、学習・参考目的での利用を想定しており、利用者の責任のもとでご活用ください。
💬 フィードバック・リクエスト歓迎!
- 記事が役立ったらぜひ「いいね」や「ストック」で応援お願いします!
- 書いてほしい内容・実装してみたい制御パターンなど、コメント欄でもお気軽にどうぞ。
👨💻 筆者について
@MilleVision
産業用カメラ・画像処理システムの開発に関する情報を発信中。
現在、pylon SDK × C# の活用シリーズをQiitaで連載中!
🛠 サンプルコード完全版のご案内
Qiita記事で紹介しているサンプルコードをまとめた C#プロジェクト(単体テスト付き) をBOOTHにて配布しています。
- 撮影・露光・ゲイン・フレームレート・ROI・イベント駆動撮影など主要機能を網羅
- 単体テストプロジェクト同梱で動作確認や学習がスムーズ
- 記事更新にあわせてアップデート予定
- カメラ制御の開発工数大幅削減