我是新系统,电脑上的python是2.7的。一般安装anaconda都使用python3的,因为python2和python3的数据结构不兼容,所以如果要使用python3调用opencv需要先安装python3的python版本.
编译opencv前
- python要安装3.0的版本,可以自己在终端输入查看。如果不使用python调用,则无所谓
pkg-config --modversion opencv
- 不要安装anaconda,否则有问题
下载和编译opencv
在github上下载源码
安装依赖项
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
- 解压和放置
将下载好的 opencv3.4.3 文件解压,我复制到了 home 目录下
将opencv_contrib3.4.2 文件提取到 opencv 目录下一个名为 opencv_contrib 的文件夹(自己新建的)中
在 opencv 目录下新建一个文件夹build,进入build目录,执行 cmake 生成makefile 文件
cd ~/opencv-3.4.3/build
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=~/opencv-3.4.3/opencv_contrib/modules/ ..
/usr/local 是指默认将要 install 的路径
OPENCV_EXTRA_MODULES_PATH=~/opencv-3.4.3/opencv_contrib/modules/ .. 是指 opencv_contrib3.4.2 中 modules所在的路径,后面的两点不可省略
- 编译
sudo make
sudo make install
在make时会出现在下载某个文件时停顿,因为下载不了。这时你需要自己下载并放到制定的文件夹下。下载地址(http类型)和本地存放地址依据是build\CMakeFiles
下面的CMakeOutput.log
或者CMakeError.log
。在log
文件的后面就算要执行的下载动作,我们可以直接通过浏览器下载,然后保存到需要他的地方。我的有这些文件+地标文件(我忘记放到那里了),下载之后放到指定的文件夹下
验证
blockcodes
的c++调用python
的调用:python命令行下import cv2
anaconda的使用
把/usr/local/lib/python3.X/dite-packages/cv2.so复制到anaconda对应目录下
这一步我是没有验证的,因为我编译openc的时候是python2.7,anaconda是3.6,所以我的出现了undefined symbol: PyCObject_Type
。那我就不用python调用opencv好了。