参考文章:How to Install OpenCV (3.4.0) on Jetson TX2

与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下面的描述

在我们使用python3进行编程时,import cv2不起作用。由于预先安装的opencv是与python2.7绑定的,如果想在python3环境下使用,我们需要重新编译opencv

先决条件

已经在Jetson TX2上安装了JetPack-3.3(或JetPack-3.2.1或JetPack-3.1)

安装步骤

首先清理旧的opencv包,并构建opencv所需的依赖项

1. 删除所有由JetPack(或OpenCV4Tegra)安装的旧opencv内容

  1. sudo apt-get purge libopencv*

2.我更喜欢使用新版本的numpy(与pip一起安装),所以我也要删除这个python-numpy apt包

  1. sudo apt-get purge python-numpy

3. 删除其他未使用的apt包

  1. sudo apt autoremove

4. 将所有已安装的apt软件包升级到最新版本(可选做)

  1. sudo apt-get update
  2. sudo apt-get dist-upgrade

5. 将gcc apt包更新到最新版本(强烈推荐)

  1. sudo apt-get install --only-upgrade g++- cpp- gcc-

6. 基于jetson安装opencv依赖项

  1. sudo apt-get install build-essential make cmake cmake-curses-gui \
  2. g++ libavformat-dev libavutil-dev \
  3. libswscale-dev libv4l-dev libeigen3-dev \
  4. libglew-dev libgtk2.-dev

7. 为gstreamer安装依赖项

  1. sudo apt-get install libdc1394--dev libxine2-dev \
  2. libgstreamer1.-dev \
  3. libgstreamer-plugins-base1.-dev

8. 安装其他依赖项

  1. sudo apt-get install libjpeg8-dev libjpeg-turbo8-dev libtiff5-dev \
  2. libjasper-dev libpng12-dev libavcodec-dev
  3. sudo apt-get install libxvidcore-dev libx264-dev libgtk--dev \
  4. libatlas-base-dev gfortran
  5. sudo apt-get install libopenblas-dev liblapack-dev liblapacke-dev

9. 安装QT5的依赖项

  1. sudo apt-get install qt5-default

10. 安装python3的依赖项

  1. sudo apt-get install python3-dev python3-pip python3-tk
  2. sudo pip3 install numpy
  3. sudo pip3 install matplotlib

修改matplotlibrc的41行,'backend      : TkAgg'

  1. sudo vim /usr/local/lib/python3./dist-packages/matplotlib/mpl-data/matplotlibrc

vim技巧 : 按Esc,set nu(显示行号)

11. 安装python2的依赖项

  1. sudo apt-get install python-dev python-pip python-tk
  2. sudo pip2 install numpy
  3. sudo pip2 install matplotlib

修改matplotlibrc的41行,'backend      : TkAgg'

  1. sudo vim /usr/local/lib/python2./dist-packages/matplotlib/mpl-data/matplotlibrc

在下载和编译opencv-3.4.0之前,需要先进行一些修改。具体点说是修改  /usr/local/cuda/include/cuda_gl_interop.h 并修复libGL.so的符号链接

  1. sudo vim /usr/local/cuda/include/cuda_gl_interop.h
  2. cd /usr/lib/aarch64-linux-gnu/
  3. sudo ln -sf tegra/libGL.so libGL.so

下面是cuda_gl_interop.h的62行到68行,修改后如下:

  1. //#if defined(__arm__) || defined(__aarch64__)
  2. //#ifndef GL_VERSION
  3. //#error Please include the appropriate gl headers before including cuda_gl_interop.h
  4. //#endif
  5. //#else
  6. #include <GL/gl.h>
  7. //#endif

接下来,下载opencv-3.4.0源代码,cmake并编译。注意,opencv_contrib模块(cnn/dnn之类的东西)会在pycaffe上引起问题,所以经过一些实验之后,我决定完全不包含这些模块。

  1. mkdir -p ~/src
  2. cd ~/src
  3. wget https://github.com/opencv/opencv/archive/3.4.0.zip \
  4. -O opencv-3.4..zip
  5. unzip opencv-3.4..zip
  6.  
  7. . Build opencv (CUDA_ARCH_BIN="6.2" for TX2, or "5.3" for TX1)
  8. cd ~/src/opencv-3.4.
  9. mkdir build
  10. cd build
  11. cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local \
  12. -D WITH_CUDA=ON -D CUDA_ARCH_BIN="6.2" -D CUDA_ARCH_PTX="" \
  13. -D WITH_CUBLAS=ON -D ENABLE_FAST_MATH=ON -D CUDA_FAST_MATH=ON \
  14. -D ENABLE_NEON=ON -D WITH_LIBV4L=ON -D BUILD_TESTS=OFF \
  15. -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF \
  16. -D WITH_QT=ON -D WITH_OPENGL=ON ..
  17. make -j4
  18. sudo make install

如果下载opencv源码较慢,可以在windows的浏览器中输入网址 https://github.com/opencv/opencv/archive/3.4.0.zip 手动下载源码包,之后将源码包放入TX2

验证安装是否成功

  1. ls /usr/local/lib/python3./dist-packages/cv2.*
  2. /usr/local/lib/python3./dist-packages/cv2.cpython-35m-aarch64-linux-gnu.so
  3. ls /usr/local/lib/python2./dist-packages/cv2.*
  4. /use/local/lib/python2./dist-packages/cv2.so
  5. python3 -c 'import cv2; print(cv2.__version__)'
  6. 3.4.
  7. python2 -c 'import cv2; print(cv2.__version__)'
  8. 3.4.

在Jetson TX2上正确安装了opencv-3.4.0之后,我们可以使用python脚本捕获和显示来自Jetson板载摄像机、USB网络摄像头或IP摄像头的实时视频。跟随这篇文章:在Jetson TX2上捕获、显示摄像头视频

在Jetson TX2上安装OpenCV(3.4.0)的更多相关文章

  1. 在Jetson TX2上安装caffe和PyCaffe

    caffe是Nvidia TensorRT最支持的深度学习框架,因此在Jetson TX2上安装caffe很有必要.顺便说一句,下面的安装是支持python3的. 先决条件 在Jetson TX2上完 ...

  2. 在Jetson TX2上捕获、显示摄像头视频

    参考文章:How to Capture and Display Camera Video with Python on Jetson TX2 与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下 ...

  3. 在Jetson TX2上显示摄像头视频并使用python进行caffe推理

    参考文章:How to Capture Camera Video and Do Caffe Inferencing with Python on Jetson TX2 与参考文章大部分都是相似的,如果 ...

  4. Jetson TX2上的demo(原创)

    Jetson TX2上的demo 一.快速傅里叶-海动图 sample The CUDA samples directory is copied to the home directory on th ...

  5. 在Ubuntu 18.04上安装OpenCV 4(C ++和Python)

    OpenCV于11月20日发布了OpenCV-3.4.4和OpenCV-4.0.0.这些版本中有很多错误修复和其他更改.发布重点如下: OpenCV现在是C ++ 11库,需要符合C ++ 11标准的 ...

  6. 如何在Ubuntu/CentOS上安装Linux内核4.0

    大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为‘Hurr durr I'm a sheep’的Linux内核4.0是目前为止最新的主干内核.它是稳定版3. ...

  7. RAC分解步骤之一,在oracle linux 4u4上安装oracle 10.2.0.1.0操作日志

    练习oracle的rac组建过程,第一步,先练习4u4上安装oracle 10.2.0.1.0.直接安装rac,有些难度.从简单的做起.总RAC步骤,参照小布老师的RAC组建. 1. 启动vc,登陆v ...

  8. 【翻译自mos文章】在RHEL7/OL7上安装Oracle 12.1.0.2的server端或者client时,报须要&quot;compat-libstdc++&quot;包

    在RHEL7/OL7上安装Oracle 12.1.0.2的server端或者client时,报须要"compat-libstdc++"包 来源于: Installation of ...

  9. TX2 上使用opencv 调用板载mipi摄像头

    使用命令测试 gst-launch-1.0 nvcamerasrc ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, fo ...

随机推荐

  1. String 对象-->substring() 方法

    1.定义和用法 substring() 方法用于提取两个指定下标之间的字符. substring() 方法返回的子串包括 开始 处的字符,但不包括 结束 处的字符 语法: string.substri ...

  2. tf.train.AdamOptimizer 优化器

    adaptive moment estimation(自适应矩估计) tf.train.AdamOptimizer( learning_rate=0.001, beta1=0.9, beta2=0.9 ...

  3. 如何练习python?有这五个游戏,实操经验就已经够了

    现在学习python的人越来越多了,但仅仅只是学习理论怎么够呢,如何练习python?已经是python初学者比较要学会的技巧了! 其实,最好的实操练习,就是玩游戏. 也许你不会信,但这五个小游戏足够 ...

  4. Delphi Unicode转中文

    function UniCode2GB(S : String):String;Var I: Integer;beginI := Length(S);while I >=4 do begintry ...

  5. stand up meeting 1/13/2016

    part 组员                工作              工作耗时/h 明日计划 工作耗时/h    UI 冯晓云  UI测试和调整:与主程序完成合并    6 查漏补缺,扫除UI ...

  6. 不同目录有同名proto文件情况下,protoc生成.cc/.h

    首先先参考一下别人的博客,看完了,看懂了,再回过头来看我下面说的情况. 链接 https://blog.csdn.net/CAir2/article/details/78201572 但是这个也就是基 ...

  7. spring boot 项目 mvn clean install 报 "Unable to find main class" 的解决方法

    按照步骤来总会解决的 检查pom.xml中是否加入了spring boot maven插件 <build> <plugins> <plugin> <group ...

  8. 测试Thread中的常用方法

    package com.yhqtv.java; /* *测试Thread中的常用方法: * 1.start():启动当前线程:调用当前线程的run() * 2.run():通常需要重写Thread类的 ...

  9. nav破解

    https://blog.csdn.net/qq_40529395/article/details/78839357

  10. python学习03字符串基本操作

    '''字符串可以用单引号,双引号,三引号表示 '''#1.读取str1='I am a student!'#每一个字符对应一个下标,可以利用下标的方式来读取字符串对应的值——索引print(str1[ ...