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

방법: PixelFormat 노드에 대한 유효한 값 찾기#

CInstantCamera pylon 카메라 클래스를 사용하고 있으며 카메라 기능에 액세스하려는 경우, 카메라에서 노드 맵을 가져와야 합니다. 이 노드 맵에는 구현된 모든 카메라 기능에 대한 노드가 포함되어 있습니다. 이 접근 방식은 Generic Interface for Cameras Standard(GenICam)에 의해 정의됩니다. GenICam 표준은 여기에서 다운로드할 수 있습니다.

GenICam 표준에 따라 카메라 장치의 모든 퍼블릭 기능은 카메라의 GenICam XML 파일에 포함되어야 하며, GenICam Standard Feature Naming Convention(SFNC)을 사용해야 합니다. 즉, 해당 기능이 존재하는 경우 해당 기능에 대한 SFNC 이름과 인터페이스 유형을 사용해야 합니다. Standard Feature Naming Convention은 여기에서 다운로드할 수 있습니다.

PixelFormat 기능은 SFNC에 권장 기능으로 나열된 표준 기능 중 하나이며, 인터페이스 유형은 IEnumeration으로 정의됩니다.

값을 포함하는 모든 노드에 공통적인 것은 ToString() 및 FromString()입니다(기본 인터페이스 IValue를 통해 상속됨). 즉, 노드 값을 문자열로 읽고 쓸 수 있습니다.

특정 노드는 추가적인 특정 액세스 메서드를 제공합니다. 예를 들어 Enumeration 인터페이스 유형은 ToString() 및 FromString() 외에도 SetIntValue() 및 GetIntValue()를 제공합니다.

GenICam GenApi Reference Implementation은 인터페이스를 정의하지만, 특정 기능(예: PixelFormat)에 사용할 유효한 값 범위나 열거형 값은 정의하지 않습니다. GenICam GenApi Reference Implementation은 여기에서 다운로드할 수 있습니다.

그렇다면 어떤 PixelFormat 문자열이 어떤 IntValue에 해당하는지 어떻게 알 수 있을까요?

또한 GenICam(표준 모음)은 GenICam Pixel Format Names and Values를 정의합니다. 여기서 Pixel Format Name은 ToString() 및 FromString()과 함께 사용할 문자열(Symbolic Name)이고, 32비트 값은 SetIntValue() 및 GetIntValue()와 함께 사용할 IntValue입니다. 정의된 픽셀 포맷 전체 목록은 여기에서 다운로드할 수 있습니다.

pylon API에는 공통 픽셀 포맷을 위한 Basler 고유의 열거형인 EPixelType(PixelType.h)이 포함되어 있습니다. 또한 헬퍼 클래스인 CPixelTypeMapper(PixelTypeMapper.h)도 제공됩니다. 이 헬퍼 클래스를 사용하면 GenICam 값(문자열 또는 IntValue)과 pylon의 EPixelType 열거형 간에 매핑할 수 있습니다.

다음 매핑 함수를 사용할 수 있습니다:

EPixelType GetPylonPixelTypeFromNodeValue(int64_t nodeValue) const;
static EPixelType GetPylonPixelTypeByName(const char* pszSymbolicName);
static EPixelType GetPylonPixelTypeByName(const String_t& symbolicName)
static const char* GetNameByPixelType(EPixelType pixelType, SFNCVersion sfncVer = SFNCVersion\_pre2\_0);

EPixelType에서 GenICam Symbolic Name으로 매핑하는 후자의 함수에는 SFNC Version 힌트가 필요합니다. 일부 픽셀 포맷 이름이 SFNC Version 2.0.0에서 변경되었기 때문입니다.

카메라가 호환되는 SFNC 버전을 확인하려면 다음을 호출하면 됩니다. camera.GetSFNCVersion().

이 샘플 코드는 PixelFormat 기능에 액세스하는 이러한 다양한 방법을 보여줍니다.

위에서 언급한 링크 중 하나가 작동하지 않거나 사용 가능한 모든 다운로드에 대한 개요를 보려면 다음으로 이동하세요: https://www.emva.org/standards-technology/genicam/genicam-downloads/

기술 자료로 돌아가기