编程语言
首页 > 编程语言> > Jetson TX2 (Jetpack4.4)源码编译OpenCV4.4.0

Jetson TX2 (Jetpack4.4)源码编译OpenCV4.4.0

作者:互联网

 

开发环境: Ubuntu18.04

      Jetson TX2

查看系统信息:

head -n 1 /etc/nv_tegra_release

 

 

 

 

 此处Revision为Jetpack版本号。

Step1: 卸载TX2上已经安装好的OpenCV

1 sudo apt-get purge libopencv*
2 sudo apt autoremove
3 sudo apt-get update

Step2: 安装OpenCV依赖包

1 sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
2 sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
3 sudo apt-get install -y python2.7-dev python3.6-dev python-dev python-numpy python3-numpy
4 sudo apt-get install -y libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev
5 sudo apt-get install -y libv4l-dev v4l-utils qv4l2 v4l2ucp
6 sudo apt-get install -y curl

Step3: 下载OpenCV 

安装的OpenCV版本 version = 4.4.0

curl -L https://github.com/opencv/opencv/archive/${version}.zip -o opencv-${version}.zip
curl -L https://github.com/opencv/opencv_contrib/archive/${version}.zip -o opencv_contrib-${version}.zip
unzip opencv-${version}.zip
unzip opencv_contrib-${version}.zip

Step4: CMake

解压完毕后进入OpenCV目录下

1 mkdir build
2 cd build/
3 cmake -D WITH_CUDA=ON -D WITH_CUDNN=ON -D CUDA_ARCH_BIN="6.2" -D CUDA_ARCH_PTX="" -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-${version}/modules -D WITH_GSTREAMER=ON -D WITH_LIBV4L=ON -D BUILD_opencv_python2=ON -D BUILD_opencv_python3=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
4 make -j4
5 sudo make install
CUDA_ARCH_BIN="6.2" 对应Jetson TX2,
OPENCV_EXTRA_MODULES_PATH为opencv_contrib解压后文件的路径。
前面的步骤都很顺利,网上也找到了很多脚本可以自动完成下载安装,但是在CMake这一步,每次执行指令都是直接返回,也没有显示错误信息,尝试了几个版本的OpenCV发现都是同样的问题。

解决办法:
cmake-gui
sudo apt-get install cmake-gui

启动cmake-gui后导入源码和build地址,按照之前的-D配置信息勾选,没有的通过Add Entry添加。 比较关键的是 OPENCV_EXTRA_MODULES_PATH 需要手动添加,

 

 

 

可能出现的错误及解决办法:

CUDA: OpenCV requires enabled 'cudev' module from 'opencv_contrib' error still exists

 

 

 如果OPENCV_EXTRA_MODULES_PATH 的路径正确,HAVE_opencv_cudev 会自动赋值为1。

 

Step5: 编译安装

cmake-gui完成后

1 sudo make -j6
2 sudo make install

 

另:

其实Nvidia已经提供了傻瓜式的安装方法,但如果想按照自己的想法对OpenCV进行编译,还是需要由源码入手。

sudo apt-get install -y python-opencv python3-opencv

主要还是最近做的一个项目里,使用了cv2.VideoCapture中的read()方法获取webcam的图像,我使用的是logitech C270,大坑,在终端中出现了如下的错误,虽然视频能够正常显示,但终端一直报错实在是难看,查明来源后发现解决办法竟是重新编译OpenCV,编译时设置 WITH_JPEG=OFF即可 。(https://stackoverrun.com/fr/q/4215173)

Corrupt JPEG data: 10 extraneous bytes before marker 0xd6

Corrupt JPEG data: 6 extraneous bytes before marker 0xd3

Corrupt JPEG data: 2 extraneous bytes before marker 0xd0

Corrupt JPEG data: 6 extraneous bytes before marker 0xd3

Corrupt JPEG data: 2 extraneous bytes before marker 0xd3

Corrupt JPEG data: 4 extraneous bytes before marker 0xd6

 

晚上花了几个小时终于把问题解决了,故记录一下。

标签:Jetpack4.4,get,OpenCV4.4,sudo,dev,opencv,源码,apt,install
来源: https://www.cnblogs.com/nacao/p/14089158.html