在编译opencv出现的问题
目标机器:Jetson irno nano 4GB
操作系统:Ubuntu 22.04 LTS
ROS操作系统:ROS Humble
安装依赖库opencv4.10
一·流程:
1.在家目录下新建一个opencv的目录
mkdir opencv && cd opencv
2.检查相关工具是否安装成功
1.cmake 用于构建项目
2.git 用于克隆opencv4.10的源码
3.pkg-config 给cmake提供相关参数
sudo apt install build-essential cmake git pkg-config
3.安装相关依赖文件
1.能识别jpeg/png/tiff类型的图片
2.FFmpeg 多媒体框架,可以识别多种视频编码格式
3.Video4Linux 开发包,用于摄像头视频采集
4.Xvid (MPEG-4) 和 x264 (H.264) 编码器的开发包
5.数学优化库
6.gui显示功能
7.python接口
sudo apt install libjpeg-dev libpng-dev libtiff-dev
sudo apt install libavcodec-dev libavformat-dev libswscale-dev
sudo apt install libv4l-dev
sudo apt install libxvidcore-dev libx264-dev
sudo apt install libatlas-base-dev gfortran
sudo apt install libgtk-3-dev
sudo apt install python3-dev python3-numpy
4.克隆opencv源码
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
5.切换到我们需要的分支
cd opencv
git checkout 4.10.0
cd ../opencv_contrib
git checkout 4.10.0
6.开始编译
cd ~/opencv
mkdir build && cd build
7.使用cmake开始构建项目
1.CMAKE_BUILD_TYPE=Release
→ 使用优化构建;
2.CMAKE_INSTALL_PREFIX=/usr/local
→ 安装路径;
3.OPENCV_EXTRA_MODULES_PATH
→ 引入 opencv_contrib
扩展模块;
4.WITH_CUDA
→ 是否启用 GPU;
5.BUILD_EXAMPLES
→ 是否构建一个例子;
6.WITH_TBB
→ 是否启用 TBB;tbb是并行线程模块,可以用在高并行的环境下运行
https://onestraw.github.io/cprogram/tbb/
7.WITH_OPENGL
→ 是否启用 OpenGL;OpenGL是一个图形渲染工具https://blog.csdn.net/CodeWorld1999/article/details/134700705
cmake -D CMAKE_BUILD_TYPE=Release \-D CMAKE_INSTALL_PREFIX=/usr/local \-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \-D BUILD_EXAMPLES=ON \-D WITH_CUDA=ON \-D WITH_TBB=ON \-D WITH_OPENGL=ON ..
8.开始编译环境
时间比较长--大概半个小时左右
make $(nproc)
9.安装到系统
sudo make install
10.验证安装
pkg-config --modversion opencv4
二·出现的问题
1.RAM不足
当我们使用make j$(nproc)命令时会默认调用系统所有的核心
但是会导致我们的RAM不足
make j$(nproc)
这时候我们要虚拟内存
具体操作如下
sudo fallocate -l 10G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
我们可以使用free -h来检测是否虚拟成功
free -h
出现下面的证明安装成功