Ubuntu18.04下的Nvidia产品Jetson系列安装opencv3.4

注意你要是“源码编译”装过别的版本的opencv4尽量重刷一下系统在按照本教程安装,nvidia自带的OPENCV可以直接覆盖不用删除,删文件太累了对于我小白 !

opencv/opencv at 3.4 (github.com)下载地址

sudo apt-get install build-essential sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-java libdc1394-22-dev

你肯定会用qt,如下命令安装qt 

sudo apt-get install qt5-default qtcreator -y
reboot

 

sudo apt-get install cmake-qt-gui
mkdir opencv
cd opencv
unzip 你的两个压缩包
mkdir build
cd build 
cmake-gui .. 

然后会弹出CMake的图形化界面,在上方的两个路径里面,选择好代码所在文件夹的路径和要安装的路径

Ubuntu18.04下的Nvidia产品Jetson系列安装opencv3.4_第1张图片

  1.  点击左下方的Configure按钮,选择Unix Makefiles,选择Use default native compilers(默认),然后点击Finish
  2. 窗口的中间部分即配置列表,这里和使用cmake命令直接生成makefile文件一致的。正如上文所述,这里通过图形界面的方式来进行配置,更加直观方便。
  3. 这里需要对两个地方进行修改:
  4. 在CMAKE_BUILD_TYPE 值处输入RELEASE,其他保持不变(如果已经存在就不必修改)。
  5. .CMAKE_BUILD_TYPE 改成Release

  6. CMAKE_INSTALL_PREFIX 改成自己的路径,默认为/usr/local
  7. 勾选WITH_CUDA
  8. 确认OPENCV_GENERATE_PKGCONFIG勾选
  9. 确认INSTALL_PYTHON_EXAMPLES为OFF
  10. OPENCV_EXTRA_MODULES_PATH设定为: xxx/opencv_contrib-3.4.0/modules
  11. OPENGL 为ON
  12. OPENCV_ENABLE_NONFREE为ON ,这是安装opencv专利模块的语句
  13. 下方的CMAKE_INSTALL_PREFIX显示了默认的安装目录,生成makefile文件最后执行 make install时就会安装到这个目录,这里可以根据个人需求更改。我这里就不做修改了。
  14. 在OPENCV_EXTRA_MODULES_PATH处,选择输入目录(单击这一行后方空白处即可选中)然后选择opencv_contrib-3.4.0文件夹中的modules文件夹,注意,不是只选中opencv_contrib-3.4.0文件夹就好了,需要选中里面的modules文件夹!    如下图所示,然后点Choose。
    注:OPENCV_EXTRA_MODULES_PATH 是用来指定要编译的扩展模块,其中包括OpenCV_contrib模块
  15. 点击Generate生成配置文件,这一步应该比较快就完成了
  16. 接着,在build目录下打开终端,输入
make -j6
sudo make install

Ubuntu18.04下的Nvidia产品Jetson系列安装opencv3.4_第2张图片

然后就开始安装了,这一步又需要等比较长的时间了,差不多就可以了

默认位置安装,则会安装到系统如下目录:

  • /usr/local/bin
  • /usr/local/lib
  • /usr/local/share

 设置扫描路径

设置扫描路径,这块主要针对自定义位置安装,项目编译后产生的可执行文件、库文件、头文件需要被别的项目引用,扫描路径怎么设置?也有两种方式:

OpenCV编译后会在/OPENCV_DIR_PATH/lib/pkgconfig/下产生opencv.pc文件,里面定义了这些路径变量:

  • 1.复制opencv.pc至系统pkgconfig文件夹中
  • 2.将opencv.pc所在目录设定到环境变量PKG_CONFIG_PATH

prefix定义了编译安装的主目录;exec_prefix则是可执行文件目录;然后还有include文件夹目录等等。

通过/usr/bin/下的pkg-config命令,会扫描所有系统/usr/lib/下和环境变量PKG_CONFIG_PATH所定义的所有pkgconfig文件夹,这些文件夹都是存放各个程序编译信息.pc文件,pkg-config扫描后,这些.pc文件保存的编译信息就能被其他项目/程序获取。(.pc文件主要定义了安装程序的主目录prefix、可执行程序目录exec_prefix、lib目录libdir、包含目录includedir、sharedlibdir等,有点类似于环境变量,不过更多是为了程序编译服务的)

pkg-config --modversion opencv
pkg-config --cflags --libs opencv
# 查看所有系统将会扫描的pkgconfig文件夹路径;
pkg-config --variable pc_path pkg-config
#根据opencv.pc查看其有那些路径变量
pkg-config --print-variables opencv
#查看opencv.pc中prefix变量的值(即其编译安装的位置)
pkg-config --variable prefix opencv

 自定义安装,我们会在/OPENCV_DIR_PATH/lib/pkgconfig/下发现opencv.pc

Ubuntu18.04下的Nvidia产品Jetson系列安装opencv3.4_第3张图片

 我这里这里是默认/usr/local下安装的,因为我是小白

 将opencv.pc所在目录设定到环境变量PKG_CONFIG_PATH

#修改bash.bashrc文件
sudo vim /etc/bash.bashrc
# 在最后加入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/OPENCV_DIR_PATH/lib/pkgconfig
export PKG_CONFIG_PATH
source /etc/bash.bashrc
#查看变量是否生效
echo $PKG_CONFIG_PATH

配置一下再

 主要是将opencv的lib路径添加到配置,能被系统扫描到,有什么用?其他项目,如darknet构建时需要用到opencv的lib,就可以直接引用到。将你opencv安装目录/lib路径写入opencv.conf,并保存。如果你编译时是默认安装,路径是: /usr/local/lib。自定义的加你的路径。

sudo vi /etc/ld.so.conf.d/opencv.conf

/usr/local/lib
#刷新lib库目录
sudo ldconfig
#刷新目录缓存
sudo /sbin/ldconfig

PYTHON Demo 

 Ubuntu18.04下的Nvidia产品Jetson系列安装opencv3.4_第4张图片

C++ Demo:

 卸载相比安装,容易了许多,还是cd到opencv源码主目录/build文件夹下 sudo make uninstall

执行sudo make uninstall可将opencv相关的可执行文件、lib文件等从/usr/local/bin/、/usr/local/lib、usr/local/share中删除,不过还是会留空下文件夹,需要手动删除。可以继续执行:sudo make clean 将源码包内的编译相关文件删除、最后在build文件夹内执行sudo rm rf *删除源码包内所有文件。这里就不演示卸载了哈哈!注意你要是装过别的版本的opencv4尽量重刷一下系统在按照本教程安装,删文件太累了对于小白 !

你可能感兴趣的:(opencv3.4,Jetson,ubuntu,opencv)