目录
说在前面
- 操作系统:ubuntu 16.04
- opencv版本:github default
- opencv contrib版本:github default
- glfw版本:3.3.4
- 原理部分:【OpenCV&OpenGL&Marker-based AR】原理部分
- 其他
1.linux版本有个好处,就是只要有代码就行,不像windows,要拿个vs;但是也有坏处,opencv你要自己编,不像windows,可以用别人编好的库。
2.我也尝试过在linux把opencv编译成静态库,但是放到其它机器上依旧运行不了,因为opencv静态库还是会依赖一些动态库,比如libpng之类的,真的难受。除非你把opencv依赖的库全部整成静态的。
3.如果你的操作系统是archlinux,例如manjaro,那么装opencv将很方便。
4.代码以及目录结构重新整理了下,这样更清晰点。
编译OpenCV
# 目录结构
#├── project
#│ ├── libcv
#│ ├── opencv
#│ └── opencv_contrib
# 创建opencv编译库目录
# 安装git
sudo apt-get install git
# 准备源码 或者使用gitee https://gitee.com/mirrors/opencv.git
git clone https://github.com/opencv/opencv.git
# https://gitee.com/mirrors/opencv_contrib.git
git clone https://github.com/opencv/opencv_contrib.git
# 编译准备
cd opencv
mkdir build && cd build
# cmake参数
cmake \
-D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=~/project/libcv \
-D OPENCV_EXTRA_MODULES_PATH=~/project/opencv_contrib/modules \
-D WITH_TBB=ON -D WITH_OPENMP=ON -D WITH_IPP=ON \
-D WITH_OPENGL=ON -D WITH_EIGEN=ON \
-D OPENCV_ENABLE_NONFREE=ON \
-D BUILD_SHARED_LIBS=OFF ..
# 编译
make -j8
# 安装
make install
安装OpenGL
GLFW
GLAD
GLM
代码
- github
- 目录结构
./project
├── demo_cube # demo目录 对应github代码中的Cube Demo Linux
│ ├── bin # camera.yml文件存放目录
│ ├── CMakeLists.txt # cmake文件
│ ├── include # 头文件目录
│ ├── shader # shader文件目录
│ └── src # 源代码目录
├── glfw # glfw源代码目录
├── glm # glm源代码目录
├── libcv # opencv安装目录
│ ├── bin
│ ├── include
│ ├── lib
│ └── share
├── libglfw # glfw安装目录
│ ├── include
│ └── lib
├── opencv # opencv源代码
└── opencv_contrib
- 在准备好
opencv
以及opengl
部分后,先校准相机得到相机参数文件,替换./demo_cube/bin/camera.yml
cd demo_cube
cmake .
make
./Demo
- 有问题请在评论区指出
结果