注意安装的时候先查看设备旧版本的opencv,卸载干净后再装。 

Jetpack4.6

opencv4.1.1

conda安装 过程翻一下之前的博客把,下面是创建环境开始

conda create -n py36 python=3.6.9

OPENCV_EXTRA_MODULES_PATH=/home/ta/open/opencv_contrib-4.1.1/modules  #这个是opencv_contrib文件,附加的face等lib库需要用到这个链接内的内容

 

-DBUILD_SHARED_LIBS=ON   #这个决定是否生成 cv2.cpython-36m-aarch64-linux-gnu.so to cv2.so 文件,连接到虚拟环境用

-DOPENCV_GENERATE_PKGCONFIG=ON  # 这个决定是否生成opencv.pc的配置文件

-DPYTHON_DEFAULT_EXECUTABLE=/home/nvidia/archiconda3/envs/yolo5/bin/python3.6m #这个决定安装在哪个python上
 

 

编译步骤先下载两个opencv的压缩包,具体过程看下之前的文章内的脚本,cmake的内容可以根据实际需求进行添加

 

cmake \
-DBUILD_opencv_python3=ON \
-DBUILD_opencv_python2=OFF \
-DPYTHON3_EXECUTABLE=/home/nvidia/archiconda3/envs/yolo5/bin/python3.6m \
-DPYTHON_INCLUDE_DIR=/home/nvidia/archiconda3/envs/yolo5/include/python3.6m \
-DPYTHON_LIBRARY=/home/nvidia/archiconda3/envs/yolo5/lib/libpython3.6m.so \
-DPYTHON_NUMPY_INCLUDE_DIRS=/home/nvidia/archiconda3/envs/yolo5/lib/python3.6/site-packages/numpy/core/include \
-DPYTHON_PACKAGES_PATH=/home/nvidia/archiconda3/envs/yolo5/lib/python3.6/site-packages \
-DPYTHON_DEFAULT_EXECUTABLE=/home/nvidia/archiconda3/envs/yolo5/bin/python3.6m \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DBUILD_EXAMPLES=OFF \
-DOPENCV_GENERATE_PKGCONFIG=ON \
-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda \
-DCMAKE_BUILD_TYPE=RELEASE \
-DOPENCV_ENABLE_NONFREE=1 \
-DWITH_FFMPEG=1 \
-DCUDA_ARCH_BIN=7.2 \
-DCUDA_ARCH_PTX=7.2 \
-DWITH_CUDA=1 \
-DENABLE_FAST_MATH=1 \
-DCUDA_FAST_MATH=1 \
-DWITH_CUBLAS=1 \
-DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.1.1/modules \
..

 下面这个命令适用于不知道什么时候装了一堆opencv,且在每个opencv的安装目录下都找不到build目录的同志们。
#终端输入命令
find / -name "*opencv*" 2>/dev/null
然后看到跳出来的文件了么,一些是文件夹,一些是文件。然后使用sudo rm -rm删除文件夹,使用sudo rm 删除文件。
pkg-config opencv --libs
pkg-config opencv --modversion

sudo make 

sudo make install之后执行下面的步骤

1.
sudo ldconfig -v  # 链接库共享
 
2.
sudo gedit /etc/ld.so.conf.d/opencv.conf # 将opencv的库添加到路径 打开是个空文件 加入下面一行
    /usr/local/lib  # 添加进去
sudo ldconfig   # 使配置生效
 
3.
sudo gedit /etc/bash.bashrc  # 配置环境变量 在文末添加下面两行
    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
    export PKG_CONFIG_PATH
source /etc/bash.bashrc  # 使配置生效
 
sudo updatedb # 更新 如果没有该命令:apt-get install mlocate

链接tensorrt到虚拟环境如下 

sudo ln -s /usr/lib/python3.6/dist-packages/tensorrt* /home/nvndia/archiconda/envs/car/lib/python3.6/site-packages/

将opencv链接到虚拟环境下

 此时我们只需找到 /usr/lib/python3.6/dist-packages/cv2/python-3.6路径下的cv2.cpython-36m-aarch64-linux-gnu.so文件,复制到路径/home/nvidia/archiconda3/envs/car/lib/python3.6/site-packages/

sudo ln -s /usr/lib/python3.6/dist-packages/cv2/python-3.6/cv2.cpython-36m-aarch64-linux-gnu.so /home/nvidia/archiconda3/envs/tf-gpu/lib/python3.6/dite-packages

 

 可以撒花了

 

 

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐