Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)

目录

  • 一、准备opencv和opencv-contrib
  • 二、安装依赖库
  • 三、安装cmake-gui
  • 四、配置opencv编译选项
  • 五、编译opencv
  • 五、python环境配置
  • 六、C++环境配置
  • 参考链接

本机的python环境在安装anaconda的时候就已经安装好了,因此无需再配置python环境。
本文安装的是opencv3.4.5版本,对于其他版本具有一定的参考意义

一、准备opencv和opencv-contrib

1、在GitHub上下载opencv和opencv_contrib源码(两者的版本要一致)https://github.com/opencv,有条件的最好能下载,因为外网速度较快。
2、将下载的opencv和opencv_contrib解压出来(单机右键,选择提取到此处)
3、将解压出来的opencv_contrib文件拷贝到opencv文件中
4、在opencv文件中创建一个 build 文件夹
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第1张图片

二、安装依赖库

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
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install ffmpeg
sudo apt-get install libgtk-3-dev

三、安装cmake-gui

sudo apt install cmake-qt-gui

运行

cmake-gui

四、配置opencv编译选项

1、配置源码路径以及存放编译文件的路径
在这里插入图片描述
2、点击configure,如图设置后点击Finish
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第2张图片
Configure 结束后,如果 cmake 的主界面仍有红色区域,则再次点击 Configure 进行配置,直到红色区域完全消失。
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第3张图片
3、红色区域消失后,进行下一步配置
(1)在 CMAKE_BUILD_TYPE 值处选择 Release
(2)CMAKE_INSTALL_PREFIX 选择安装的路径
(3)在 OPENCV_EXTRA_MODULES_PATH 处,为其设置 opencv_contrib 的路径,精确到 /modules 目录
(4)勾选 OPENCV_PYTHON3_VERSION
(5)把python2的执行器去掉(目的是使用python3的执行器)
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第4张图片
(6) 勾选 OPENCV_GENERATE_PKGCONFIG
(7)输入CL,分别将WITH_OPENCL, WITH_OPENCLAMDBLAS, WITH_OPENCLAMDFFT, OPENCL_FOUND的勾去掉,不采用OpenCL的GPU加速;
(8)输入matlab,相关的去掉;
(9)输入WITH_IPP,去掉;
(10)输入TIFF,还有其他的jpeg,png之类都选上;
(11)添加选项ENABLE_CXX11,支持C++11;
4、点击Configure,直至没有红色区域出现,然后点击Generate
ps:配置输出信息中,python2和python3的内容要如图所示才是正确的。
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第5张图片
-------------------------------------------------------之前遇到的错误----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
之前我发现python3的配置内容不全
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第6张图片
后来找到图上python2的libraries目录(/usr/lib/x86_64-linux-gnu/),发现没有python3.7的软连接(因为我的执行器是python3.7的)
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第7张图片
解决办法是,找到python3.7的库文件所在地,我的是在/home/lin/anaconda3/lib/目录下把下(每个人的anaconda安装位置都可能不同),然后把图中的四个文件链接到/usr/lib/x86_64-linux-gnu/目录下即可。
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第8张图片
注意:大家需要根据自己文件的实际位置来修改路径

sudo ln -s /home/lin/anaconda3/lib/libpython3.7m.a /usr/lib/x86_64-linux-gnu/libpython3.7m.a
sudo ln -s /home/lin/anaconda3/lib/libpython3.7m.so.1 /usr/lib/x86_64-linux-gnu/libpython3.7m.so.1
sudo ln -s /home/lin/anaconda3/lib/libpython3.7m.so.1.0 /usr/lib/x86_64-linux-gnu/libpython3.7m.so.1.0
sudo ln -s /home/lin/anaconda3/lib/libpython3.7m.so /usr/lib/x86_64-linux-gnu/libpython3.7m.so

软连接设置好后,关闭cmake-gui,删除之前的opencv文件夹,然后重新解压出新的opencv文件,重新开始配置(如果不重新来过可能会出错。。。。)

五、编译opencv

1、终端进入到build文件目录下
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第9张图片
2、编译

sudo make

网上有的人说可以使用多线程编译来加快编译速度(比如 make -j8之类的),但是我使用时编译会报错。。。。。所以,我还是老老实实用普通的编译方式吧(编译需要好一会时间)
3、安装

sudo make install

4、测试

pkg-config --modversion opencv

若能输出版本信息,则说明opencv已经安装成功

五、python环境配置

1、找到opencv安装的位置(在第四步中配置opencv时设置的,找到下图中的文件夹
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第10张图片
2、找到python3.7的库文件路径,可以按下图的方式找到路径,从图中我们可以看见库文件的路径为/home/lin/anaconda3/lib/python3.7
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第11张图片
3、将cv2链接到python3.7的库文件路径中

sudo ln -s /usr/local/lib/python3.7/site-packages/cv2 /home/lin/anaconda3/lib/python3.7/cv2

4、测试

python
import cv2
print(cv2.__version__)

从下图可以看出,python能正确打印出opencv的版本信息
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第12张图片
打开anaconda,在Spyder中一样可以调用cv2
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第13张图片

六、C++环境配置

1、

sudo gedit /etc/ld.so.conf

在最后加上

include /usr/loacal/lib

注意: /usr/loacal/lib是你的opencv的安装路径
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第14张图片
然后激活修改

sudo ldconfig

2、

sudo gedit /etc/bash.bashrc

在最后加面上

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig 
export PKG_CONFIG_PATH

注意: /usr/loacal/lib是你的opencv的安装路径
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第15张图片
然后激活修改

source /etc/bash.bashrc

3、测试
创建一个文件夹用于存放测试文件
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第16张图片
编写一个小程序(show.cpp)

#include 
using namespace cv;

int main()
{
	Mat src = imread("./1.png");
	imshow("test",src);
	waitKey(0);
	return 0;

}

终端进入到测试文件夹目录下进行编译

g++ show.cpp -o test `pkg-config --cflags --libs opencv`

执行

./test

Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第17张图片
测试结果
Ubuntu下源码安装opencv3.4.5至anaconda(支持python3 、Python2、C++)_第18张图片

参考链接

https://blog.csdn.net/luteresa/article/details/79916064
https://blog.csdn.net/u011897411/article/details/89743448
https://blog.csdn.net/pursuit_zhangyu/article/details/78751416
https://blog.csdn.net/ws995339251/article/details/86013581
https://blog.csdn.net/sizhi_xht/article/details/80964099
https://www.bbsmax.com/A/rV57pxjRdP/
https://www.cnblogs.com/Penn000/p/6790504.html
https://blog.csdn.net/cv_you/article/details/77341631
https://blog.csdn.net/u011897411/article/details/89743448#C__159

你可能感兴趣的:(Ubuntu)