콘텐츠로 바로 가기

pylon을 사용하여 프레임 그래버 구성하기#

이 단원에서는 pylon API, pylon Viewer 또는 gpioTool을 사용하여 pylon 호환 프레임 그래버를 구성하는 방법에 대해 설명합니다.

정보

이 단원에서는 기본 사용 사례를 다룹니다. 프레임 그래버의 소프트웨어 기능에 대한 자세한 내용은 다음 문서를 참조하십시오.

프레임 그래버 설정은 특히 다음과 같은 상황에서 유용합니다.

  • 프레임 그래버에서 사용하는 applet을 변경하려고 합니다.
  • 프레임 그래버를 통해 연결된 Basler boost 카메라를 트리거하려고 합니다.
  • 이미징 시스템의 성능을 높이기 위해 프레임 그래버에서 debayering을 수행하려고 합니다.
  • 카메라에서 사용할 수 없는 16-bit mono format 등의 output format을 사용하려고 합니다.
  • 프레임 그래버에서 수신 또는 송신하는 트리거 신호를 구성하려고 합니다.

Applet 변경#

프레임 그래버에서 실행되는 applet은 해당 기능을 정의합니다. 특정 카메라 설정의 경우 기본 applet을 변경해야 할 수 있습니다.

프레임 그래버에서 사용하는 applet을 변경하려면 InterfaceApplet 파라미터를 로드할 applet의 이름(예: Acq_DualCXP12Area.

사용 가능한 applet을 확인하려면 Acquisition Applets for imaWorx CXP-12 Quad를 참조하십시오.

프레임 그래버를 사용하여 Basler boost 카메라 트리거#

정보

이 섹션은 특히 프레임 그래버를 통해 카메라를 트리거하려는 경우에만 해당합니다. 일반적으로 카메라는 카메라의 I/O 커넥터를 통해 트리거됩니다. 자세한 내용은 Triggered Image Acquisition을 참조하십시오.

하드웨어 트리거 (외부)#

외부 트리거가 활성화된 상태에서 프레임 그래버로 트리거 입력 신호를 전송할 수 있으며, 프레임 그래버는 이 신호를 Basler boost 카메라로 전달합니다.

외부 하드웨어 트리거용 프레임 그래버를 설정하려면:

  1. 파라미터를 원하는 AreaTriggerMode 파라메터 External.
  2. 파라미터를 원하는 TriggerInSource parameter를 원하는 "Front GPI" input line으로 설정합니다.
    예를 들어, 외부 트리거에 GPI0(프레임 그래버의 핀 11 및 12)을 사용하려면 parameter를 다음과 같이 설정합니다. FrontGpiTriggerSource0.
  3. 파라미터를 원하는 TriggerCameraOutSelect parameter를 해당하는 "Bypass" 옵션으로 설정합니다.
    예를 들어, 다음을 선택한 경우: FrontGpiTriggerSource0, TriggerCameraOutSelect 파라메터 BypassFrontGpi0.
  4. 파라미터를 원하는 TriggerState 파라메터 Active.
  5. 필요한 경우 아래에 설명된 대로 트리거 신호를 구성합니다.

모든 트리거 신호는 카메라의 소스 신호 CxpTrigger0 및 CxpTrigger1 (현재 두 라인 간의 동작 차이는 없습니다.) 신호는 다양한 목적으로 사용할 수 있습니다. 가장 일반적인 사용 사례는 이미지 취득입니다. 다음을 참조하십시오. 아래 예시.

하드웨어 트리거 (내부)#

내부 트리거가 활성화된 상태에서 프레임 그래버는 지정된 주파수로 내부에서 트리거 신호를 생성합니다. 모든 외부 트리거 신호는 무시됩니다.

내부 하드웨어 트리거용 프레임 그래버를 설정하려면:

  1. 파라미터를 원하는 AreaTriggerMode 파라메터 Generator.
  2. 파라미터를 원하는 TriggerOutputFrequency parameter를 원하는 트리거 출력 주파수로 설정합니다. 예를 들어, parameter를 8로 설정하면 프레임 그래버는 초당 8개의 트리거 신호를 생성합니다.
  3. 파라미터를 원하는 TriggerCameraOutSelect 파라미터를 원하는 출력 라인으로 설정합니다(예: PulseGenerator0.
  4. 파라미터를 원하는 TriggerState 파라메터 Active.

이제 이미지 취득을 시작할 때마다 프레임 그래버가 지정된 주파수로 트리거 신호를 생성합니다.

모든 트리거 신호는 카메라의 소스 신호 CxpTrigger0 및 CxpTrigger1. 신호는 다양한 목적으로 사용할 수 있습니다. 가장 일반적인 사용 사례는 이미지 취득입니다. 다음을 참조하십시오. 아래 예시.

예시: 이미지 취득을 위한 트리거 신호 사용#

프레임 그래버에서 생성된 외부 또는 내부 트리거 신호를 사용하여 이미지를 취득하려면 다음과 같이 하십시오.

  1. 카메라에서 다음을 설정합니다. TriggerSelector 파라메터 FrameStart.
  2. 파라미터를 원하는 TriggerMode 파라메터 On.
  3. 파라미터를 원하는 ExposureMode 파라메터 Timed.
  4. 파라미터를 원하는 TriggerSource 파라메터 CxpTrigger0 또는 CxpTrigger1.
    현재 두 라인 간의 동작 차이가 없으므로 둘 중 하나를 선택할 수 있습니다.

이제 프레임 그래버가 트리거 신호를 수신하거나 생성할 때마다 카메라가 이미지를 취득합니다.

정보

신호 소스로 제어할 수 있는 모든 Basler boost 카메라 기능의 소스로 트리거 신호를 사용할 수 있습니다. 예를 들어, CounterTriggerSource 파라메터 CxpTrigger0 프레임 그래버를 사용하여 다음 기능을 제어할 수 있습니다. Counter 기능.

프레임 그래버에서 Debayering 수행#

프레임 그래버에서 디베이어링(debayering)을 수행할 수 있습니다. 이를 통해 카메라와 호스트 컴퓨터의 연산 부하를 줄일 수 있습니다.

방법:

  1. 카메라에서 다음을 설정합니다. PixelFormat 파라미터를 Bayer Pixel Format으로 설정합니다(예: BayerRG12.
  2. 프레임 그래버에서 다음을 설정합니다. AutomaticFormatControl 파라메터 false.
    이를 통해 카메라에서 사용하는 Pixel Format과 독립적으로 출력 형식을 설정할 수 있습니다.
  3. 프레임 그래버에서 다음을 설정합니다. Format parameter를 해당 RGB Pixel Format으로 설정합니다.
    비트 심도는 Bayer Pixel Format 비트 심도의 3배여야 합니다. 예: BayerRG12(카메라) = Color36bit(프레임 그래버).

이제 프레임 그래버가 카메라의 원본 이미지 데이터에 대해 디베이어링을 수행하고 RGB 이미지 데이터를 출력합니다.

정보

위의 3단계에서 올바른 RGB Pixel Format을 설정했는지 확인하십시오. 그렇지 않으면 이미지가 제대로 취득되지 않습니다.

카메라에서 지원하지 않는 Output Format 사용#

Basler boost 카메라는 Bayer RG 8 또는 RGB 8 등 다양한 Pixel Format으로 이미지 데이터를 출력할 수 있습니다. 자세한 내용은 Pixel Format 항목을 참조하십시오.

카메라에서 필요한 Pixel Format을 사용할 수 없고 호스트 컴퓨터에서 이미지 변환을 피하려는 경우, 프레임 그래버에서 제공하는 Pixel Format 중 하나를 사용할 수 있습니다.

프레임 그래버는 다음과 같은 형식을 제공합니다.

Gray8bit Gray10bit Gray12bit Gray16bit
Color24bit Color30bit Color36bit Color48bit
Bayergr8 Bayergr10 Bayergr12 Bayergr16
Bayerrg8 Bayerrg10 Bayerrg12 Bayerrg16
Bayergb8 Bayergb10 Bayergb12 Bayergb16
Bayerbg8 Bayerbg10 Bayerbg12 Bayerbg16

카메라에서 사용할 수 없는 출력 형식을 사용하려면:

  1. 카메라에서 다음을 설정합니다. PixelFormat 파라미터를 원하는 카메라 Pixel Format으로 설정합니다(예: Mono12.
  2. 프레임 그래버에서 다음을 설정합니다. AutomaticFormatControl 파라메터 false.
    이를 통해 카메라에서 사용하는 Pixel Format과 독립적으로 출력 형식을 설정할 수 있습니다.
  3. 프레임 그래버에서 다음을 설정합니다. Format 파라미터를 원하는 출력 형식으로 설정합니다(예: Gray16bit.

위의 예시 값을 사용하여, 프레임 그래버는 12비트 카메라 이미지 데이터를 기반으로 16비트 이미지 데이터를 출력합니다. 아래 그림과 같이 패딩 비트(0)가 삽입됩니다.

12비트 카메라 이미지 데이터를 기반으로 하는 16비트 이미지 데이터

gpioTool을 사용한 트리거 신호 구성#

gpioTool 명령줄 도구를 사용하여 프레임 그랩버가 수신 또는 송신하는 트리거 신호의 물리적 속성을 설정할 수 있습니다:

gpioTool은 Framegrabber SDK 및 pylon Software Suite에 포함되어 있습니다.

자세한 내용은 gpioTool을 참조하십시오.

샘플 코드#

// Select the Acq_SingleCXP12Area applet
camera.GetTLParams().InterfaceApplet.SetValue(Acq_SingleCXP12Area);
// Configure the frame grabber for external triggering
camera.GetTLParams().AreaTriggerMode.SetValue(AreaTriggerMode_External);
camera.GetTLParams().TriggerInSource.SetValue(TriggerInSource_FrontGpiTriggerSource0);
camera.GetTLParams().TriggerCameraOutSelect.SetValue(TriggerCameraOutSelect_BypassFrontGpi0);
camera.GetTLParams().TriggerState.SetValue(TriggerState_Active);
// Configure the frame grabber for internal triggering
camera.GetTLParams().AreaTriggerMode.SetValue(AreaTriggerMode_Generator);
camera.GetTLParams().TriggerOutputFrequency.SetValue(8);
camera.GetTLParams().TriggerCameraOutSelect.SetValue(TriggerCameraOutSelect_PulseGenerator0);
camera.GetTLParams().TriggerState.SetValue(TriggerState_Active);
// Use the external or internal trigger signals for image acquisition
camera.TriggerSelector.SetValue(TriggerSelector_FrameStart);
camera.TriggerMode.SetValue(TriggerMode_On);
camera.ExposureMode.SetValue(ExposureMode_Timed);
camera.TriggerSource.SetValue(TriggerSource_CxpTrigger0);
// Perform debayering on the frame grabber (Bayer RG 12 --> RGB 36 bit)
camera.PixelFormat.SetValue(PixelFormat_BayerRG12);
camera.GetTLParams().AutomaticFormatControl.SetValue(false);
camera.GetTLParams().Format.SetValue(Format_Color36bit);
// Configure the frame grabber to output 16-bit mono image data based on
// 12-bit mono image data from the camera
camera.PixelFormat.SetValue(PixelFormat_Mono12);
camera.GetTLParams().AutomaticFormatControl.SetValue(false);
camera.GetTLParams().Format.SetValue(Format_Gray16bit);

이 샘플 코드는 C++ 언어로만 제공됩니다.

파라미터 설정에는 pylon Viewer 사용을 활용할 수도 있습니다.