您的位置:首页 > 运维架构

Linxu安装Opencv

2020-06-29 04:50 1886 查看

一、安装CMake

1、下载CMAKE

wget https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gz

但是由于速度太慢,在CSND上下载的相关软件包

2、解压:

tar zxvf cmake-3.14.0-Linux-x86_64.tar.gz

3、创建软链接

注: 文件路径是可以指定的, 一般选择在/opt 或 /usr 路径下, 这里选择/opt

sudo mv cmake-3.14.0-Linux-x86_64 /opt/cmake-3.14.0
ln -sf /opt/cmake-3.14.0/bin/*  /usr/bin

4、确认安装情况

cmake --version

输出

cmake version 3.14.0

二、OPENCV的安装可参考以下链接,

OPENCV安装参考链接点这里

cd opencv-3.2.0
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/ -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D WITH_QT=OFF -D WITH_OPENGL=ON -D CMAKE_BUILD_TYPE=Release -DCUDA_nppi_LIBRARY=true -D OPENCV_EXTRA_MODULES_PATH=~/opencv-3.2.0/opencv_contrib/modules/ ~/opencv-3.2.0 ..

opencv安装过错出现以下错误:

问题1

E: 无法下载 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu/dists/bionic/InRelease  403  Forbidden [IP: 2001:67c:1560:8008::15 80]
E: 仓库 “http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu bionic InRelease” 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。

解决方案参考:
apt-get update 更新失败----如何清除破损而且陈旧的PPA仓库

问题2

无法定位软件包 libjasper-dev
无法定位软件包 liblmdb-de

解决

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev

参考
https://blog.csdn.net/weixin_41053564/article/details/81254410

问题3使用Cmake编译opencv源码遇到如下错误

CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
CUDA_nppi_LIBRARY (ADVANCED)
linked by target “opencv_cudev” in directory D:/Cproject/opencv/opencv/sources/modules/cudev
linked by target “opencv_cudev” in directory D:/Cproject/opencv/opencv/sources/modules/cudev
linked by target “opencv_test_cudev” in directory D:/Cproject/opencv/opencv/sources/modules/cudev/test
linked by target “opencv_core” in directory D:/Cproject/opencv/opencv/sources/modules/core

参考以下链接解决问题:
https://www.machunjie.com/trouble/38.html

问题4

CMake Error at cmake/OpenCVModule.cmake:295 (message)

参考以下链接解决问题:
https://blog.csdn.net/DDTS_ZD/article/details/84637730
查了很多资料后,其实错误在于没有把opencv_contrib-3.2.0文件夹放入opencv-3.2.0中。拷贝到opencv-3.2.0文件夹后,错误就解决了。

问题5

CMake Error at cmake/OpenCVUtils.cmake:1047 (message):
Failed to download v3.1.0/protobuf-cpp-3.1.0.tar.gz.  Status=28;"Timeout
was reached"

参考以下链接解决问题:
https://download.csdn.net/download/specialshoot/9753560
下载软件包后,执行以下命令,注意路径

cp ~/protobuf-cpp-3.1.0.tar.gz ~/opencv-3.2.0/opencv_contrib/modules/dnn/.download/bd5e3eed635a8d32e2b99658633815ef/v3.1.0/protobuf-cpp-3.1.0.tar.gz

下载protobuf-cpp-3.1.0.tar.gz并执行以上命令后,后续会报错版本不一致,所以需要下载的是protobuf-cpp-3.2.0.tar.gz

cp ~/protobuf-cpp-3.2.0.tar.gz ~/opencv-3.2.0/opencv_contrib/modules/dnn/.download/bd5e3eed635a8d32e2b99658633815ef/v3.2.0/protobuf-cpp-3.2.0.tar.gz

问题6

Downloading vgg_generated_48.i...
CMake Error at cmake/OpenCVUtils.cmake:1043 (file):
file DOWNLOAD HASH mismatch

for file: [/home/daisy/opencv-3.2.0/opencv_contrib/modules/xfeatures2d/cmake/.download/e8d0dcd54d1bcfdc29203d011a797179/vgg_generated_48.i]
expected hash: [e8d0dcd54d1bcfdc29203d011a797179]
actual hash: [d41d8cd98f00b204e9800998ecf8427e]
status: [7;"Couldn't connect to server"]

解决:下载离线的vgg_generated_48.i

cp ~/vgg_generated_48.i opencv-3.2.0/opencv_contrib/modules/xfeatures2d/cmake/.download/e8d0dcd54d1bcfdc29203d011a797179/vgg_generated_48.i

由于下载的版本不对,一直报以下错

CMake Error at cmake/OpenCVUtils.cmake:1043 (file):
file DOWNLOAD HASH mismatch

for file: [/home/daisy/opencv-3.2.0/opencv_contrib/modules/xfeatures2d/cmake/.download/e8d0dcd54d1bcfdc29203d011a797179/vgg_generated_48.i]
expected hash: [e8d0dcd54d1bcfdc29203d011a797179]
actual hash: [d41d8cd98f00b204e9800998ecf8427e]
status: [7;"Couldn't connect to server"]

vgg_generated_64.i如果也报以下错误,hash不一致,说明下载的软件包有问题,重新下载一个。CSDN上面可以找到,删除以前的软件包,重新放入新的软件包

Downloading vgg_generated_64.i...
CMake Error at cmake/OpenCVUtils.cmake:1043 (file):
file DOWNLOAD HASH mismatch

for file: [/home/daisy/opencv-3.2.0/opencv_contrib/modules/xfeatures2d/cmake/.download/7126a5d9a8884ebca5aea5d63d677225/vgg_generated_64.i]
expected hash: [7126a5d9a8884ebca5aea5d63d677225]
actual hash: [d41d8cd98f00b204e9800998ecf8427e]
status: [7;"Couldn't connect to server"]

下载软件包(软件包我下载在根目录的,所以注意路径)后,执行

cp vgg_generated_64.i ~/opencv-3.2.0/opencv_contrib/modules/xfeatures2d/cmake/.download/7126a5d9a8884ebca5aea5d63d677225/vgg_generated_64.i

问题7

Could NOT find JNI (missing: JAVA_INCLUDE_PATH JAVA_INCLUDE_PATH2 JAVA_AWT_INCLUDE_PATH)

解决方法
下载jdk-8u151-linux-x64.tar.gz到download目录

安装jdk

cd download/
sudo mkdir /usr/local/java
sudo tar zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local/java
sudo ln -s /usr/local/java/jdk1.8.0_151/ /usr/local/java/latest

添加环境变量:

export JAVA_HOME=/usr/local/java/latest
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

执行,更新

source /etc/profile

问题8

Could NOT find Matlab (missing: MATLAB_MEX_SCRIPT MATLAB_INCLUDE_DIRS MATLAB_ROOT_DIR MATLAB_LIBRARIES MATLAB_LIBRARY_DIRS MATLAB_MEXEXT MATLAB_ARCH MATLAB_BIN)
VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or to VTK install subdirectory with VTKConfig.cmake file

解决

sudo apt install libvtk6-dev

问题8

Scanning dependencies of target opencv_cudev
Could not read from progress file

三、cmake成功,make报错

modules/core/CMakeFiles/opencv_core.dir/build.make:63: recipe for target 'modules/core/CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_gpu_mat.cu.o' failed
make[2]: *** [modules/core/CMakeFiles/cuda_compile.dir/src/cuda/cuda_compile_generated_gpu_mat.cu.o] Error 1
CMakeFiles/Makefile2:1977: recipe for target 'modules/core/CMakeFiles/opencv_core.dir/all' failed
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: