콘텐츠로 바로 가기
STAGING SERVER
DEVELOPMENT SERVER

Python 프로그래머 가이드#

이 항목에서는 Basler Stereo mini 카메라와 관련된 특정 정보를 제공합니다. Basler pylon에 대한 공식 Python 언어 바인딩의 포괄적인 개요를 제공하기 위한 것은 아닙니다.

Basler pylon의 공식 Python 언어 바인딩은 pypylon 프로젝트입니다. pypylon은 GitHub에서 호스팅되는 오픈 소스 프로젝트입니다. Basler Stereo mini 카메라를 사용하려면 버전 26.04 이상이 필요합니다.

pypylon을 처음 사용하는 경우, 먼저 pypylon 문서를 읽고 pypylon API에 익숙해지는 것을 권장합니다.

전제 조건#

  • 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

시작하기#

샘플 실행#

Stereo mini용 pylon 보조 패키지에는 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

샘플 실행 중에 문제가 발생하는 경우 문제 해결 항목을 확인하십시오.

샘플 목록#

  • 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 카메라는 강도(intensity) 및 거리(range) 컴포넌트를 모두 제공합니다. 샘플에서는 다음을 사용합니다.

  • Coord3D_C16 16비트 거리 값의 경우
  • Coord3D_ABC32f 직접 XYZ 포인트 데이터의 경우
# Configure range format
camera.ComponentSelector.Value = "Range"
camera.PixelFormat.Value = "Coord3D_C16"