数字图像相关DIC算法,Ubuntu16.04,NcorrC++版本开源代码环境配置流程。
本文介绍C++版本数字图像相关法DIC环境配置过程,配置了好几天,痛苦踩坑经历。
DIC算法、资料、源码、实验过程,链接:http://www.ncorr.com/index.php/dic-algorithms#1_1
Github源码地址:https://github.com/justinblaber/ncorr_2D_cpp
环境配置过程中用到的软件包:https://download.csdn.net/download/qq_39638989/1321863
开始配置环境之前必须先了解:
1、本人用到的环境为ubuntu16.04,其他环境下如:ubuntu18.04,ubuntu20.04还没有成功配置的案例,所以请用ubuntu16.04。
2、环境配置是从干净的ubuntu16.04系统开始配置的,也就是说才安装的系统,没有更新过。更新后的系统大概率会导致环境配置失败(主要是opencv3.0.0安装失败),建议使用虚拟机安装新的系统来配置环境。
3、用到的opencv和官方文档上要求一致,都为opencv3.0.0版本。高版本,如opencv3.4.12亲测编译程序无法通过。
正式开始配置环境:
1、从新的ubuntu16.04开始,首先更换清华软件源。
sudo gedit /etc/apt/sources.list
将以下内容复制到文件的最前面,然后保存。
# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
更新软件源
sudo apt-get update
不要使用sudo apt-get upgrade,否则安装opencv3.0.0会报错。
2、安装opencv3.0.0
首先安装必要的依赖环境
sudo apt-get install build-essential -y
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -y
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev -y
完成后,将提供的opencv源码解压,并且进入到opencv的文件夹,执行以下命令
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
cmake过程中可能会下载 ippicv_linux_20141027.tgz,网络问题会导致下载失败。因此将提供的ippicv_linux_20141027.tgz文件复制到/opencv-3.0.0/3rdparty/ippicv/downloads/linux-8b449a536a2157bcad08a2b9f266828b文件夹下替换已有文件。接下来重新编译和安装
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j8 # runs 8 jobs in parallel
sudo make install
然后配置opencv环境
sudo gedit /etc/ld.so.conf.d/opencv.conf #(可自行创建)
末尾添加一行
/usr/local/lib
sudo ldconfig # 更新一下系统的共享链接库
sudo gedit /etc/bash.bashrc
末尾添加一行
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
3、安装FFTW
首先安装依赖
sudo apt-get install libfftw3-dev -y
然后进入文件夹后一次运行以下命令
./configure
make -j8
sudo make install
4、安装lapack
先安装依赖
sudo apt-get install gfortran
sudo apt-get install libblas-dev liblapack-dev
然后进入lapack文件夹更改文件配置
cp make.inc.example make.inc
编辑Makefile 文件内容,
把
lib: lapacklib tmglib
#lib: blaslib variants lapacklib tmglib
改为:
#lib: lapacklib tmglib
lib: blaslib variants lapacklib tmglib
运行make和配置环境
sudo make -j7
sudo cp *.a /usr/lib/
5、安装libgfortran
sudo apt-get install libgfortran3
6、安装SuiteSparse
先安装依赖,我提供的文件安装如下依赖就行了。其他版本参考网页:https://packages.ubuntu.com/source/xenial/suitesparse
sudo apt-get install libamd2.4.1 libbtf1.2.1 libcamd2.4.1 libccolamd2.9.1 libcholmod3.0.6 libcolamd2.9.1 libcsparse3.1.4 libcxsparse3.1.4 -y
sudo apt-get install libklu1.3.3 libldl2.2.1 libspqr2.0.2 libsuitesparse-dev libsuitesparse-doc libsuitesparseconfig4.4.6 libumfpack5.7.1 -y
然后编译安装
#直接make会报错
make library -j8
sudo make install
7、编译运行dic
具体参考官方文档:http://www.ncorr.com/download/ncorrcppmanual_v1_0_0.pdf
但是需要注意的是,编译dic的过程中,提供的cmake文件无法找到gfortran库
解决方法是将CMakeLists.txt文件中的
FIND_LIBRARY(GFORTRAN_LIBRARY NAMES gfortran)
改为
FIND_LIBRARY(GFORTRAN_LIBRARY NAMES libgfortran.so.3)
即可解决问题。
接下来就可以愉快的开始DIC之旅了。