JETSON TX1中为Python3配置OpenCV
- 准备工作
- OpenCV源码编译
- OpenCV的安装
- Python调用cv2
第一次使用
JETSON TX1这个开发板,好像这个板子前几年就出来了,所以网上好多关于这个板子刷机的教程很多,所以我在这里就不过多赘述。而且刷机后它默认只支持
python2
来调用
opencv
,而
python3
想要调用
opencv
,就需要自己进行编译。今天我主要想分享的就是关于在这个板子上为
python3
安装
OpenCV
的过程。
参考了这篇博客
准备工作
-
python3.5
(通过Jetpack
刷机后默认的3.5) - 需要有
numpy
的支持 -
opencv
源码地址 -
opencv_contrib
源码地址 -
cmake
,以及一些相应的库支持
sudo apt-get install -y \
libglew-dev \
libtiff5-dev \
zlib1g-dev \
libjpeg-dev \
libpng12-dev \
libjasper-dev \
libavcodec-dev \
libavformat-dev \
libavutil-dev \
libpostproc-dev \
libswscale-dev \
libeigen3-dev \
libtbb-dev \
libgtk2.0-dev \
cmake \
python-numpy\
pkg-config
OpenCV源码编译
- 解压下载好的
opencv
源码和opencv_contrib
源码 cd opencv-master
-
mkdir build
build文件夹主要用于存储我们通过cmake
编译后的opencv
的库 cd build
- 接下来,我们需要在
build
文件夹中进行cmake
编译,在执行下面的命令的过程中,千万不要直接复制我的命令,因为有好多细节的地方需要改成对应自己开发板的目录(下面我具体指出需要改的地方)。
-
-D CMAKE_INSTALL_PREFIX
这个主要指定的是opencv的安装目录,这个参数的值一定要改,opencv
这个是我自己在/usr/local/
下新建的,专门用来存放需要安装opencv
的文件 -
-D OPENCV_EXTRA_MODULES
这个需要对应之前你解压的opencv_contrib
下的modules
目录 -
PYTHON3_LIBRARIES
这个主要要注意的是需要对应自己板子中的aarch64-linux-gnu
文件夹,不同板子这个文件夹的名字可能不同,不过都在/usr/lib/
这个目录下,不确定的话,就在/usr/lib/
目录下找带有linux-gnu
字样的文件夹即可 -
PYTHON3_NUMPY_INCLUDE_DIRS
这个主要对应python3
下numpy
的一个目录,后面的..
一定要加上
cmake -D BUILD_opencv_python3=YES -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv -D OPENCV_EXTRA_MODULES=/home/nvidia/ opencv_contrib-master/modules -D PYTHON3_LIBRARIES=/usr/lib/aarch64-linux-gnu/libpython3.5m.so -D PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include/ ..
确保所有的东西都没错的话,直接执行,如果出现如下图所示的结果,说明编译成功了。
OpenCV的安装
- 在
build
目录下执行make -j4
静静等待成功,make
成功时如下图所示: sudo make install
,install
成功时如下图所示:sudo ldconfig
到此OpenCV
就安装成功了。但是,这个时候python直接调用还是不行的。我们在上面make
成功的时候,发现有这样的提示:
也就是我们在make成功后,生成了cv2.cpython-35m-aarch64-linux-gnu.so
这样的一个.so
文件。这个文件也是我们通过python3
调用OpenCV
的关键。
Python调用cv2
接下来,我们需要找到cv2.cpython-35m-aarch64-linux-gnu.so
,然后将它所在的路径添加到环境变量当中,cv2
就可以永久使用了。
具体步骤:
find / -name cv2.cpython-35m-aarch64-linux-gnu.so
- 我们发现可以找到多个对应的路径,我们选择其中一个,将它添加到环境变量当中即可
export PYTHONPATH=$PYTHONPATH:/home/nvidia/opencv-master/build/lib/python3/
- 测试。
python3 -c 'import cv2; print(cv2.__version__)'
- 至此完,希望能够帮助到大家。