Jetpack3.3自带了opencv3.3,但是只提供了python2.7的编译版本,所以也只能在python2.7下使用,
尝试用简单的方法链接到python3中,但是遍查资料也没人说过这个东西,参考国外教程,制作了如下的教程:
第一步,
###Remove all old opencv stuffs installed by JetPacksudo apt-get purge libopencv*
第二步
### I prefer using newer version of numpy (installed with pip), so### I'd remove this python-numpy apt package as wellsudo apt-get purge python-numpy
第三步:
### Remove other unused apt packagessudo apt autoremove
第四步:
### Upgrade all installed apt packages to the latest versions (optional)sudo apt-get updatesudo 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 /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
更新环境变量。
参考资料:https://jkjung-avt.github.io/opencv3-on-tx2/