화인스텍 로고

지식정보

제품사용 매뉴얼

EURESYS_Library 버퍼 연동 방법(SetImagePtr)

2022-10-26

 

1. 이미지

 

이미지 구조와 각 용어의 설명

Pointer : 메모리상에 존재하는 이미지 버퍼의 시작 주소.

Width : 이미지의 가로 크기.

Height : 이미지의 세로 크기.

Padding Data : 4byte 정렬을 맞추기 위한 데이터.

Buffer Pitch : 패딩(Padding) 데이터를 포함한 전체 가로 크기.

 

2. Open eVision 이미지 컨테이너

 

ElmageBW8

8bit grayscale image, 각 픽셀이 1byte로 구성.

 

ElmageBW16

16bit grarscale image, 각 픽셀이 2byte로 구성.

 

ElmageC24

24bit color image, 각 픽셀이 3byte로 구성.

ElmageC24A

32bit color image, 각 픽셀이 4byte로 구성. 단, Alpha 정보는 Open eVision에서 사용되지 않습니다.

3. SetImagePtr 함수

 

이미지 버퍼를 Open eVision 이미지로 연동하기 위해 아래의 함수를 사용합니다.

width : 이미지의 가로 크기(픽셀 단위).

height : 이미지의 세로 크기(픽셀 단위).

imagePointer : 4byte 정렬된 버퍼의 시작 주소.

bitsPerRow : 패딩 데이터가 포함된, 행의 전체 비트 수. 이 값이 0 또는 없다면, 4byte(32bit) 배수에 맞춰 가능한 가장 작은 값이 계산 됨.

 

4. 주의 사항

 

기본적으로, Open eVision은 이미지 버퍼가 4byte(32bit) 정렬이 되어있다고 가정합니다. 이는이미지의 모든 행의 시작 주소가 4의 배수임을 의미합니다.

또한, 이미지의 가로 크기가 4의 배수라면 문제가 없지만, 4의 배수가 아니라면 이미지 정렬에 문제가 생깁니다.

이미지가 4의 배수가 아니라면, bitsPerRow 인자에 값을 넣어야 합니다.

이미지 버퍼의 버퍼 피치를 취득하여 bit로 변환하여 인자를 넘깁니다.

즉, 8bit 기준으로 buffer pitch * 8 을 인자로 넘겨야 하며, 이 값은 32배수여야 합니다.

만약, SDK에서 버퍼 피치를 얻을 수 없고, 이미지 정렬에 문제가 생긴다면 카메라의 가로 크기를 4의 배수로 맞춰야 합니다.

 

5. 코드 예시

 

4의 배수인 경우

4의 배수가 아닌 경우

※ 카메라 버퍼 연동의 경우

Euresys Multicam SDK 예시

타 카메라/보드 SDK 사용 시 이미지 버퍼의 피치를 확인할 수 있어야 합니다.

첨부파일