可以参考这篇文章在ubuntu下安装opencv4.1.0详细步骤
但是我在进行到第5步安装依赖包的时候,依赖包怎么也安装不上,后来发现是网络源的问题,折腾了好一会儿也解决不了,所以就换了一种方法,省略了手动安装依赖包的步骤。
安装好opencv后,抽时间把网络源的问题也解决了。如果遇到网络源的问题,可以参考我另一篇文章Ubuntu安装xxx依赖错误解决方法。
解决了网络源的问题,应该就能按上面那篇文章的方法安装opencv了。不过我还是记录下我另外一种安装opencv的方法。
1、下载opencv源码
源码可以从opencv官网下载,我也放到百度云盘了
https://pan.baidu.com/s/1LS4Xh85ft4HbRLGx-N1mXw
2、编译opencv
解压opencv源码包,然后进入该文件夹
mkdir build
cd build
cmake ..
make -j8
3、安装opencv
sudo make install
安装成功后,在/usr/local/include/下会有一个opencv4文件夹,opencv4/下有opencv2文件夹,使用opencv库的头文件都在opencv2文件夹中。如果C++使用该库时是:
#include <opencv2/opencv.hpp>
那么需要把opencv2复制到/usr/local/include/中。
为了链接时不会出现问题,再把opencv2复制到/usr/include/中会更好。
4、改变环境变量
sudo gedit /etc/ld.so.conf.d/opencv.conf
该命令创建一个.conf文件
创建的文件中加上/usr/local/lib,再运行以下命令
sudo ldconfig
5、测试
cd ~/下载/opencv/samples/cpp/example_cmake
cmake .
make
./opencv_example
如果没有摄像头将capture.open(0)改为capture.open(". ./. ./data/tree.avi")。
附:关于make -j
用make -j带一个参数,可以把项目在进行并行编译,比如在一台双核的机器上,完全可以用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源。
在多核CPU上,适当的进行并行编译还是可以明显提高编译速度的。但并行的任务不宜太多,一般是以CPU的核心数目的两倍为宜。
不过这个方案不是完全没有cost的,如果项目的Makefile不规范,没有正确的设置好依赖关系,并行编译的结果就是编译不能正常进行。如果依赖关系设置过于保守,则可能本身编译的可并行度就下降了,也不能取得最佳的效果。