以前讲过如何在Windows下安装配置opencv,最近有朋友在问linux下怎么安装配置OpenCV。最后有windows下已经编译好的opencv下载地址和Linux下包括opencv以及扩展库的下载地址,缺少的第三方库也已经放在了指定位置,直接编译就可以,今天就把完整的安装配置过程写下来,供需要的人参考。在此以ubuntu18.04和OpenCV4.1.0作为示例,其它版本的安装与此类似。安装方法参考了网上其它教程,然后自己经过实践安装,证明安装过程没有问题,配置好之后可以使用。
第一步,ubuntu的软件源建议更换为国内的,如清华、阿里等ubuntu默认是国外的软件源,不更换下载速度可能很慢。然后可以将系统进行更新,在ubuntu终端输入下面命令:
sudo apt-get update
sudo apt-get upgrade
第二步,安装一些依赖项。依次在终端执行下列命令:
sudo add-apt-repository “deb http://security.ubuntu.com/ubuntu xenial-security main”
sudo apt update
sudo apt install libjasper1 libjasper-dev
sudo apt-get install libgtk-3-dev libgtk2.0-dev pkg-config
sudo apt-get install build-essential
sudo apt-get install cmake libgtk-3-dev libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python3-dev python3-numpy python-dev python-numpy libpython3.6-dev libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libjasper-dev libdc1394-22-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libopenexr-dev
sudo apt-get install libxvidcore-dev libx264-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install ffmpeg
第三步,安装cmake-gui。对于从windows转向linux的人而言,可能看到界面比看控制台终端黑屏幕更加习惯,所有安装cmake-gui。否则,直接在终端执行安装也可以。这里以cmake-gui为例,说明怎么编译OpenCV。在终端输入如下命令安装cmake-gui:
sudo apt-get install cmake-gui
第四步,下载和解压opencv4.1.0和opencv_contrib-4.1.0。需要注意的是,在编译的时候,第三方库需要下载,但是对应的网站国内打不开,所以,可以先下载下来,放在指定的位置,然后在对应的cmake文件中修改下载地址为本地电脑上放置的位置。我已经把下载好的文件一起放在opencv4.1.0和opencv_contrib-4.1.0对应的文件夹下了,完整的安装文件压缩包放在网盘上了,里面已经包含了对应的第三方库。有需要的可以联系,自行下载使用。
第五步,可以专门建立一个文件夹build,用于放置编译文件。然后进入build文件夹,打开终端,输入命令:
cmake-gui
上面命令将打开cmake-gui界面后。然后选择opencv源文件的位置和编译文件放置位置,点击下面的“Configure”按钮。具体见图1。
图1 第一次配置
图1是打开cmake-gui后,选择址opencv源文件路径和编译文件路径,点击“Configure”按钮的结果。
第六步,修改一些编译配置,如图2、图3和图4所示。在cmake-gui界面上,将CMAKE_BUILD_TYPE 值设置为Release,将OPENCV_ENANLE_NONFREE选中,在下面的扩展模块路径中选择opencv_contrib-4.1.0下modules路径。Ubuntu18.04默认安装了python,建议将python升级到3.8以上,如果需要python,勾选OPENCV_PYTHON3_VERSION,如果不需要也可以不勾选,不影响编译结果。如果勾选了,一定要先把python3.8配置好。具体python3.8的配置网上有很多资料,在此就不重复了。
将OPENCV_GENERATE_PKGCONFIG勾选上,这将自动生成opencv4.pc文件,否则,将在编译完成之后手动创建该文件,比较麻烦。如果需要在QT下使用,将WITH_QT勾选上,注意,如果勾选了WITH_QT,则不要勾选前面的BUILD_opencv_world,也就是不要将OpenCV的动态库文件编译为一个文件,否则后面编译将出错。
图2 修改某些配置
图3 修改某些配置
图4修改某些配置
第七步,在此点击“Configure”按钮,完成之后点击“Generate”按钮。如果正确配置了并且第三方库也放在了指定的位置,将生成成功,然后就可以开始编译了。
第八步,关闭cmake-gui,将opencv4.1.0/modules文件夹下的features2d文件夹拷贝到build文件夹下,在build文件夹下打开终端,输入下面命令:
make
这时将开始编译,过程比较漫长,直到100%完成,编译结束,然后输入下面命令进行安装:
sudo make install
安装配置的位置在cmake-gui中有设置,如果在配置cmake-gui界面时仔细观察,将看到图5所示安装位置。
图5 安装位置
第十步,等待安装完成后,开始配置OpenCV的环境变量。在终端输入如下命令:
sudo gedit /etc/ld.so.conf.d/opencv.conf
如果没有该文件,将打开一个新的空白文件,在文件末尾添加如下内容:
/usr/local/lib
这就是OpenCV编译后的库文件位置。然后保存,执行下面命令让配置生效:
sudo ldconfig
最后,配置bash,在终端执行下面命令:
sudo gedit /etc/bash.bashrc
在末尾添加
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出,然后执行如下命令使得配置生效
source /etc/bash.bashrc
以上就是完整的安装配置过程。如果配置生效功能没有生效,可以重启一下电脑。图6和图7是我电脑上安装后的结果lib文件和pkgconfig文件位置,pkgconfig文件下是opencv4.pc文件。
图6 lib文件位置
图7 opencv4.pc文件位置
注意,opencv4.pc是在cmake-gui界面上勾选了OPENCV_GENERATE_PKGCONFIG之后才会生成,否则将自己手动创建该文件,并向该文件添加一些内容。里面的内容是关于opencv的一些信息,如图9所示。
图8 勾选“OPENCV_GENERATE_PKGCONFIG”
图9 opencv4.pc文件内容
附1:查看OpenCV版本信息
附2:测试OpenCV。
进入/opencv-4.1.0/samples/cpp/example_cmake文件夹,在我电脑上的文件位置如下图所示。
右键打开终端,依次输入下面图中所示命令:
如果有摄像头,将被打开并看到图像,如果没有,将看到如下图所示结果。说明OpenCV已经安装好了。
附3:OpenCV在qt中的配置和使用。
任意新建一个qt项目,这里是以窗体项目为例,建好项目之后,在qt的.pro文件中配置opencv如下:
#头文件配置
INCLUDEPATH += /usr/local/include/opencv4/opencv2/
INCLUDEPATH += /usr/local/include/opencv4/
INCLUDEPATH += /usr/local/include/
库文件配置
LIBS += /usr/local/lib/libopencv_*.so
具体如下图所示:
在按钮单击事件中写下如下代码:
void Widget::on_pushButton_clicked()
{
Mat src = imread(“/home/adminone/images/test.jpeg”,1);
namedWindow(“src”,0);
imshow(“src”,src);
waitKey(0);
return;
}
运行结果如下:
附4:第三方库放置位置
Boostdesc和vgg_generated等文件共11个,放在opencv_contrib-4.1.0/modules/xfeatures2d/src目录下,网盘上我已经将该文件放进去了,如果在自己的电脑上编译失败,应该是md5校验失败,需要自己重新在github上去下载,然后放进去。ippicv_2019_lnx_intel64_general_20180723和face_landmark_model放在了和opencv-4.1.0相同的目录里,需要修改cmakelists.txt文件中的下载位置,如下面两张图所示。为了避免找不到该文件,请注意图中所示的每个文件的路径位置。
Windows下已经编译好的opencv及扩展库直接配置环境就可以使用,linux下已经把所有文件放在一起了,直接下载编译就可以。
链接:https://pan.baidu.com/s/1XyotEmXLfD-XCNCYOiVUYg
提取码:aj9d