在Linux下OpenCV的下载和编译

Posted GreenOpen专注图像处理

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Linux下OpenCV的下载和编译相关的知识,希望对你有一定的参考价值。

完整从代码编译OpenCV在很多情况下是必须的。总体上来看,都是下载、编译、配置这三个过程,其中一些细节值得注意,记录如下。这里以ubuntu为例,其他发行版可能略有不同。

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

2、从github上下载相关代码:

2020年5月3日 当前最新 https://github.com/opencv/opencv/archive/4.3.0.zip


这里我们只安装基本的代码,如果结合contrib的话请参考相关资料。比如 

《(5编译使用最新opencv)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练>

https://www.cnblogs.com/jsxyhelu/p/8000819.html

此外,如果从github上下载资料比较慢,请参考相关修改host的文章


3、打开cmake-gui开始编译

总的流程是两次Make,一次generate,其他情况一路回车。其中下载ipp比较消耗时间。
其中,第一次configure是读出有哪些需要配置的内容的,第二次configure是确认这些需要配置的内容,generate是生成make可以编译的内容。
而后进入目录(比如上图的opencv_bin目录)进行
make
sudo make install 
我建议使用cmake-gui而不是cmake,因为在安装过程中,可能会出现一些问题,最好现场解决掉。
其中,make比较消耗时间,install是很快的。
4、在QT中的配置并编写测试程序(如果不使用QT可以不看)
读懂这段:
如果共享库文件安装到了/usr/local/lib(很多开源的共享库都会安装到该目录下)或其它"非/lib或/usr/lib"目录下, 那么在执行ldconfig命令前, 还要把新共享库目录加入到共享库配置文件/etc/ld.so.conf中, 如下:
# cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
# echo "/usr/local/lib" >> /etc/ld.so.conf
# ldconfig

我们肯定是需要修改的

最后,我的结果为:

INCLUDEPATH += /usr/local/include/opencv4 \\
               /usr/local/include/opencv4/opencv2


LIBS += /usr/local/lib/libopencv_highgui.so\\
        /usr/local/lib/libopencv_core.so\\
        /usr/local/lib/libopencv_videoio.so\\
        /usr/local/lib/libopencv_imgcodecs.so\\
        /usr/local/lib/libopencv_imgproc.so
 





以上是关于在Linux下OpenCV的下载和编译的主要内容,如果未能解决你的问题,请参考以下文章

linux下cmake编译opencv 为啥这么慢

VisualStudio下如何编译和使用最新版本的OpenCV(修正版)

编译 OpenCV 避免下载 linux-64-opencv-2.4.11-nppy27_0.tar.bz2

编译 OpenCV 避免下载 linux-64-opencv-2.4.11-nppy27_0.tar.bz2

C/C++开发,linux下OpenCV+gcc+cmake编译环境搭建

OpenCV在Windows平台下的源代码编译