twistedfall/opencv-rust
OpenCV API bindings for Rust
해결하는 문제
이 프로젝트는 OpenCV를 위한 Rust 바인딩을 제공하여 개발자가 Rust 프로그래밍 언어 내에서 강력한 C++ 컴퓨터 비전 라이브러리를 사용할 수 있도록 합니다. 이는 OpenCV의 방대한 비전 기능과 Rust의 현대적인 시스템 프로그래밍 환경 사이의 간극을 메워줍니다.
작동 방식
이 crate는 libclang을 사용하여 OpenCV의 C++ 헤더를 파싱하고, C++ API에 대한 C 인터페이스를 생성한 다음, 해당 C 인터페이스를 Rust로 래핑합니다. 각 주요 OpenCV 모듈에 대해 Rust 모듈을 생성하여 API를 구성합니다(예: C++의 cv::Mat 대신 opencv::core::Mat). API를 더 인체공학적으로 만들기 위해 C++ 메서드 및 필드 이름을 snake_case로 변환하고, 타입 처리를 위한 편리한 함수를 제공합니다.
대상 사용자
C++ 코드를 직접 작성하지 않고도 컴퓨터 비전 기능을 애플리케이션에 통합해야 하는 Rust 개발자를 위해 설계되었습니다.
주요 특징
- 광범위한 버전 지원: OpenCV 4.x 및 5.x를 지원하며, 3.4에 대한 지원도 포함합니다.
- 모듈식 설계: 기능은 모듈 이름(예:
imgproc,highgui)별로 활성화할 수 있어 사용자가 의존성 크기를 최적화할 수 있습니다. - 크로스 플랫폼: Linux, macOS, Windows에서 작동합니다.
- C++ 연산자 매핑: 일반적인 C++ 연산자(
+,-,*,/)를 해당 Rust 함수(add(),sub(),mul(),div())에 매핑합니다. - 자동화된 문서: API 문서는 OpenCV의 doxygen 문서에서 자동으로 변환됩니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트