编译、使用OpenCV时遇到的各种坑。

OpenCV3的编译:

正常的opencv3的编译命令:

1
2
3
4
5
6
7
8
9
10
cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_QT=ON \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D BUILD_opencv_python2=ON \
-D PYTHON2_LIBRARY=/usr/local/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib \
-D PYTHON2_INCLUDE_DIR=/usr/local/Frameworks/Python.framework/Versions/2.7/include/python2.7 \
-D PYTHON2_EXECUTABLE=/usr/local/bin/python \
-D BUILD_opencv_python3=ON \
-D PYTHON3_LIBRARY=/usr/local/Frameworks/Python.framework/Versions/3.6/lib/libpython3.6.dylib \
-D PYTHON3_INCLUDE_DIR=/usr/local/Frameworks/Python.framework/Versions/3.6/include/python3.6m \
-D PYTHON3_EXECUTABLE=/usr/local/bin/python3 ..
  • CMAKE_BUILD_TYPE: 编译的风格,有RELEASEDEBUG两种模式可选,RELEASE的速度更快。
  • CMAKE_INSTALL_PREFIX: 安装的目录,执行make install时,文件将被拷贝到该目录。
  • BUILD_opencv_python2: 是否编译供python2使用的扩展库。
  • PYTHON2_LIBRARY: python2的库文件,如果是python2.7的话就是libpython2.7.*(根据平台不同后缀名会不同)。
  • PYTHON2_INCLUDE_DIR: 指向python的头文件目录,该目录下应该包含Python.h文件。
  • PYTHON_EXECUTABLE: python的可执行文件。