Linux下opencv配置及多版本切换讲解
anaconda安装opencv,配置caffe:
conda install --channel https://conda.anaconda.org/menpo opencv3 将会安装2.XX和3.XX版本
import cv2
print cv2.__version__可查看opencv版本
ctrl+D退出终端的import环境
pycharm用caffe:
import sys
sys.path.append('/home/hpc/caffe/python') #添加caffe根目录下的python路径,按照自己的路径进行更改
import caffe
protoc --version #查看protobuf安装版本
编译opencv:
use `pkg-config` to specify OpenCV library paths??
一般使用
$ mkdir build
$ cd build//进入目录,防止污染,创建build文件
$ cmake .. // .. 表示CMakeLists.txt文件在build的上一层目录, cmake 生成makefile文件(用cmake命令对相关 的变量值进行配置)
$ make //编译、链接、生成可执行文件等
编译官网正常版本:会生成python接口的opencv
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv2 -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON WITH_QT=ON ..
编译带contrib版本:
注意根据错误模块设置了WITH_MATLAB=OFF,如果看不出来,可以去cmake-gui生成makefile文件;
没编译Python版本,系统默认用的是自带Python,用anaconda安装带contrib模块,则用cmake-gui比较好!一项项配置比较好!
$ cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3_contrib -D OPENCV_EXTRA_MODULES_PATH=/home/sunlibo/opencv3-contrib/opencv/opencv_contrib/modules/ -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_MATLAB=OFF -D BUILD_EXAMPLES=ON -D WITH_QT=ON ..
$ sudo make
$ sudo make install
重要:cmake中的..即代表在当前目录编译而所需的 CMakeLists.txt!!!
其中编译类型(DEBUG/RELEASE),对相关语言、环境的支持(如QT,Python)
其中生成的文件在bulid中,而生成的CMakeList.txt文件在上一级文件中;
其中-D OPENCV_EXTRA_MODULES_PATH=/home/sunlibo/opencv3_contrib/opencv/opencv_contrib/modules/ 是指将要install的路径,一般默认为 /usr/local,这里是指定的opencv的安装路径;
其中 -D OPENCV_EXTRA_MODULES_PATH=/home/sunlibo/libo_opencv3/opencv_contrib/modules/ 是指 opencv_contrib中 modules 所在的路径,最后面的两点不可省略;
opencv安装测试及版本查看:
pkg-config --modversion opencv 查看opencv安装的版本
import cv2 && print(cv2.__version__)验证anaconda2/Python连接的opencv版本
opencv多版本切换:
过修改.bashrc文件来设置PKG_ CONFIG_PATH 和 LD_LIBRARY_PATH的路径来选择对应的opencv版本,如:
export PKG_CONFIG_PATH=/usr/local/opencv/3.10/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/opencv/3.10/lib
具体还是要在CMakeList.txt中指定要找的opencv的目录
clion等平台配置CmakeLists.txt,切换多版本的方法:
set(OpenCV_DIR /usr/local/opencv3_contrib/share/OpenCV)#因为每一个安装的opencv都带有share文件夹,find_package可自动找到对应的库opencv对应的include和lib等文件,默认下是去/usr/local/share下的OpenCV中查找cmake脚本命令
find_package(OpenCV REQUIRED)
卸载opencv:
cd /home/sunlibo/opencv/build
make uninstall//卸载掉配置路径中的文件
sudo rm -r build//删除build文件
//删除掉环境中有关的其余包
sudo rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv*
cd /home/sunlibo
chmod a+x opencv//给opencv权限
rm -rf opencv//r为递归删除,f为强制删除。如果删除还是有文件权限不够,可以继续给相应文件权限,chomd a+x 文件名