コンテンツにスキップ
ステージングサーバー
開発サーバー

Pythonプログラマーズガイド#

このトピックでは、Basler Stereo miniカメラ固有の情報について説明します。公式のBasler pylon用Python言語バインディングの包括的な概要を提供することを目的としたものではありません。

公式のBasler pylon用Python言語バインディングは、pypylonプロジェクトです。pypylonは、GitHubでホストされているオープンソースプロジェクトです。Basler Stereo miniカメラを使用するには、バージョン26.04以降が必要です。

pypylon を初めて使用する場合は、まず pypylon documentation を読んで pypylon API に慣れることを Basler はお勧めします。

前提条件#

  • Python 3.9 以降
  • pypylonライブラリ
  • NumPyライブラリ
  • OpenCVライブラリ
  • Open3Dライブラリ(オプション、可視化に使用)

インストール#

pypylonのインストール#

PythonでStereo miniカメラを使用するには、pypylonパッケージをインストールします。

pip install pypylon

このパッケージは、pylon SDKのPythonバインディングを提供します。

提供されているサンプルセットを使用するには、各サンプルフォルダー内の依存関係をインストールします。

  • SimpleGrab/requirements.txt
  • ShowPointCloud/requirements.txt
  • LeftAndRightIntensity/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を使用して実行します。例:

python SimpleGrab.py

サンプルの実行時に問題が発生した場合は、Troubleshooting トピックを確認してください。

サンプル一覧#

  • SimpleGrab: Stereo miniカメラから画像を取得し、カラーおよびデプスデータにアクセスする方法を示します。
  • ShowPointCloud: Open3Dを使用してStereo miniカメラから点群を取得し、視覚化する方法を示します。
  • LeftAndRightIntensity: OpenCVを使用してStereo miniカメラの左右の輝度ストリームを表示する方法を示します。

詳細については、Pythonのサンプルディレクトリにあるサンプルコードを参照してください。

Stereo miniカメラでpypylonを使用する方法#

必要なモジュールのインポート#

from pypylon import pylon

import numpy as np

カメラへの接続#

次の例は、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_C16 16ビットのレンジ値用
  • Coord3D_ABC32f 直接のXYZポイントデータ用
# Configure range format
camera.ComponentSelector.Value = "Range"
camera.PixelFormat.Value = "Coord3D_C16"