ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装

1. opencv相应的安装包下载

opencv 主库 的下载地

opencv-contrib 库的下载地址

2. opencv 的一些依赖包

sudo apt-get install -y make    
sudo apt-get install automake 
sduo apt-get install yasm
         
sudo apt-get install g++     
sudo apt-get install bzip2
sudo apt-get install python  
sudo apt-get install unzip
 
sudo apt-get install patch  
sudo apt-get install subversion
sudo apt-get install ruby   
sudo apt-get install build-essential
 
sudo apt-get install git-core  
sudo apt-get install checkinstall
sudo apt-get install texi2html
 
sudo apt-get install libfaac-dev 
sudo apt-get install libmp3lame-dev
sudo apt-get install libopencore-amrwb-dev      
sudo apt-get install libopencore-amrnb-dev
 
sudo apt-get install libsdl1.2-dev 
sudo apt-get install libtheora-dev
sudo apt-get install libvdpau-dev
sudo apt-get install libvorbis-dev
 
sudo apt-get install libvpx-dev  
sudo apt-get install libx11-dev
sudo apt-get install libxfixes-dev              
sudo apt-get install libxvidcore-dev 
          
sudo apt-get install libgtk2.0-dev
sudo apt-get install zlib1g-dev                
sudo apt-get install libjpeg-dev                
sudo apt-get install libtiff4-dev
 
sudo apt-get install libjasper-dev           
sudo apt-get install libopenexr-dev              
sudo apt-get install cmake
 
sudo apt-get install python-dev              
sudo apt-get install python-numpy               
sudo apt-get install python-tk
 
sudo apt-get install libtbb-dev               
sudo apt-get install libeigen2-dev             
sudo apt-get install libx264-dev 
 
sudo apt-get install libqt4-dev       
sudo apt-get install libqt4-opengl-dev          
sudo apt-get install sphinx-common
 
sudo apt-get install texlive-latex-extra    
sudo apt-get install libv4l-dev               
sudo apt-get install libdc1394-22-dev
 
sudo apt-get install libavcodec-dev       
sudo apt-get install libavformat-dev            
sudo apt-get install libswscale-dev
 
sudo apt-get install libpng-dev           
sudo apt-get install  libxext-dev

在安装以上依赖包时,会有个别依赖包安装不成功,没关系继续安装其他依赖包,等全部安装结束后再回头将未成功安装的依赖包进行安装,此时发现已然能够安装。

3.安装FFmpeg

先进行卸载已安装成功的FFmpeg,避免冲突

sudo apt-get remove ffmpeg

sudo apt-get autoremove

解压安装包

sudo tar -xvjf ffmpeg-0.11.1.tar.bz2

cd ffmpeg-0.11.1

编译安装

./configure --enable-gpl --enable-nonfree --enable-version3 --enable-shared --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-libvpx --enable-postproc --enable-pthreads --enable-libtheora --enable-x11grab --enable-libvorbis --enable-pic

make

sudo make install

ffmpeg 卸载

make clean

sudo make uninstall

4、接下来安装CMake-gui,在终端输入

sudo apt-get install cmake-qt-gui

5 .安装OpenCV

对下载好的opencv以及opencv-contrib库进行解压到下相应的文件夹

终端环境下打开cmake-gui

按下回车键后出现以下界面,下图是复制的别人的仅为展示用:

  • 点击“Where is source code”行的Browser Source,加载源码所在目录。
  • 点击“Where to build the binarys行的Browser Source,加载源码所在目录下的build 目录,生成了项目文件就在这里

在完成源码的加载以及项目文件的设置后 ,点击左下方的Configure按钮,选择Unix Makefiles,选择Use default native compilers(默认),然后点击Finish

便得到以下界面

这里我们需要的对以下几个地方进行修改

1)在CMAKE_BUILD_TYPE 值处输入RELEASE,其他保持不变(如果已经存在就不必修改)。
下方的CMAKE_INSTALL_PREFIX显示了默认的安装目录,生成makefile文件最后执行 make install时就会安装到这个目录。

例如:

创建build文件夹存放cmake的构建文件,

release存放一些编译的动态库以及二进制文件

WITH_CUDA 进行选择

ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第1张图片

在OPENCV_EXTRA_MODULES_PATH处,选择输入目录(单击这一行后方空白处即可选中)

然后选择opencv_contrib-3.2.0文件夹中的modules文件夹,注意,不是只选中opencv_contrib-3.2.0文件夹就好了,需要选中里面的modules文件夹!    如下图所示,然后点Choose。
注:OPENCV_EXTRA_MODULES_PATH 是用来指定要编译的扩展模块,其中包括OpenCV_contrib模块。

即:

勾选 OPENCV_GENERATE_PKGCONFIG

这个很重要,是生成 opencv.pc 的,如果没有勾选就只能自己新建,后面也会提到。血的教训,而且网上很多教程都没提到,我是从官方文档看到的。

  • 再次点击 Configure 进行配置,如果还有红色就继续 Configure ,直到没有红色才可进行下一步。

  • 红色区域没了之后还要注意下图,红框圈住的信息栏,滚一下看看有没有错误信息(通常也是红色字体,很显眼),一般是下载问题,如果有错误信息,就继续 Configure ,直到没有错误信息。

  • ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第2张图片

点击configure生成配置文件,这一步应该比较快就完成了。

在进行生成的过程会下载一些文件包括ippicv, face_landmark_model.dat

链接: https://pan.baidu.com/s/16PSKoNH5vG8V0tM4VUXkjA  密码: ls7g

如下所是:

ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第3张图片

以上文件可在该网站进行下得到,下面是明示:

网址:Branches · opencv/opencv_3rdparty · GitHub

其中face_landmark_model.dat

boostdesc_系列网址

vgg_generated_系列

至于ippicv的版本,我们需要在 /放置opencv的路径/opencv-4.4.0/Build 路径下找到 CMakeDownloadLog.txt

这个文件记载了cmake  generate无法下载的文件

ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第4张图片

比如opencv4.4 需要的ippicv版本:

ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第5张图片

在下载好以上文件后,我们还需要修改ippicv.cmake 文件(路径: /你的opencv路径/opencv-4.4.0/3rdparty/ippicv,例如本人路径:/home/wang/softwareLibs/opencv-4.4.0/3rdparty/ippicv)如图:

ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第6张图片

打开ippicv.cmake 文件找到,行号大概是42行:

"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"

改为:

"file:///home/wang/MyDownloads/opencv_vgg_generated/" (该路径是你存放ippicv文件的路径)

以上过程为将网络下载模型改为本地下载模式。

注:

windows环境:

"file://E:/opencv_vgg_generated/"

ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第7张图片

修改结果如下所是:

ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第8张图片

以上过程可以有效解决ippicv无法安装的问题,接下来解决face_landmark_model.dat的下载的问题

由于该文件是opencv_contrib 扩展模块中人脸检测模型:

将路径切换到      /你自己的路径/opencv_contrib-4.4.0/modules/face  在该路径下找到 CMakeLists.txt 文件:

ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第9张图片

打开该文件,找到以下行(大概19行)进行修改:

"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/"

修改结果:

"file:///home/wang/MyDownloads/opencv_vgg_generated/"(该路径是你存放face_landmark_model.dat文件的路径)

结果展示:

以上过程,参考:

https://blog.csdn.net/tanmx219/article/details/101632917  opencv 解决ippicv下载慢的问题: ippicv_2019_lnx_intel64_general_20180723

https://blog.csdn.net/yiyuehuan/article/details/52951574?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase        【OpenCV】编译OpenCV时,FFmpeg或ippicv下载不成功的解决方案

此时回到cmake-gui 重新点击configure 进行配置,然后查看 /放置opencv的路径/opencv-4.4.0/Build 路径下找到 CMakeDownloadLog.txt

发现只有boostdesc_bgm_bi,boostdesc_binboost_256系列文件,以及vgg_generated_64,vgg_generated_80文件未能下载,下面我们解决该问题:将下载好的

  • boostdesc_bgm.i
  • boostdesc_bgm_bi.i
  • boostdesc_bgm_hd.i
  • boostdesc_lbgm.i
  • boostdesc_binboost_064.i
  • boostdesc_binboost_128.i
  • boostdesc_binboost_256.i
  • vgg_generated_120.i
  • vgg_generated_64.i
  • vgg_generated_80.i
  • vgg_generated_48.i

放在 /你的路径/opencv_contrib/modules/xfeatures2d/src/ 路径下即可,如图:

ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第10张图片

该过程参考:

https://blog.csdn.net/u011736771/article/details/85960300   编译OpenCV以及openc_contrib提示缺少boostdesc_bgm.i文件出错的解决 

在进行make 过程中 会自动搜索boostdesc_bgm_bi,boostdesc_binboost_256系列文件,以及vgg_generated_64,vgg_generated_80文件本地地址。

此时便可以进行再次的configure 以及generate

到此阶段,如果你没有勾选 WITH_CUDA 在进行make时便不会发生错误了。在进行make 后等待一段时间后便可以进行sudo make install

make -j8
sudo make install

然后配置环境变量,参考我的另一篇文章。

如果你想把cuda 也进行编译,则还需要勾选

WITH_CUDA,CUDA_FAST_MATH,WITH_CUBLAS,WITH_NVCUVID
CUDA_ARCH_BIN位置添加GPU Compute Capability 可从NVIDIA官网查找,相应网址:https://developer.nvidia.com/zh-cn/cuda-gpus
例如:CUDA_ARCH_BIN=7.5

那么你还需要继续填坑:

例如 找不到  "features2d/test/test_detectors_regression.impl.hpp"文件的问题。

ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第11张图片

解决以上问题方法便是:

find -name test_detectors_regression.impl.hpp

发现这个路径在opencv下的 modules 目录下的:

opencv-4.4.0/modules/features2d/test/test_detectors_regression.impl.hpp

根据报错信息打开test_features2d.cpp

ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第12张图片

根报错信息将找到的文件绝对路径添加到 51,52行,

此时便可以make 通过。

另外 附上针对该问题的其他解决方式:

https://www.cnblogs.com/signifyu/p/13038913.html#%E9%97%AE%E9%A2%982%EF%BC%9Afatal-error-features2dtesttest_detectors_regressionimplhpp-%E6%B2%A1%E6%9C%89%E9%82%A3%E4%B8%AA%E6%96%87%E4%BB%B6%E6%88%96%E7%9B%AE%E5%BD%95  

opencv 找不到 feature2d/test/test_detectors_regression.impl.hpp 文件_HockerF的博客-CSDN博客

命令行方式:

cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/home/wang/documents/opencv3.4.12/opencv-3.4.12/release -D CUDA_ARCH_BIN=6.1 -D CUDA_HOST_COMPILER=/usr/local/gcc-6.3.0/bin/gcc -D CUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-11.3 -D EXECUTABLE_OUTPUT_PATH=/home/wang/documents/opencv3.4.12/opencv-3.4.12/build/bin -D Eigen3-DIR=/usr/lib/cmake/eigen3 -D OPENCV_CONFIG_FILE_INCLUDE_DIR=/home/wang/documents/opencv3.4.12/opencv-3.4.12/build -D OPENCV_EXTRA_MODULES_PATH=/home/wang/documents/opencv3.4.12/opencv_contrib-3.4.12/modules -D PYTHON2_PACKAGES_PATH=lib/python2.7/dist-packages -D PYTHON3_EXECUTABLE=/usr/bin/python3 -D WITH_1394=ON -D WITH_CUBLAS=ON -D WITH_CUDA=ON -D WITH_FFMPEG=ON -D WITH_EIGEN=ON -D WITH_CUFFT=ON -D WITH_GTK=ON -D WITH_PNG=ON -D CUDA_FAST_MATH=1 -D ENABLE_FAST_MATH=1 -D CUDA_NVCC_FLAGS=--expt-relaxed-constexpr -D CMAKE_CXX_FLAGS="-std=c++11" ..

遇到的错误:

error:calling a constexpr __host__ function("abs") from a __device__ function("abs") is not allowed. The experimental flag '--expt-relaxed-constexpr' can be used to allow this.
 

编译时添加:

-D CUDA_NVCC_FLAGS=--expt-relaxed-constexpr

参考:

ubuntu安装OpenCV 及遇到的问题_六月的雨唯你的博客-CSDN博客

 相关报错如下:

/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfontconfig.so: undefined reference to `uuid_parse@UUID_1.0

解决方案:

ubuntu 18 &16环境下安装opencv3.4.x 以及 opencv4.x + cuda借助cmake-gui 进行安装_第13张图片

 

查看一下版本: ls   -l   /usr/lib/x86_64-linux-gnu/libuuid.so
进入anaconda:cd anaconda3/lib/
删除原有的:rm libuuid.so.1
按自己版本进行连接:ln -s /usr/lib/x86_64-linux-gnu/libuuid.so.1.3.0   libuuid.so.1

参考连接:

/usr/bin/ld: /usr/lib/x86_64-linux-gnu/libfontconfig.so: undefined reference to `uuid_parse@UUID_1.0_争渡争渡,惊起一滩鸥的博客-CSDN博客

你可能感兴趣的:(OpenCV,API,ubuntu,opencv)