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 문서에서 자동으로 변환됩니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트