跳转到内容
STAGING SERVER
DEVELOPMENT SERVER

Python 程序员指南#

本主题提供有关 Basler Stereo mini 相机的特定信息。它并不旨在全面概述 Basler pylon 的官方 Python 语言绑定。

Basler pylon 的官方 Python 语言绑定是 pypylon 项目。pypylon 是托管在 GitHub 上的开源项目。您需要 26.04 或更高版本才能使用 Basler Stereo mini 相机。

如果您是 pypylon 的新手,Basler 建议您先阅读 pypylon 文档,熟悉 pypylon API。

前提条件#

安装#

安装 pypylon#

若要在 Python 中使用 Stereo mini 相机,请安装 pypylon 软件包:

pip install pypylon

此软件包提供适用于 pylon SDK 的 Python 绑定。

对于所提供的示例集,请安装各个示例文件夹中的依赖项:

  • SimpleGrab/requirements.txt
  • ShowPointCloud/requirements.txt
  • LeftAndRightIntensity/requirements.txt

使用入门#

运行示例#

用于 Stereo mini 的 pylon Supplementary Package 包含一些 Python 编程示例,演示了如何使用 Python 和 pypylon 访问 Stereo mini 相机。

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

如果在运行示例时遇到问题,请查看故障排除主题。

示例列表#

  • 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")

访问相机参数#

您可以通过 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 相机同时提供强度和深度(range)分量。这些示例使用:

  • Coord3D_C16 用于 16 位深度(range)值
  • Coord3D_ABC32f 用于直接 XYZ 点数据
# Configure range format
camera.ComponentSelector.Value = "Range"
camera.PixelFormat.Value = "Coord3D_C16"