Linux学习笔记(三)源码编译OpeCV&PCL

1、源码编译OpeCV

opencv—GitHub

opencv_contrib-GitHub

opencv-releases

opencv_contrib-releases

1.1、下载源码

mkdir ~/opencv_env;cd ~/opencv_env
git clone -b 3.4 https://github.com/opencv/opencv.git
git clone -b 3.4 https://github.com/opencv/opencv_contrib.git
# 将这两个文件拷贝到opencv_env路径下
opencv-3.4.9.zip
opencv_contrib.tar.gz
# 使用tar -zxvf 将上述两个文件进行解压

1.2、安装依赖

  • 安装依赖库
sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev libv4l-dev python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev gtk-3.0-dev libatlas-base-dev gfortran

创建文件夹

cd opencv-3.4.9 && mkdir build && cd build

1.3、配置

cmake -D CMAKE_BUILD_TYPE=Release -D BUILD_opencv_python2=OFF -D BUILD_opencv_python3=ON -D CMAKE_INSTALL_PREFIX=~/software/opencv_lib -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=~/software/opencv_env/opencv_contrib-3.4.9/modules -D BUILD_EXAMPLES=ON ..

1.4、编译

make -j8

1.5、安装

sudo make install

2、其他问题

2.1、手动安装ippicv

在安装opencv4.1.0时,卡在

IPPICV: Download: ippicv_2019_lnx_intel64_general_20180723.tgz

这个应该是编译opencv源码的通用问题,主要是网络问题,无法下载ippicv包,这里提供一个手动寻找安装包的方式,步骤如下:

2.1.1、获取ippicv的下载地址

首先打开opencv-x.x.x\3rdparty\ippicv\ippicv.cmake文件,分别找到如下语句

set(IPPICV_COMMIT "32e315a5b106a7b89dbed51c28f8120a48b368b4")
"${OPENCV_IPPICV_URL}"
                "$ENV{OPENCV_IPPICV_URL}"
                "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
    if(X86_64)
      set(OPENCV_ICV_NAME "ippicv_2019_lnx_intel64_general_20180723.tgz")
      set(OPENCV_ICV_HASH "c0bd78adb4156bbf552c1dfe90599607")                 

拼接关键句,获得ippicv_2019_lnx_intel64_general_20180723.tgz的下载地址

https://raw.githubusercontent.com/opencv/opencv_3rdparty/32e315a5b106a7b89dbed51c28f8120a48b368b4/ippicv/ippicv_2019_lnx_intel64_general_20180723.tgz
2.1.2、下载ippicv

ippicv_2019_lnx_intel64_general_20180723.tgz

2.1.3、修改 ippicv.cmake

将如下

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

中的

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

修改为ippicv安装包所在本地路径

"file:///home/student/SFDN/Downloads"
2.1.4、编译opencv
cmake -D OPENCV_ENABLE_NONFREE=ON CMAKE_INSTALL_PREFIX=~/software/opencv_lib ..

2.2、缺少库

Looking for ccache - not found
# sudo apt install ccache
Could NOT find Jasper (missing:  JASPER_LIBRARIES JASPER_INCLUDE_DIR)
# sudo apt install libjasper1 libjasper-dev
No package 'libavresample' found
# apt-get install libavresample-dev
No package 'libgphoto2' found
# apt-get install libgphoto2-dev
Could not find OpenBLAS include. Turning OpenBLAS_FOUND off
Could not find OpenBLAS lib. Turning OpenBLAS_FOUND off
# apt install libopenblas-base libopenblas-dev
Could NOT find Atlas (missing:  Atlas_CLAPACK_INCLUDE_DIR)
# sudo apt install libatlas-base-dev
Could NOT find Doxygen (missing:  DOXYGEN_EXECUTABLE)
# sudo apt install doxygen
Could NOT find JNI (missing:  JAVA_INCLUDE_PATH
# sudo apt install openjdk-8-jdk
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
no package 'gstreamer-video' found
# sudo apt-get install libgstreamer-plugins-base1.0-dev
No package ‘gtk+-3.0’ found
# sudo apt-get install libgtk-3-dev
 Could NOT find HDF5 (missing: HDF5_LIBRARIES HDF5_INCLUDE_DIRS)
 # sudo apt install libhdf5-dev
  Failed to find gflags
 # sudo apt install libgflags-dev 
 Failed to find glog 
 # sudo apt install libgoogle-glog-dev
 Checking for module 'tesseract'
  No package 'tesseract' found
Tesseract:   NO
 # sudo apt install tesseract-ocr
 # sudo apt install libtesseract-dev
 "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so" but this file does not exist.
 # sudo apt-get install libvtk6-dev python-vtk6
 #sudo update-alternatives --install /usr/bin/vtk vtk /usr/bin/vtk6 10
 # sudo ln -s /usr/lib/python2.7/dist-packages/vtk/libvtkRenderingPythonTkWidgets.x86_64-linux-gnu.so /usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so

2.3、face_landmark_model.dat

# 下载face_landmark_model.dat
https://raw.githubusercontent.com/opencv/opencv_3rdparty/8afa57abc8229d611c4937165d20e2a2d9fc5a12/face_landmark_model.dat
# 修改相应的配置文件
vim opencv_contrib4.1.1/modules/face/CMakeLists.txt
#"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${__commit_hash}/"
# "file:~/Downloads/"

2.4、缺少boostdesc_bgm.i文件

将以下文件下载到 opencv_contrib/modules/xfeatures2d/src/

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/下新建一个create.sh,内容如下:

#!/bin/bash
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_lbgm.i --no-check-certificate
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_256.i --no-check-certificate
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_128.i --no-check-certificate
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_binboost_064.i --no-check-certificate
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_hd.i --no-check-certificate
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm_bi.i --no-check-certificate
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/34e4206aef44d50e6bbcd0ab06354b52e7466d26/boostdesc_bgm.i --no-check-certificate
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i --no-check-certificate
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_64.i --no-check-certificate
wget https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_48.i --no-check-certificate

执行即可

sudo sh create.sh

2.5、添加一个错误

当编译到99%的时候…可能会出现:

modules/python2/CMakeFiles/opencv_python2.dir/build.make:300: recipe for target 'modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o' failed
make[2]: *** [modules/python2/CMakeFiles/opencv_python2.dir/__/src2/cv2.cpp.o] Error 
解决方法:locate找到hdf5.h   
在/usr/include/hdf5/serial/hdf5.h
在opencv_contrib-4.1.1/modules/hdf/include/opencv2/hdf/hdf5.hpp 文件中修改第40行
添加#include "/usr/include/hdf5/serial/hdf5.h" 

3、源码编译PCL

pcl

3.1、下载源码:

git clone https://github.com/PointCloudLibrary/pcl.git

安装依赖

sudo apt-get install git build-essential linux-libc-dev cmake cmake-gui libusb-1.0-0-dev libusb-dev libudev-dev mpi-default-dev openmpi-bin openmpi-common libpcap-dev libflann1.9 libflann-dev libeigen3-dev libboost-all-dev vtk6 libvtk6.3 libvtk6-dev libvtk6.3-qt libvtk6-qt-dev libqhull* libgtest-dev freeglut3-dev pkg-config libxmu-dev libxi-dev mono-complete libopenni-dev libopenni2-dev

创建文件夹

cd pcl && mkdir release && cd release

3.2、配置

cmake -DCMAKE_BUILD_TYPE=None -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_GPU=ON -DBUILD_apps=ON -DBUILD_examples=ON -DBuild_visualization=ON ..

编译

make -j8

3.3、安装

sudo make install

测试

pcl_viewer ../test/pcl_logo.pcd

3.4、卸载

sudo make uninstall
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值