opencv-rust 系列: 1, 安装及运行自带示例和测试程序

opencv-rust 系列: 1, 安装及运行自带示例和测试程序

    • [运行环境: ubuntu ; rust 已安装; 对rust的掌握为三脚猫程度](#运行环境: ubuntu ; rust 已安装; 对rust的掌握为三脚猫程度)
    • [一. opencv-rust安装:](#一. opencv-rust安装:)
    • [二. 运行自带examples和tests](#二. 运行自带examples和tests)

运行环境: ubuntu ; rust 已安装; 对rust的掌握为三脚猫程度

一. opencv-rust安装:

  1. 安装软件: sudo apt install libopencv-dev clang libclang-dev llvm (clang就是llvm部分)
  2. 查看版本: sudo apt show libopencv-dev ( 目前20241006支持OPENCV 4.6.0)

二. 运行自带examples和tests

  1. 安装最新的opencv库,命令: cargo add opencv ( 此时20241006, 库版本为 0.93.1 )
  2. 使用命令: locate opencv-0.93 找到库所在目录
  3. 复制一份到本地, 例如: cp -av /home/wzw/.cargo/registry/src/index.crates.io-6f17d22bba15001f/opencv-0.93.1 ./
  4. 运行自带示例(示例在examples目录中)
    1. 命令如: cargo run --example video_capture ( 摄像并显示 )
    2. 命令如: cargo run --example video_facedetect ( 人脸测试 )
    3. 备注: examples/ 目录中的程序都可以试试, 有些程序运行需要参数
  5. 运行自带的测试程序
    1. 命令: cargo test
      1. 报错: error[E0599]: no method named points_vec found for struct RotatedRect in the current scope --> tests/core_only_latest_opencv.rs:11:7
      2. 修改程序: tests/core_only_latest_opencv.rs
        1. 被替换内容:
          let mut vec_pts = Vector::new();
          rect.points_vec(&mut vec_pts)?;
          assert_eq!(Point2f::new(50., 50.), vec_pts.get(0)?);
          assert_eq!(Point2f::new(150., 50.), vec_pts.get(1)?);
          assert_eq!(Point2f::new(150., 150.), vec_pts.get(2)?);
          assert_eq!(Point2f::new(50., 150.), vec_pts.get(3)?);
        2. 替换成:
          let mut vec_pts = [Point2f::new(0.0, 0.0); 4];
          rect.points(&mut vec_pts)?;
          assert_eq!(Point2f::new(50., 50.), *vec_pts.get(0).unwrap());
          assert_eq!(Point2f::new(150., 50.), *vec_pts.get(1).unwrap());
          assert_eq!(Point2f::new(150., 150.), *vec_pts.get(2).unwrap());
          assert_eq!(Point2f::new(50., 150.), *vec_pts.get(3).unwrap());
      3. 现在再 cargo test 就可以运行通过了. ( 有两个 warning 可以忽略 )
相关推荐
寻月隐君14 小时前
硬核实战:从零到一,用 Rust 和 Axum 构建高性能聊天服务后端
后端·rust·github
m0_4805026419 小时前
Rust 入门 泛型和特征-特征对象 (十四)
开发语言·后端·rust
RustFS20 小时前
如何用 Rust 对 RustFS MCP Server 进行扩展?
rust
jndingxin1 天前
OpenCV图像注册模块
人工智能·opencv·计算机视觉
R-G-B1 天前
【P14 3-6 】OpenCV Python——视频加载、摄像头调用、视频基本信息获取(宽、高、帧率、总帧数)
python·opencv·视频加载·摄像头调用·获取视频基本信息·获取视频帧率·获取视频帧数
荼蘼1 天前
OpenCv(三)——图像平滑处理
人工智能·opencv·计算机视觉
R-G-B2 天前
OpenCV Python——报错AttributeError: module ‘cv2‘ has no attribute ‘bgsegm‘,解决办法
人工智能·python·opencv·opencv python·attributeerror·module ‘cv2‘·no attribute
似乎很简单2 天前
【opencv-Python学习笔记(5):几何变换】
笔记·opencv·学习
荼蘼2 天前
OpenCv(二)——边界填充、阈值处理
人工智能·opencv·计算机视觉
蜀中廖化2 天前
机器学习:基于OpenCV和Python的智能图像处理 实战
python·opencv·机器学习