ubuntu快速安装opencv3 支持c++ 和python
本文不介绍如何编译opencv 而是直接使用编译完后的安装包。详细步骤如下
第一步 确认Ubuntu系统版本信息
uname -a
Linux lid-VirtualBox 4.4.0-142-generic #168~14.04.1-Ubuntu SMP Sat Jan 19 11:26:28 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
第二步 确认gcc 版本
gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.8/lto-wrapper Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.8.4-2ubuntu1~14.04.4'
--with-bugurl=file:///usr/share/doc/gcc-4.8/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++
--prefix=/usr --program-suffix=-4.8 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib
--without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.8
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug -
-enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-libmudflap
--enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk
--enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64/jre
--enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.8-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.8-amd64 --with-arch-directory=amd64
--with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch
--disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu
--target=x86_64-linux-gnu Thread model: posix gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.4)
第三步 下载opencv 编译后的包
insatll 的包树目录如下
lid@lid-VirtualBox:~/localbuild-opencv3/install$ tree -L 3 . ├── bin │ ├── opencv_annotation │ ├── opencv_createsamples │ ├── opencv_interactive-calibration │ ├── opencv_traincascade │ ├── opencv_version │ ├── opencv_visualisation │ └── opencv_waldboost_detector ├── include │ ├── opencv │ │ ├── cvaux.h │ │ ├── cvaux.hpp │ │ ├── cv.h │ │ ├── cv.hpp │ │ ├── cvwimage.h │ │ ├── cxcore.h │ │ ├── cxcore.hpp │ │ ├── cxeigen.hpp │ │ ├── cxmisc.h │ │ ├── highgui.h │ │ └── ml.h │ └── opencv2 │ ├── aruco │ ├── aruco.hpp │ ├── bgsegm.hpp │ ├── bioinspired │ ├── bioinspired.hpp │ ├── calib3d │ ├── calib3d.hpp │ ├── ccalib │ ├── ccalib.hpp │ ├── core │ ├── core.hpp │ ├── cvconfig.h │ ├── datasets │ ├── dnn │ ├── dnn.hpp │ ├── dpm.hpp │ ├── face │ ├── face.hpp │ ├── features2d │ ├── features2d.hpp │ ├── flann │ ├── flann.hpp │ ├── freetype.hpp │ ├── fuzzy │ ├── fuzzy.hpp │ ├── highgui │ ├── highgui.hpp │ ├── imgcodecs │ ├── imgcodecs.hpp │ ├── imgproc │ ├── imgproc.hpp │ ├── line_descriptor │ ├── line_descriptor.hpp │ ├── ml │ ├── ml.hpp │ ├── objdetect │ ├── objdetect.hpp │ ├── opencv.hpp │ ├── opencv_modules.hpp │ ├── optflow │ ├── optflow.hpp │ ├── phase_unwrapping │ ├── phase_unwrapping.hpp │ ├── photo │ ├── photo.hpp │ ├── plot.hpp │ ├── reg │ ├── rgbd │ ├── rgbd.hpp │ ├── saliency │ ├── saliency.hpp │ ├── shape │ ├── shape.hpp │ ├── stereo │ ├── stereo.hpp │ ├── stitching │ ├── stitching.hpp │ ├── structured_light │ ├── structured_light.hpp │ ├── superres │ ├── superres.hpp │ ├── surface_matching │ ├── surface_matching.hpp │ ├── text │ ├── text.hpp │ ├── tracking │ ├── tracking.hpp │ ├── video │ ├── video.hpp │ ├── videoio │ ├── videoio.hpp │ ├── videostab │ ├── videostab.hpp │ ├── xfeatures2d │ ├── xfeatures2d.hpp │ ├── ximgproc │ ├── ximgproc.hpp │ ├── xobjdetect.hpp │ ├── xphoto │ └── xphoto.hpp ├── lib │ ├── libopencv_aruco.a │ ├── libopencv_bgsegm.a │ ├── libopencv_bioinspired.a │ ├── libopencv_calib3d.a │ ├── libopencv_ccalib.a │ ├── libopencv_core.a │ ├── libopencv_datasets.a │ ├── libopencv_dnn.a │ ├── libopencv_dpm.a │ ├── libopencv_face.a │ ├── libopencv_features2d.a │ ├── libopencv_flann.a │ ├── libopencv_freetype.a │ ├── libopencv_fuzzy.a │ ├── libopencv_highgui.a │ ├── libopencv_imgcodecs.a │ ├── libopencv_imgproc.a │ ├── libopencv_line_descriptor.a │ ├── libopencv_ml.a │ ├── libopencv_objdetect.a │ ├── libopencv_optflow.a │ ├── libopencv_phase_unwrapping.a │ ├── libopencv_photo.a │ ├── libopencv_plot.a │ ├── libopencv_reg.a │ ├── libopencv_rgbd.a │ ├── libopencv_saliency.a │ ├── libopencv_shape.a │ ├── libopencv_stereo.a │ ├── libopencv_stitching.a │ ├── libopencv_structured_light.a │ ├── libopencv_superres.a │ ├── libopencv_surface_matching.a │ ├── libopencv_text.a │ ├── libopencv_tracking.a │ ├── libopencv_video.a │ ├── libopencv_videoio.a │ ├── libopencv_videostab.a │ ├── libopencv_xfeatures2d.a │ ├── libopencv_ximgproc.a │ ├── libopencv_xobjdetect.a │ ├── libopencv_xphoto.a │ ├── pkgconfig │ │ └── opencv.pc │ ├── python2.7 │ │ └── dist-packages │ └── python3.4 │ └── dist-packages └── share └── OpenCV ├── 3rdparty ├── haarcascades ├── lbpcascades ├── OpenCVConfig.cmake ├── OpenCVConfig-version.cmake ├── OpenCVModules.cmake └── OpenCVModules-release.cmake 52 directories, 108 files
ubuntu-opencv3.4-install.tar.gz大小:64MB | 来源:百度网盘
已经过安全软件检测无毒,请您放心下载。
提取码[lv]8su9[/lv]
第四步 python支持
cd install/lib sudo cp python2.7/dist-packages/cv2.so /usr/local/lib/python2.7/dist-packages/
ldconfig
这样便可以支持opencv python2.7 版本
sudo cp python3.4/dist-packages/cv2.cpython-34m.so /usr/local/lib/python3.4/dist-packages/
ldconfig
这样便可以支持opencv python3.4 版本。
注意:
dist-packages:系统自带的python
site-packages:自己安装的python
这里只编译了Ubuntu自带的python 程序。
第五步测试
lid@lid-VirtualBox:~/localbuild-opencv3/install/lib$ python3.4 Python 3.4.3 (default, Nov 12 2018, 22:25:49) [GCC 4.8.4] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import cv2 >>> print(cv2.__version__) 3.2.0 >>>
第六步 c++
将usr lib的头文件和库分别拷贝到 /usr/locl/lib include 下便可以使用c++版本。