TX2安装opencv3.2和遇到问题的解决

TX2安装opencv3.2和遇到问题的解决

安装OpenCV,本以为会很顺利,结果折腾了不少时间,做个记录,做参考
先按官方文档安装一些依赖包
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-dev libdc1394-22-dev
sudo apt-get install libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev # 处理视频所需的包
sudo apt-get install libatlas-base-dev gfortran # 优化opencv功能

我安装时出现libgtk2.0-dev无法安装的错误
网上查了很多解决方法都没用,最后是更改回源的方法管用
编辑/etc/apt/sources.list把内容换成以下源
deb http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted
deb http://ports.ubuntu.com/ubuntu-ports/ bionic universe
#deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic universe
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-updates universe
deb http://ports.ubuntu.com/ubuntu-ports/ bionic multiverse
#deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-updates multiverse
#deb-src http://ports.ubuntu.com/ubuntu-ports/ bionic-updates multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-security universe
deb http://ports.ubuntu.com/ubuntu-ports/ bionic-security multiverse

更改源以后
sudo apt-get update
再次安装即可
以上所有安装都是顺利通过的,有问题就更改下安装源并且更新

到工程目录src下载opencv_contrib
git clone https://github.com/opencv/opencv_contrib.git
cd opencv_contrib
git checkout -b v3.2.0 3.2.0
如果下载缓慢,可以到网盘下载
链接:https://pan.baidu.com/s/1yCgbhXvpOW2AOES_W2EsIA
提取码:tvi5

到工程目录src下
cd ~/catkin_ws/src
git clone https://github.com/opencv/opencv
这个方式比较慢,可以到官网下载zip格式再解压,或者到网盘下载3.2版本
链接:https://pan.baidu.com/s/1ILuvqK_41SIvt8rs2oJDGg
提取码:nqk0

cd opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.2.0/modules/ …

这里出现cmake错误,网上分析原因是cuda新版本不支持2.0架构,因为3.4和以上版本没有下载,只能按照网上解决方法去解决了
opencv/cmake里找到FindCUDA.cmake文件
找到find_cuda_helper_libs(nppi)改为
find_cuda_helper_libs(nppial)
find_cuda_helper_libs(nppicc)
find_cuda_helper_libs(nppicom)
find_cuda_helper_libs(nppidei)
find_cuda_helper_libs(nppif)
find_cuda_helper_libs(nppig)
find_cuda_helper_libs(nppim)
find_cuda_helper_libs(nppist)
find_cuda_helper_libs(nppisu)
find_cuda_helper_libs(nppitc)
找到set(CUDA_npp_LIBRARY “ C U D A n p p c L I B R A R Y ; {CUDA_nppc_LIBRARY}; CUDAnppcLIBRARY;{CUDA_nppi_LIBRARY}; C U D A n p p s L I B R A R Y " ) 改 为 s e t ( C U D A n p p L I B R A R Y " {CUDA_npps_LIBRARY}")改为 set(CUDA_npp_LIBRARY " CUDAnppsLIBRARY")set(CUDAnppLIBRARY"{CUDA_nppc_LIBRARY}; C U D A n p p i a l L I B R A R Y ; {CUDA_nppial_LIBRARY}; CUDAnppialLIBRARY;{CUDA_nppicc_LIBRARY}; C U D A n p p i c o m L I B R A R Y ; {CUDA_nppicom_LIBRARY}; CUDAnppicomLIBRARY;{CUDA_nppidei_LIBRARY}; C U D A n p p i f L I B R A R Y ; {CUDA_nppif_LIBRARY}; CUDAnppifLIBRARY;{CUDA_nppig_LIBRARY}; C U D A n p p i m L I B R A R Y ; {CUDA_nppim_LIBRARY}; CUDAnppimLIBRARY;{CUDA_nppist_LIBRARY}; C U D A n p p i s u L I B R A R Y ; {CUDA_nppisu_LIBRARY}; CUDAnppisuLIBRARY;{CUDA_nppitc_LIBRARY};${CUDA_npps_LIBRARY}”)
找到unset(CUDA_nppi_LIBRARY CACHE)改为
unset(CUDA_nppial_LIBRARY CACHE)
unset(CUDA_nppicc_LIBRARY CACHE)
unset(CUDA_nppicom_LIBRARY CACHE)
unset(CUDA_nppidei_LIBRARY CACHE)
unset(CUDA_nppif_LIBRARY CACHE)
unset(CUDA_nppig_LIBRARY CACHE)
unset(CUDA_nppim_LIBRARY CACHE)
unset(CUDA_nppist_LIBRARY CACHE)
unset(CUDA_nppisu_LIBRARY CACHE)
unset(CUDA_nppitc_LIBRARY CACHE)
保存后找文件OpenCVDetectCUDA.cmake
找到

set(__cuda_arch_ptx “”)
if(CUDA_GENERATION STREQUAL “Fermi”)
set(__cuda_arch_bin “2.0”)
elseif(CUDA_GENERATION STREQUAL “Kepler”)
set(__cuda_arch_bin “3.0 3.5 3.7”)

去掉两行,改为

set(__cuda_arch_ptx “”)
if(CUDA_GENERATION STREQUAL “Kepler”)
set(__cuda_arch_bin “3.0 3.5 3.7”)

保存后找到modules/cudev/include/opencv2/cudev路径下找到common.hpp,打开加入
#include <cuda_fp16.h>
编译时还有一个错误fatal error: LAPACKE_H_PATH-NOTFOUND/lapacke.h
解决方法
sudo apt-get install liblapacke-dev checkinstall
在build文件夹下找到opencv_lapack.h
把#include "LAPACKE_H_PATH-NOTFOUND/lapacke.h"改为#include “lapacke.h”
再次尝试编译,进入
cd opencv/build
make
sudo make install

下面关于opencv配置操作有些资料上有,但是我在TX2上没有做,未有影响
在/etc/ld.so.conf.d/下新建opencv.conf文件,加入
/usr/local/lib
在终端执行
sudo ldconfig /etc/ld.so.conf
编辑/etc/bash.bashrc文件加入
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
以上步骤完成后,在终端输入查询下版本号
pkg-config --modversion opencv
显示安装的版本号就OK了
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wgqabc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值