在Jetson TX2上安装OpenCV(3.4.0)
参考文章: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内容
sudo apt-get purge libopencv*
2.我更喜欢使用新版本的numpy(与pip一起安装),所以我也要删除这个python-numpy apt包
sudo apt-get purge python-numpy
3. 删除其他未使用的apt包
sudo apt autoremove
4. 将所有已安装的apt软件包升级到最新版本(可选做)
sudo apt-get update
sudo apt-get dist-upgrade
5. 将gcc apt包更新到最新版本(强烈推荐)
sudo apt-get install --only-upgrade g++- cpp- gcc-
6. 基于jetson安装opencv依赖项
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.-dev
7. 为gstreamer安装依赖项
sudo apt-get install libdc1394--dev libxine2-dev \
libgstreamer1.-dev \
libgstreamer-plugins-base1.-dev
8. 安装其他依赖项
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--dev \
libatlas-base-dev gfortran
sudo apt-get install libopenblas-dev liblapack-dev liblapacke-dev
9. 安装QT5的依赖项
sudo apt-get install qt5-default
10. 安装python3的依赖项
sudo apt-get install python3-dev python3-pip python3-tk
sudo pip3 install numpy
sudo pip3 install matplotlib
修改matplotlibrc的41行,'backend : TkAgg'
sudo vim /usr/local/lib/python3./dist-packages/matplotlib/mpl-data/matplotlibrc
vim技巧 : 按Esc,set nu(显示行号)

11. 安装python2的依赖项
sudo apt-get install python-dev python-pip python-tk
sudo pip2 install numpy
sudo pip2 install matplotlib
修改matplotlibrc的41行,'backend : TkAgg'
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的符号链接
sudo vim /usr/local/cuda/include/cuda_gl_interop.h
cd /usr/lib/aarch64-linux-gnu/
sudo ln -sf tegra/libGL.so libGL.so
下面是cuda_gl_interop.h的62行到68行,修改后如下:
//#if defined(__arm__) || defined(__aarch64__)
//#ifndef GL_VERSION
//#error Please include the appropriate gl headers before including cuda_gl_interop.h
//#endif
//#else
#include <GL/gl.h>
//#endif
接下来,下载opencv-3.4.0源代码,cmake并编译。注意,opencv_contrib模块(cnn/dnn之类的东西)会在pycaffe上引起问题,所以经过一些实验之后,我决定完全不包含这些模块。
mkdir -p ~/src
cd ~/src
wget https://github.com/opencv/opencv/archive/3.4.0.zip \
-O opencv-3.4..zip
unzip opencv-3.4..zip . Build opencv (CUDA_ARCH_BIN="6.2" for TX2, or "5.3" for TX1)
cd ~/src/opencv-3.4.
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
如果下载opencv源码较慢,可以在windows的浏览器中输入网址 https://github.com/opencv/opencv/archive/3.4.0.zip 手动下载源码包,之后将源码包放入TX2
验证安装是否成功
ls /usr/local/lib/python3./dist-packages/cv2.*
/usr/local/lib/python3./dist-packages/cv2.cpython-35m-aarch64-linux-gnu.so
ls /usr/local/lib/python2./dist-packages/cv2.*
/use/local/lib/python2./dist-packages/cv2.so
python3 -c 'import cv2; print(cv2.__version__)'
3.4.
python2 -c 'import cv2; print(cv2.__version__)'
3.4.
在Jetson TX2上正确安装了opencv-3.4.0之后,我们可以使用python脚本捕获和显示来自Jetson板载摄像机、USB网络摄像头或IP摄像头的实时视频。跟随这篇文章:在Jetson TX2上捕获、显示摄像头视频。
在Jetson TX2上安装OpenCV(3.4.0)的更多相关文章
- 在Jetson TX2上安装caffe和PyCaffe
caffe是Nvidia TensorRT最支持的深度学习框架,因此在Jetson TX2上安装caffe很有必要.顺便说一句,下面的安装是支持python3的. 先决条件 在Jetson TX2上完 ...
- 在Jetson TX2上捕获、显示摄像头视频
参考文章:How to Capture and Display Camera Video with Python on Jetson TX2 与参考文章大部分都是相似的,如果不习惯看英文,可以看看我下 ...
- 在Jetson TX2上显示摄像头视频并使用python进行caffe推理
参考文章:How to Capture Camera Video and Do Caffe Inferencing with Python on Jetson TX2 与参考文章大部分都是相似的,如果 ...
- Jetson TX2上的demo(原创)
Jetson TX2上的demo 一.快速傅里叶-海动图 sample The CUDA samples directory is copied to the home directory on th ...
- 在Ubuntu 18.04上安装OpenCV 4(C ++和Python)
OpenCV于11月20日发布了OpenCV-3.4.4和OpenCV-4.0.0.这些版本中有很多错误修复和其他更改.发布重点如下: OpenCV现在是C ++ 11库,需要符合C ++ 11标准的 ...
- 如何在Ubuntu/CentOS上安装Linux内核4.0
大家好,今天我们学习一下如何从Elrepo或者源代码来安装最新的Linux内核4.0.代号为‘Hurr durr I'm a sheep’的Linux内核4.0是目前为止最新的主干内核.它是稳定版3. ...
- 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 ...
- 【翻译自mos文章】在RHEL7/OL7上安装Oracle 12.1.0.2的server端或者client时,报须要"compat-libstdc++"包
在RHEL7/OL7上安装Oracle 12.1.0.2的server端或者client时,报须要"compat-libstdc++"包 来源于: Installation of ...
- TX2 上使用opencv 调用板载mipi摄像头
使用命令测试 gst-launch-1.0 nvcamerasrc ! 'video/x-raw(memory:NVMM), width=(int)1920, height=(int)1080, fo ...
随机推荐
- coding++:漫画版-了解什么是分布式事务?
————— 第二天 ————— ———————————— 假如没有分布式事务: 在一系列微服务系统当中,假如不存在分布式事务,会发生什么呢?让我们以互联网中常用的交易业务为例子: 上图中包含了库存 ...
- app扫描二维码登陆
先说明一下实现原理: 如同微信扫描登陆一样,就是一种pc的自动登陆授权.在网站首页得有切换登陆的选项:密码登陆 扫码登陆 当用户切换到扫码登陆时,向服务器请求一次获得一个唯一的uukey 利用这个uu ...
- 拓扑排序入门详解&&Educational Codeforces Round 72 (Rated for Div. 2)-----D
https://codeforces.com/contest/1217 D:给定一个有向图,给图染色,使图中的环不只由一种颜色构成,输出每一条边的颜色 不成环的边全部用1染色 ps:最后输出需要注意, ...
- python批量添加hexo文章封面
❝ 本文需要工具: 「excel」 「python3.x」 ❞ 今天突然觉得,我的博客的文章更新这么多了竟然还没有一个封面,觉得首页相当低调了- 首页 正好皮肤带有文章封面功能,所以我觉得要将文章批量 ...
- DES原理及代码实现
一.DES基础知识DES技术特点 DES是一种用56位密钥来加密64位数据的方法 DES采取了分组加密算法:明文和密文为64位分组长度 DES采取了对称算法:加密和解密除密钥编排不同外,使 ...
- 如何让一张图片变成二值图像?python+opencv图像处理
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:张熹熹 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自 ...
- Python程序设计 实验 1 熟悉 IDLE 和在线编程平台
------------恢复内容开始------------ 安徽工程大学 Python程序设计 实验报告 班级 物流191 姓名 姚彩琴 学号3190505129 成绩 日期 2 ...
- Django开发文档-域用户集成登录
项目概述: 一般在企业中,用户以WINDOWS的域用户统一的管理,所以以Django快速开发的应用,不得不集成AD域登录. 网上一般采用django-python3-ldap的库来做集成登录,但是本方 ...
- 《并发编程的艺术》阅读笔记之Sychronized
概述 在JDK1.6中,锁一共四种状态,级别由低到高依次是:无锁状态.偏向锁状态.轻量级锁状态和重量级锁状态.锁可以升级但不能降级,这是为了提高获得锁和释放锁的效率.只有重量级锁涉及到操作系统线程切换 ...
- BMP图片解析
本博客参考:https://www.cnblogs.com/l2rf/p/5643352.html 一.简介 BMP(Bitmap-File)图形文件是Windows采用的图形文件格式,在Window ...