版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/long19960208/article/details/88180035
Jetpack3.3自带了opencv3.3,但是只提供了python2.7的编译版本,所以也只能在python2.7下使用,
尝试用简单的方法链接到python3中,但是遍查资料也没人说过这个东西,参考国外教程,制作了如下的教程:
第一步,
###Remove all old opencv stuffs installed by JetPack
sudo apt-get purge libopencv*
第二步
### I prefer using newer version of numpy (installed with pip), so
### I'd remove this python-numpy apt package as well
sudo apt-get purge python-numpy
第三步:
### Remove other unused apt packages
sudo apt autoremove
第四步:
### Upgrade all installed apt packages to the latest versions (optional)
sudo apt-get update
sudo apt-get dist-upgrade
第五步:
### Update gcc apt package to the latest version (highly recommended)
sudo apt-get install --only-upgrade g++-5 cpp-5 gcc-5
第六步:
sudo apt-get install build-essential make cmake cmake-curses-gui \
g++ libavformat-dev libavutil-dev \
libswscale-dev libv4l-dev libeigen3-dev \
libglew-dev libgtk2.0-dev
第七步:
sudo apt-get install libdc1394-22-dev libxine2-dev \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev
第八步:
sudo apt-get install libjpeg8-dev libjpeg-turbo8-dev libtiff5-dev \
libjasper-dev libpng12-dev libavcodec-dev
第九步:
sudo apt-get install libxvidcore-dev libx264-dev libgtk-3-dev \
libatlas-base-dev gfortran
第十步:
sudo apt-get install libopenblas-dev liblapack-dev liblapacke-dev
第十一步:
sudo apt-get install qt5-default
第十二步:
sudo apt-get install python3-dev python3-pip python3-tk
第十三步:
$ sudo pip3 install numpy
$ sudo pip3 install matplotlib
第十四步:
Modify matplotlibrc (line #41) as 'backend : TkAgg'
sudo vim /usr/local/lib/python3.5/dist-packages/matplotlib/mpl-data/matplotlibrc
第十五步:
$ sudo apt-get install python-dev python-pip python-tk
$ sudo pip2 install numpy
$ sudo pip2 install matplotlib
### Modify matplotlibrc (line #41) as 'backend : TkAgg'
$ sudo vim /usr/local/lib/python2.7/dist-packages/matplotlib/mpl-data/matplotlibrc
第十六步:
### Download opencv-3.4.0 source code
$ mkdir -p ~/src
$ cd ~/src
$ wget https://github.com/opencv/opencv/archive/3.4.0.zip \
-O opencv-3.4.0.zip
$ unzip opencv-3.4.0.zip
### Build opencv (CUDA_ARCH_BIN="6.2" for TX2, or "5.3" for TX1)
$ cd ~/src/opencv-3.4.0
$ mkdir build
$ cd build
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \
-D WITH_CUDA=ON -D CUDA_ARCH_BIN="6.2" -D CUDA_ARCH_PTX="" \
-D WITH_CUBLAS=ON -D ENABLE_FAST_MATH=ON -D CUDA_FAST_MATH=ON \
-D ENABLE_NEON=ON -D WITH_LIBV4L=ON -D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF \
-D WITH_QT=ON -D WITH_OPENGL=ON ..
$ make -j4
$ sudo make install
第十七步:To verify the installation:
$ ls /usr/local/lib/python3.5/dist-packages/cv2.*
/usr/local/lib/python3.5/dist-packages/cv2.cpython-35m-aarch64-linux-gnu.so
$ ls /usr/local/lib/python2.7/dist-packages/cv2.*
/use/local/lib/python2.7/dist-packages/cv2.so
$ python3 -c 'import cv2; print(cv2.__version__)'
3.4.0
$ python2 -c 'import cv2; print(cv2.__version__)'
3.4.0
最后一步:
这个是补的,当时编译完只有只测试过python环境下是可以用的了,但是c++版本的并没有测试,后来需要编译c++程序的时候发现还是有问题,会提示找不到包含opencv的文件夹。原因是因为还没有把编译好的opencv添加到linux的系统路径中。
首先修改配置文件:
sudo vim /etc/ld.so.conf
在其后添加opencv编译的lib的路径。
然后在运行
sudo ldconfig
这个命令的用途是在ld.so.conf内所列的目录下搜索可共享的动态链接库,进而创建出动态装入程序所需要的连接和缓存文件。具体可以参见这里,一般在重启系统时会自动运行,当用户安装了一个新的动态链接库的时候,如果不想重启则需要手动运行这个命令。
然后修改bash.bashrc
文件。
sudo vim /etc/bash.bashrc
在最后添加:
然后输入
source /etc/bash.bashrc
更新环境变量。