完整从代码编译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)实战演练>
此外,如果从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