jetson上更新Opencv版本

文 | MESeraph

00 | 移除jetpack自带的opencv

sudo apt purge *libopencv*

01 | 安装依赖

sudo apt update
sed -i 's#ports.ubuntu.com#mirrors.tuna.tsinghua.edu.cn#g' /etc/apt/sources.list
sudo apt install -y build-essential cmake git libgtk2.0-dev pkg-config  libswscale-dev libtbb2 libtbb-dev
sudo apt install -y python-dev python3-dev python-numpy python3-numpy
sudo apt install -y curl software-properties-common 
sudo add-apt-repository "deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ xenial-security main"
sudo apt install -y  libjpeg-dev libpng-dev libtiff-dev libjasper-dev 
sudo apt install -y libavcodec-dev libavformat-dev
sudo apt install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
sudo apt install -y libv4l-dev v4l-utils qv4l2 v4l2ucp libdc1394-22-dev

01 | 下载opencv源码

curl -L https://github.com/opencv/opencv/archive/4.1.0.zip -o opencv-4.1.0.zip
curl -L https://github.com/opencv/opencv_contrib/archive/4.1.0.zip -o opencv_contrib-4.1.0.zip
unzip opencv-4.1.0.zip 
unzip opencv_contrib-4.1.0.zip 
cd opencv-4.1.0/

02 | 编译安装OpenCV

mkdir release
cd release/
cmake -D WITH_CUDA=ON \
    	-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.0/modules \
    	-D WITH_GSTREAMER=ON \
    	-D WITH_LIBV4L=ON \
    	-D BUILD_opencv_python2=ON \
    	-D BUILD_opencv_python3=ON \
    	-D BUILD_TESTS=OFF \
    	-D BUILD_PERF_TESTS=OFF \
    	-D BUILD_EXAMPLES=OFF \
    	-D CMAKE_BUILD_TYPE=RELEASE \
    	-D OPENCV_GENERATE_PKGCONFIG=ON\
    	-D CMAKE_INSTALL_PREFIX=/usr/local ..
 make -j6
sudo make install

03 | 卸载

1 进入安装目录
make uninstall

03 | 问题解决

  1. 使用docker build构建镜像时,编译opencv出错:fatal error sys/videoio.h: no such file or directory
    解:修改docker默认运行环境为nvidia,具体步骤如下:
    修改/etc/docker/daemon.json文件内容如下:
{
    
    
    "runtimes": {
    
    
        "nvidia": {
    
    
            "path": "/usr/bin/nvidia-container-runtime",
            "runtimeArgs": []
         } 
    },
    "default-runtime": "nvidia" 
}

重启docker daemon:

sudo systemctl restart docker

如果你不想编译cuda相关,也可以设置WITH_CUDA=OFF -D CUDA_nppi_LIBRARY=true就不会报以上错误。

  1. 编译时报错fatal error :Eigen/Core: No such file or directory
    解决:sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen

猜你喜欢

转载自blog.csdn.net/pengshuyes/article/details/110952603