opencv 编译记录
来源:互联网 发布:linux 设置命令别名 编辑:程序博客网 时间:2024/05/19 03:16
想在linux终端上编译安装opencv3.3.0,于是搜索各方面教程,折腾了两天,总算是大概了解了如何编译安装,记录于此文,或许各位道友可以有所借鉴
下载并解压
下载源码opencv3.3.0(github)
wget https://codeload.github.com/opencv/opencv/tar.gz/3.3.0)tar -xvf xxxxx.gz
-模块opencv_contrib
wget https://codeload.github.com/opencv/opencv_contrib/tar.gz/3.3.0tar -xvf xxxxx.gz
- 安装依赖
从各个网站参考了一些依赖文件,并根据cmake时缺少的一些依赖整合如下:
sudo apt-get install \ libopencv-dev \ build-essential \ checkinstall \ cmake \ pkg-config \ yasm \ libjpeg-dev \ libpng-dev \ libgphoto2-dev \ libtiff5-dev \ libjasper-dev \ libavcodec-dev \ libavformat-dev \ libwebp-dev \ libswscale-dev \ libdc1394-22-dev \ libxine2-dev \ libgstreamer0.10-dev \ libgstreamer-plugins-base0.10-dev \ libv4l-dev \ python-dev \ python-numpy \ libtbb-dev \ libqt4-dev \ libgtk2.0-dev \ libfaac-dev \ libmp3lame-dev \ libopencore-amrnb-dev \ libopencore-amrwb-dev \ libtheora-dev \ libvorbis-dev \ libxvidcore-dev \ x264 \ v4l-utils \ ffmpeg \ gstreamer-plugins-base-devel \ cmake \ qt5-default \ checkinstall
- cmake生成makefile
cd opencv3.3.0mkdir buildcd build cmake -D CMAKE_BUILD_TYPE=RELEASE \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D INSTALL_C_EXAMPLES=ON \ -D INSTALL_PYTHON_EXAMPLES=ON \ -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \ -D BUILD_EXAMPLES=ON ..
注意!生成makefile时要注意看cmake执行过程 可能会提示某些依赖找不到 就去查看能不能使用apt-get install xxx 把缺少的依赖补上
然后注意cmake执行最后提示成功或者失败!
我遇到以下两种:
//估计是失败了-- Configuring incomplete, errors occurred!See also "/home/walker/opencv-3.3.0/build/CMakeFiles/CMakeOutput.log".See also "/home/walker/opencv-3.3.0/build/CMakeFiles/CMakeError.log".
//大概正常 即可执行下一步骤 后面出任何问题都得回头看是不是这里有问题-- Configuring done-- Generating done -- Build files have been written to: /home/walker/opencv-3.3.0/build
cd opencv3.3.0mkdir buildcd build ##在解压的opencv3.3.0下面新建build目录存放编译信息cmake -D CMAKE_BUILD_TYPE=RELEASE \ ##编译release版本 '\'是换行的意思 因为这一段代码是一条命令 -D CMAKE_INSTALL_PREFIX=/usr/local \ ##安装目录 默认 -D INSTALL_C_EXAMPLES=ON \ ##c模块 -D INSTALL_PYTHON_EXAMPLES=ON \ ##python模块 -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \ ##额外模块 修改为下载的opencv_contrib所在路径 或者不要这个参数 -D BUILD_EXAMPLES=ON .. ##注意最后有两个点 表示编译的原文件夹为当前路径的父目录
- make
make -j4
make -j4 ##-j4表示使用4核心?还是4线程?或者4进程同时并发编译来着 可以不写
- make install 安装
make install
- 配置python 模块导入 事实上我并没有用这一步
这个配置就是 让python能够找到这个模块
根据官方Fedora安装教程有两种方式 任选其一
需要注意:以下路径可能因为系统版本不同 python安装路径不同 cmake编译配置不同 而变动 需要确认路径并修改
方式1: 复制cv2.so
su mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/site-packages
方式2:添加环境变量
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
测试
pythonimport cv2报错!!!!!!!!!!Traceback (most recent call last): File "<stdin>", line 1, in <module>ImportError: libopencv_reg.so.3.3: cannot enable executable stack as shared object requires: Invalid argument
这问题找了很久
最后在overflow上看到一个方案
https://stackoverflow.com/questions/39136040/python3-4-error-cannot-enable-executable-stack-as-shared-object-requires-inva
sudo apt-get install execstacksudo execstack -c /usr/local/lib/libopencv_*pythonimport cv2'3.3.0'
Ok !
阅读全文