1. opencv相应的安装包下载
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 进行选择
在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 ,直到没有错误信息。
点击configure生成配置文件,这一步应该比较快就完成了。
在进行生成的过程会下载一些文件包括ippicv, face_landmark_model.dat
链接: https://pan.baidu.com/s/16PSKoNH5vG8V0tM4VUXkjA 密码: ls7g
如下所是:
以上文件可在该网站进行下得到,下面是明示:
网址:Branches · opencv/opencv_3rdparty · GitHub
至于ippicv的版本,我们需要在 /放置opencv的路径/opencv-4.4.0/Build 路径下找到 CMakeDownloadLog.txt
这个文件记载了cmake generate无法下载的文件
比如opencv4.4 需要的ippicv版本:
在下载好以上文件后,我们还需要修改ippicv.cmake 文件(路径: /你的opencv路径/opencv-4.4.0/3rdparty/ippicv,例如本人路径:/home/wang/softwareLibs/opencv-4.4.0/3rdparty/ippicv)如图:
打开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/"
修改结果如下所是:
以上过程可以有效解决ippicv无法安装的问题,接下来解决face_landmark_model.dat的下载的问题
由于该文件是opencv_contrib 扩展模块中人脸检测模型:
将路径切换到 /你自己的路径/opencv_contrib-4.4.0/modules/face 在该路径下找到 CMakeLists.txt 文件:
打开该文件,找到以下行(大概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/ 路径下即可,如图:
该过程参考:
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"文件的问题。
解决以上问题方法便是:
find -name test_detectors_regression.impl.hpp
发现这个路径在opencv下的 modules 目录下的:
opencv-4.4.0/modules/features2d/test/test_detectors_regression.impl.hpp
根据报错信息打开test_features2d.cpp
根报错信息将找到的文件绝对路径添加到 51,52行,
此时便可以make 通过。
另外 附上针对该问题的其他解决方式:
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
解决方案:
查看一下版本: 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
参考连接: