Pythonプログラマーズガイド#
公式のBasler pylon用Python言語バインディングは、pypylonプロジェクトです。pypylonは、GitHubでホストされているオープンソースプロジェクトです。Basler Stereo miniカメラを使用するには、バージョン26.04以降が必要です。
pypylon を初めて使用する場合は、まず pypylon documentation を読んで pypylon API に慣れることを Basler はお勧めします。
前提条件#
インストール#
pypylonのインストール#
PythonでStereo miniカメラを使用するには、pypylonパッケージをインストールします。
このパッケージは、pylon SDKのPythonバインディングを提供します。
提供されているサンプルセットを使用するには、各サンプルフォルダー内の依存関係をインストールします。
SimpleGrab/requirements.txtShowPointCloud/requirements.txtLeftAndRightIntensity/requirements.txt
Getting Started#
サンプルの実行#
Stereo mini用のpylon Supplementary Packageには、Pythonとpypylonを使用してStereo miniカメラにアクセスする方法を示すいくつかのPythonプログラミングサンプルが含まれています。
The Python samples are located in the C:\Program Files\Basler\pylon\Development\Samples\Stereo_mini\Python folder.
The Python samples are located in the /opt/pylon/share/pylon/Samples/Stereo_mini/Python folder.
The Python samples are located in the /opt/pylon/share/pylon/Samples/Stereo_mini/Python folder.
情報
サンプルのビルドを行う前に、サンプルが含まれているフォルダーを書き込み権限のある任意の場所にコピーしてください。
Pythonサンプルを実行するには、サンプルが含まれているフォルダーに移動し、Pythonを使用して実行します。例:
サンプルの実行時に問題が発生した場合は、Troubleshooting トピックを確認してください。
サンプル一覧#
- SimpleGrab: Stereo miniカメラから画像を取得し、カラーおよびデプスデータにアクセスする方法を示します。
- ShowPointCloud: Open3Dを使用してStereo miniカメラから点群を取得し、視覚化する方法を示します。
- LeftAndRightIntensity: OpenCVを使用してStereo miniカメラの左右の輝度ストリームを表示する方法を示します。
詳細については、Pythonのサンプルディレクトリにあるサンプルコードを参照してください。
Stereo miniカメラでpypylonを使用する方法#
必要なモジュールのインポート#
カメラへの接続#
次の例は、pypylonを使用して利用可能な最初のStereo miniカメラを開く方法を示しています。
# Create Stereo mini filter to avoid opening a non-Stereo-mini device
di = pylon.DeviceInfo()
di.SetDeviceClass("BaslerGTC/Basler/Stereo_mini")
camera = pylon.InstantCamera(pylon.TlFactory.GetInstance().CreateFirstDevice(di))
print(f"Using camera: {camera.GetDeviceInfo().GetFriendlyName()}")
camera.Open()
特定のStereo miniカメラを開くには、カメラを作成する前にシリアル番号またはユーザー定義名を設定します。
# Open a specific Stereo mini camera by serial number
di.SetSerialNumber("12345678")
# Open a specific Stereo mini camera by user-defined name
di.SetUserDefinedName("MyStereoMini")
カメラパラメータへのアクセス#
カメラのPropertyには、次のように camera オブジェクトを介してアクセスできます。
# Example parameter access
camera.ExposureTime.Value = 5000 # microseconds
camera.Gain.Value = 5.0
print(f"ExposureTime: {camera.ExposureTime.Value}")
print(f"Gain: {camera.Gain.Value}")
画像の取得#
次の例は、Stereo miniカメラから画像を取得する方法を示しています。
camera.StartGrabbing()
grab_result = camera.RetrieveResult(5000, pylon.TimeoutHandling_ThrowException)
if grab_result.GrabSucceeded():
data_container = grab_result.GetDataContainer()
print(f"Components: {data_container.DataComponentCount}")
grab_result.Release()
深度データへのアクセス#
Stereo miniカメラは、輝度(インテンシティ)コンポーネントと距離(レンジ)コンポーネントの両方を提供します。サンプルでは次を使用します。
Coord3D_C1616ビットのレンジ値用Coord3D_ABC32f直接のXYZポイントデータ用