Jetson nano官方镜像(jetson-nano-sd-r32.1-2019-03-18.img)是自带OpenCV3.3.1的,因此在编译安装OpenCV4之前,需要删除本地的OpenCV3.3.1环境。
编译环境:ubuntu18.04
sudo apt-get purge libopencv*
sudo apt autoremove
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libglew-dev libtiff5-dev zlib1g-dev libjpeg-dev libavcodec-dev libavformat-dev libavutil-dev libpostproc-dev libswscale-dev libeigen3-dev libtbb-dev libgtk2.0-dev pkg-config libpng-dev
sudo apt-get install libatlas-base-dev gfortran
如果出现can’t locate package问题,一般只需要更新镜像即可。
sudo apt update
sudo apt upgrade
源码可以直接从OpenCV官方页面上下载,包括两部分OpenCV-4.1.1和OpenCV_contirb-4.1.1的源码。
一般github官网下载速度较慢,这里我分享了自己百度云链接,需要的同学自取。
链接:https://pan.baidu.com/s/1cyy9PinUsjsq3IIF13kF1w
密码:sblg
将源码下载完毕后,将OpenCV-4.1.1和OpenCV_contirb-4.1.1解压后放置在同一主目录opencv4下。
进入opencv-4.1.1目录,运行以下命令:
mkdir build
cd build
然后配置cmake选项:
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_PNG=OFF \
-DBUILD_TIFF=OFF \
-DBUILD_TBB=OFF \
-DBUILD_JPEG=OFF \
-DBUILD_JASPER=OFF \
-DBUILD_ZLIB=OFF \
-DBUILD_EXAMPLES=ON \
-DBUILD_opencv_java=OFF \
-DBUILD_opencv_python2=OFF \
-DBUILD_opencv_python3=ON \
-DENABLE_PRECOMPILED_HEADERS=OFF \
-DWITH_OPENCL=OFF \
-DWITH_OPENMP=OFF \
-DWITH_FFMPEG=ON \
-DWITH_GSTREAMER=OFF \
-DWITH_GSTREAMER_0_10=OFF \
-DWITH_CUDA=ON \
-DWITH_GTK=ON \
-DWITH_VTK=OFF \
-DWITH_TBB=ON \
-DWITH_1394=OFF \
-DWITH_OPENEXR=OFF \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-10.0 \
-DCUDA_ARCH_BIN=5.3 \
-DCUDA_ARCH_PTX="" \
-DINSTALL_C_EXAMPLES=ON \
-DOPENCV_ENABLE_NONFREE=ON \ #SIFT模块
-DINSTALL_TESTS=OFF \
-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.1/modules \
..
cmake选项根据自己的实际需求选择模块ON或OFF,相应目录也根据自己的实际情况更改。
cmake时可能会需要下载一些文件,如vgg_generated_48.i、face_landmark_model.dat等,由于是外网的原因,这些文件会出现超时下载不成功的现象,虽然这里下载不成功,不会出现红色的error报错,但会影响到后面的make操作,因此必须要确保下载成功。我将我编译时需要下载的文件放在了上面的百度云链接中,需要的同学可以自取。
将这些文件下载好放置在随意目录如/home/ryu/Documents/opencv4/installFile中,然后更改opencv_contrib-4.1.1/modules/xfeatures2d/cmake/download_vgg.cmake和opencv_contrib-4.1.1/modules/face/CMakeLists.txt中的URL地址,具体修改如下:
这样就可以将从对应网址的下载操作更改为从本地文件进行复制,解决了cmake的问题。有些人可能还会出现ippcv文件下载失败的问题,原理都是一样的,操作也是一样的,可以参考我文章末尾的参考文献进行文件下载和处理。
Cmake配置完后,即可进行make:
sudo make -j8
make的过程中可能还会出现部分cpp文件中include 头文件找不到的情况,只需要将这些cpp文件中的include路径进行修改,修改为包含相应头文件的绝对路径即可。
直接运行:
sudo make install
cd opencv-4.1.1/smaples/cpp/example_cmake
cmake .
make
./opencv_example # 测试demo,如果电脑上有摄像头会打开摄像头,如果没有则屏幕上会出现hello opencv的界面
如果测试不成功,可能原因是环境变量没有正确配置,可以进行如下操作:
sudo gedit /etc/ld.so.conf.d/opencv.conf 此时是空的,写进入 /usr/local/lib //将opencv库添加到路径,从而可以让系统找到
sudo ldconfig //使上述配置命令生效
sudo gedit /etc/bash.bashrc //配置bash 在末尾添加如下命令
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source /etc/bash.bashrc //使bash配置生效
sudo updatedb //更新
重新测试即可。
Jetson nano编译安装OpenCV 4
ubuntu16.04 安装opencv IPPICV 和 face_landmark_model.dat下载不下来的问题解决
Ubunt16.04 下安装并测试 opencv-4.0 opencv-contrib 模块