linux下源码安装opencv-python

来源:互联网 发布:windows白色骷髅头病毒 编辑:程序博客网 时间:2024/05/15 06:36

最近在linux上安装opencv,踩了不少坑,记录一下

1.首先,安装依赖包
必需的包,(We need CMake to configure the installation, GCC for compilation, we need GTK support for GUI features, Camera support (libv4l), Media Support (ffmpeg, gstreamer) etc):
ubuntu:
sudo apt-get install cmake
sudo apt-get install gcc gcc-c++
sudo apt-get install libgtk-3-dev
sudo apt-get install libv4l-dev
sudo apt-get install ffmpeg
sudo apt-get install libgstreamer1.0-dev libgstreamer-plugins-good1.0-dev libgstreamer-plugins-base1.0-dev libgstreamer-plugins-bad1.0-dev
sudo apt-get install libdc1394-22-dev

centos:
yum install cmake
yum install gcc gcc-c++
yum install gtk2-devel
yum install libdc1394-devel
yum install libv4l-devel
yum install ffmpeg-devel
yum install gstreamer-plugins-base-devel
可选的包如下(OpenCV comes with supporting files for image formats like PNG, JPEG, JPEG2000, TIFF, WebP etc. But it may be a little old. If you want to get latest libraries, you can install development files for these formats):
ubuntu:
sudo apt-get install libpng-dev
sudo apt-get install libjpeg-dev
sudo apt-get install jasper
sudo apt-get install openexr
sudo apt-get install libtiff-dev
sudo apt-get install libwebp-dev
centos:
yum install libpng-devel
yum install libjpeg-turbo-devel
yum install jasper-devel
yum install openexr-devel
yum install libtiff-devel
yum install libwebp-devel

yum install tbb-devel
yum install eigen3-devel
yum install doxygen

2.安装anaconda,可以管理多个python环境

3.下载opencv源码并解压,得到文件夹比如opencv3.3.0,进入此文件夹,并新建build文件夹
$mkdir build

$ cd build

此时要进行cmake配置

$ cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/home/zjw/anaconda3 \
-D PYTHON3_EXECUTABLE=/home/zjw/anaconda3/bin/python3 \
-D PYTHON3_INCLUDE_DIR=/home/zjw/anaconda3/include/python3.6m \
-D PYTHON3_LIBRARY=/home/zjw/anaconda3/lib/libpython3.6m.so \
-D PYTHON3_PACKAGES_PATH=/home/zjw/anaconda3/lib/python3.6/site-packages \
-D PYTHON3_NUMPY_PATH=/home/zjw/anaconda3/lib/python3.6/site-packages \
-D PYTHON3_NUMPY_INCLUDE_DIRS=/home/mart_srd/zhujunwei/anaconda3/lib/python3.6/site-packages/numpy/core/include \
-D BUILD_opencv_python3=ON \
-D BUILD_opencv_python2=OFF \
-D BUILD_TIFF=ON \
-D BUILD_opencv_java=OFF \
-D WITH_CUDA=OFF \
-D WITH_OPENGL=ON \
-D WITH_OPENCL=ON \
-D WITH_IPP=ON \
-D WITH_TBB=ON \
-D WITH_EIGEN=ON \
-D WITH_V4L=ON \
-D WITH_VTK=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_PERF_TESTS=OFF ..

cmake命令的格式为cmake [-D flag] [-D flag] ..
配置过程中可能要下载ippicv_2017u2_lnx_intel64_20170418.tgz这个文件,可以到opencv3.3.0/3rdparty/ippicv/下找到ippicv.cmake,打开后根据对应版本找到这个文件的下载路径,下载后替换到opencv3.3.0/.cache/ippicv/下,并改成对应的文件名。
由于camke涉及多处查找命令,可用python中自带的查找位置的命令,进入对应的python环境:
PYTHON_INCLUDE_DIR:
from distutils.sysconfig import get_python_inc
print(get_python_inc())

PYTHON_PACKAGES_PATH:
from distutils.sysconfig import get_python_lib
print(get_python_lib())

CMAKE_INSTALL_PREFIX:
import sys
print(sys.prefix)

PYTHON_NUMPY_PATH:
import numpy
print numpy.file

运行后,若没有错误,进行编译安装,安装目录为CMAKE_INSTALL_PREFIX指定的目录
make -j4
make install

4.安装完成后,需要将cv2.so(有可能是cv2*.so)放到对应python环境的site-package中,或者设置python环境变量
export PYTHONPATH=$PYTHONPATH:(动态库的位置)
最后检查一下是否成功:
import cv2
print(cv2.version)

原创粉丝点击