前言
Ubuntu22.04的环境搭建、rust安装配置、VSCode安装等参照另一篇博文:https://www.cnblogs.com/-CO-/p/18197715
环境搭建对应项
## 虚拟机版本
VMware 17
## 系统版本
Ubuntu 22.04.4
## Rust版本
Rust 1.78.0
## Rust依赖Opencv版本
Opencv-rust 0.75.0
## Opencv服务版本
Opencv 4.5.5
下载Opencv源码压缩包
下载路径:https://github.com/opencv/opencv/releases
下载完成之后在 当前用户目录下 的 Downloads文件夹 内可以看到下载文件。
下载解压工具
sudo apt install unzip
解压文件包
sudo unzip opencv-4.5.5.zip
安装CMake工具
sudo apt-get install cmake
下载opencv依赖包
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev
重点:下载 libjasper-dev包 如果报错“Unable to locate package libjasper-dev”无法定位程序包libjasper-dev 的问题如下解决
1. 设置数字签名
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32
2. 更新下载源
sudo sed -i "s@http://.*archive.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
sudo sed -i "s@http://.*security.ubuntu.com@https://mirrors.tuna.tsinghua.edu.cn@g" /etc/apt/sources.list
3. 开始更新源信息
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
然后再次下载。
编译安装Opencv
修改opencv4.0.0 ~ opencv4.7.0 版本之间的源码bug,opencv4.8.0已经修复了这个问题
sudo vim ./opencv-4.5.5/modules/gapi/test/gapi_async_test.cpp
点击键盘i 开始编辑,添加"#include <thread>",保存点击键盘Esc,然后Shift+: 输入wq! 进行保存
进入解压好的opencv源码目录内,新建目录 build
# 进入解压完成的opencv文件夹内
cd ./open-4.5.5
# 新建文件夹
sudo mkdir build
# 进入新建文件夹内
cd ./build
配置CMake
命令最后的两个点千万不要丢掉;在OpenCv4以前的版本是会自动生成Opencv4.pc文件;但是4.X版本后Opencv默认不会自动生成.pc文件。因此在配置cmake时一定要带上"-DOPENCV_GENERATE_PKGCONFIG=ON"参数
sudo cmake -DCMAKE_BUILD_TYPE=Release -DOPENCV_GENERATE_PKGCONFIG=ON -DCMAKE_INSTALL_PREFIX=/usr/local ..
查看当前系统支持的线程数
nproc
使用CMake开始编译
通过刚刚查到的系统最大支持线程数,设置多线程同步编译;我的是4线程,所以这里使用如下命令
sudo make -j4
漫长的等待后,就可以安装了。
sudo make install
配置Opencv环境变量
修改 opencv.conf 文件,没有则新建;直接添加路径 /usr/local/lib
sudo vim /etc/ld.so.conf.d/opencv.conf
更新系统共享链接库
sudo ldconfig
修改 bash.bashrc 文件
sudo vim /etc/bash.bashrc
在文件最后添加如下内容
# 文件的最后面追加如下几行
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
更新配置生效
source /etc/bash.bashrc
## updatedb 是用于更新 locate 数据库的工具,没有的话可以先安装
sudo apt-get install mlocate
## 更新库
sudo updatedb
查看OpenCV4版本号,如果能够查看成功,说明OpenCV安装并配置成功
sudo pkg-config --modversion opencv4
编写Rust代码实例
创建存储项目的目录文件夹
这里我创建目录在 /home/用户名/Project
# 切换目录
cd /home/username/
# 创建文件夹
mkdir project
# 进入目录内
cd project
命令行新建项目
cargo new rust-demo02
打开VSCode编译器
code
在VSCode的终端中运行 cargo add opencv@0.75.0 命令下载依赖包
使用cargo build构建项目
在src同层级新建文件夹path,并放入几张图片
修改src/main.rs文件
use opencv::{highgui, imgcodecs};fn main() {// 读取图片let img = imgcodecs::imread("path/image_01.png", imgcodecs::IMREAD_COLOR).unwrap();// 展示图片highgui::imshow("window", &img).unwrap();highgui::wait_key(0).unwrap();
}
使用命令cargo run运行代码
成功展示图片。