C++
설명
C++ SDK는 작업을 간편하게 하기 위해 다음과 같은 세 가지 오픈 소스 라이브러리를 사용합니다.
-
HTTP/HTTPS 라이브러리 https://github.com/yhirose/cpp-httplib HTTP 요청을 전송하기 위해 사용
-
JSON for Modern C++ https://github.com/nlohmann/json JSON 문자열을 파싱하기 위해 사용
-
PNG 인코더 및 디코더 https://github.com/lvandeve/lodepng 이미지 데이터를 저장하기 위해 사용
인터페이스 정의
struct EpicEyeInfo {
std::string SN; // 시리얼 번호
std::string IP; // 카메라 IP 주소
std::string model; // 카메라 모델
std::string alias; // 카메라 별칭, Web UI에서 수정 가능
uint32_t width = 0; // 이미지 너비
uint32_t height = 0; // 이미지 높이
};
함수명 | 기능 설명 | 매개변수와 반환값 |
---|---|---|
|
SDK 버전 가져오기 |
반환값: SDK 버전 번호(std::string 타입) |
|
카메라 정보 가져오기 |
매개변수: ip: 카메라 IP 주소 info: 카메라의 상세 정보를 수신할 EpicEyeInfo 객체(너비와 높이 포함) 반환값: 요청 성공 여부를 나타내는 bool 타입 |
|
프레임 촬영 트리거 |
매개변수: ip: 카메라 IP 주소 frameID: 촬영 후 반환되는 프레임 ID(std::string 타입) pointCloud: 포인트 클라우드 데이터를 요청할지 여부를 나타내는 bool 타입 반환값: 요청 성공 여부를 나타내는 bool 타입 |
|
frameID를 기반으로 2D 이미지 가져오기 |
매개변수: ip: 카메라 IP 주소 frameID: 데이터를 가져올 프레임 ID imageBuffer: 이미지 데이터를 반환하는 void 포인터 pixelByteSize: 이미지 데이터의 바이트 크기를 수신할 int 타입 반환값: 요청 성공 여부를 나타내는 bool 타입 |
|
frameID를 기반으로 포인트 클라우드 가져오기(SDK 사용자가 메모리 관리) |
매개변수: ip: 카메라 IP 주소 frameID: 촬영에서 얻은 프레임 ID pointCloudBuffer: 포인트 클라우드 데이터를 저장할 float 포인터(너비×높이×sizeof(float)×3의 메모리 필요) 반환값: 요청 성공 여부를 나타내는 bool 타입 |
|
frameID를 기반으로 깊이 맵 가져오기(SDK 사용자가 메모리 관리) |
매개변수: ip: 카메라 IP 주소 frameID: 촬영에서 얻은 프레임 ID depth: 깊이 맵 데이터를 저장할 float 포인터(너비×높이×sizeof(float)의 메모리 필요) 반환값: 요청 성공 여부를 나타내는 bool 타입 |
|
frameID를 기반으로 카메라 설정 가져오기, frameID가 빈 문자열 ""이면 최신 설정 반환 |
매개변수: ip: 카메라 IP 주소 configJson: 카메라 설정 데이터를 반환하는 nlohmann::json 객체 반환값: 요청 성공 여부를 나타내는 bool 타입 |
Linux 실행
-
종속 패키지: gcc, g++, cmake, make
Debian 계열 Linux에서 다음 명령으로 설치할 수 있습니다:
sudo apt install gcc g++ cmake make
-
환경이 준비된 후:
mkdir build && cd build cmake .. && make -j12
컴파일된 라이브러리와
samples
바이너리 파일은output
폴더에 저장됩니다:output/ ├── bin │ ├── CameraConfig │ ├── CameraInfo │ ├── CameraParameters │ ├── EpicEyeCapture │ └── SearchCamera └── lib └── libEpicEyeSDK.a
OpenCV 예제
-
OpenCV 환경 설치:
sudo apt install libopencv-dev
-
또는 사전 컴파일된 OpenCV 패키지를 다운로드할 수 있습니다: OpenCV 사전 컴파일 패키지 다운로드
sudo dpkg -i opencv-qytech_4.5.3-5+focal_amd64.deb
Windows 실행
Windows에서 CMake 및 Clang 도구 체인을 사용할 경우 Linux 절차를 참고하십시오.
Visual Studio를 사용할 경우, VsCode에서 cpp 폴더를 직접 열면 됩니다. 외부 종속성이 없으므로 특별한 설정은 필요하지 않습니다.

전체 빌드를 실행:

실행하려는 대상을 선택하여 실행:

OpenCV 예제
샘플 프로젝트에는 EpicEyeCaptureOpencv 프로그램이 포함되어 있으며, Windows 환경에서 OpenCV를 설정해야 합니다.
-
Opencv 릴리스 페이지에서 해당 버전을 다운로드합니다.
-
프로젝트 디렉토리(epiceyesdk_samples/cpp/samples/EpicEyeCaptureOpencv/thirdparty)에 압축 해제합니다.
-
Visual Studio에서 EpicEyeSDK를 구성합니다.
-
"빌드" → "모두 다시 빌드"를 클릭하여 OpenCV 라이브러리가 바이너리 출력 폴더로 자동 복사됩니다.