#opencv #计算机视觉 #API绑定

rxcv

RxCV为OpenCV提供Rust编程体验

5个版本

0.1.0-alpha.52023年2月1日
0.1.0-alpha.42023年1月23日
0.1.0-alpha.22023年1月20日
0.1.0-alpha.12023年1月19日

#858 in 图像

MIT/Apache

190KB
5K SLoC

RxCV

RxCV为OpenCV提供Rust编程体验。

平台 架构 状态
Linux x86_64 0.1.0
Linux aarch64 0.1.0
Windows 所有 TBA
macOS 所有 TBA

目前支持从apt安装的OpenCV。

模块

模块 状态
core [WIP]0.1.0
imgproc [WIP]0.1.0
imgcodecs [WIP]0.1.0
videoio TBA
calib3d TBA
features2d TBA
objdetect TBA
dnn TBA
ml TBA
flann TBA
photo TBA
stiching TBA
gapi TBA

入门

std::vector<uchar> data = /* Some binary */;
cv::Mat src = cv::imdecode(data, cv::IMREAD_COLOR), dst;

// Execution time error.
auto thresh = cv::threshold(src, dst, 0, 255, cv::THRESH_BINARY | cv::THRESH_OTSU);
use rxcv::{
    imgproc::{Threshold, ThresholdTypes},
    Mat,
};
let data:&[u8] = &[1, 2, 3, 4, 5, 6];
let src = Mat::<u8, 3>::decode(data).unwrap();
/**
Not implemented threshold on Mat::<u8, 3>
let (thresh, dst) = src.threshold(
        0,
        255,
        ThresholdTypes::THRESH_BINARY | ThresholdTypes::THRESH_OTSU
    );
*/
// Convert Color;
let src = src.cvt_color_bgr2gray().unwrap();
let (thresh, dst) = src.threshold(
        0,
        255,
        ThresholdTypes::THRESH_BINARY | ThresholdTypes::THRESH_OTSU
    ).unwrap();

示例

std::vector<uchar> data = /* Some binary */;
cv::Mat src = cv::imdecode(data);
use rxcv::Mat;
let data:&[u8] = &[1, 2, 3, 4, 5, 6];
let src = Mat::<u8, 3>::decode(data).unwrap();

许可证

本项目可根据您的选择,在Apache License, Version 2.0MIT许可证下使用。

依赖项

~1.5MB
~31K SLoC