1、在GitHub上下载opencv和opencv_contrib源码(两者的版本要一致)https://github.com/opencv,有条件的最好能下载,因为外网速度较快。
2、将下载的opencv和opencv_contrib解压出来(单机右键,选择提取到此处)
3、将解压出来的opencv_contrib文件拷贝到opencv文件中
4、在opencv文件中创建一个 build 文件夹
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
sudo apt install cmake-qt-gui
运行
cmake-gui
1、配置源码路径以及存放编译文件的路径
2、点击configure,如图设置后点击Finish
Configure 结束后,如果 cmake 的主界面仍有红色区域,则再次点击 Configure 进行配置,直到红色区域完全消失。
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的执行器)
(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的内容要如图所示才是正确的。
-------------------------------------------------------之前遇到的错误----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
之前我发现python3的配置内容不全
后来找到图上python2的libraries目录(/usr/lib/x86_64-linux-gnu/),发现没有python3.7的软连接(因为我的执行器是python3.7的)
解决办法是,找到python3.7的库文件所在地,我的是在/home/lin/anaconda3/lib/目录下把下(每个人的anaconda安装位置都可能不同),然后把图中的四个文件链接到/usr/lib/x86_64-linux-gnu/目录下即可。
注意:大家需要根据自己文件的实际位置来修改路径
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文件,重新开始配置(如果不重新来过可能会出错。。。。)
sudo make
网上有的人说可以使用多线程编译来加快编译速度(比如 make -j8
之类的),但是我使用时编译会报错。。。。。所以,我还是老老实实用普通的编译方式吧(编译需要好一会时间)
3、安装
sudo make install
4、测试
pkg-config --modversion opencv
若能输出版本信息,则说明opencv已经安装成功
1、找到opencv安装的位置(在第四步中配置opencv时设置的,找到下图中的文件夹
2、找到python3.7的库文件路径,可以按下图的方式找到路径,从图中我们可以看见库文件的路径为/home/lin/anaconda3/lib/python3.7
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的版本信息
打开anaconda,在Spyder中一样可以调用cv2
1、
sudo gedit /etc/ld.so.conf
在最后加上
include /usr/loacal/lib
注意: /usr/loacal/lib
是你的opencv的安装路径
然后激活修改
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的安装路径
然后激活修改
source /etc/bash.bashrc
3、测试
创建一个文件夹用于存放测试文件
编写一个小程序(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
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