玩命狂奔的间隙,莫忘记抬头看看前路的星光

0%

OpenCV编译与安装超简单喂饭式教程

习惯了使用腾讯或百度等AI SDK,调一调API接口,就能完成人脸识别,好像很酷的样子。不过长此以往,是不是就会成为一个“API调用师”呢?小公司慢慢地会变成大公司的触手,只能应用或只会使用大公司希望小公司用的技能,掐住小公司的喉咙。被少数资本集团垄断支配的感觉应该不好吧?
作为个人改变不了什么大环境,就尽量自己挣扎下吧!正好项目需要用到OpenCV,那么就从这里开始吧!

下载Opencv Source包

1
wget https://github.com/opencv/opencv/archive/4.5.2.zip ./

下载完成后,解压待用,文件夹名可以修改,也可以不改。

下载第三方库IPPICV

如果不翻墙,大概率在生产配置文件的时候,会报错说无法下载IPPICV库,所以我们需要手动下载,然后指定编译时去本地文件夹下载。

安装cmake

如果敲入命令行:cmake,提示没有找到这个命令,则需要先安装cmake.

1
2
3
4
cmake
Command 'cmake' not found, but can be installed with:
sudo snap install cmake # version 3.20.4, or
sudo apt install cmake
1
sudo apt  install cmake

如果安装很慢,记得要将apt的源切换到国内的镜像哦。

生成配置文件,准备开始编译

  • 进入opencv 文件夹,建立build文件夹,进入build文件夹。
    1
    2
    3
    mkdir build
    cd build
    cmake ..
    然后查看生成的配置文件和结果,看哪些库是缺少的,把可能用得到的库安装起来,再重新生成编译配置文件,再开始真正的编译。

安装编译OpenCV缺少的库

有些库是不可缺少的,有些是可选的。自己根据需要,或编译失败的提示,多次尝试就可以了。

  • 例如,缺少ccache(加快编译速度),ant(执行一些任务)就直接安装:

    1
    sudo apt install ccache ant libpng-dev pkg-config
  • 安装OpenBlas
    openblas 是一个开源的矩阵计算库,包含了诸多的精度和形式的矩阵计算算法。就精度而言,包括float和double,两种数据类型的数据,其矩阵调用函数也是不一样。不同矩阵,其计算方式也是有所不同,(姑且认为向量也是一维矩阵),例如,向量与向量之间的计算,向量与矩阵之间的计算,矩阵与矩阵之间的计算。

    1
    sudo apt-get install libopenblas-dev
  • 安装FFMPEG需要的库

    1
    sudo apt-get install libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libavresample-dev

也许还有几个库没有安装,例如GUI相关的,如果不需要的话就不用安装了。

正式编译

在build文件夹,输入命令开始编译。

1
make

编译速度感人,你可以去拖个地,洗个衣服,再做个饭回来。
可能是我编译的比较全,花了2个小时。

安装

检查下build/bin下是否存在opencv-452.jar,如果有大概率编译成功了。
在build文件夹执行安装命令,将库文件安装到/usr/local文件夹

1
sudo make install

最后

安装完毕,才是开始。算是萌新入手了新手武器,首先找到自带的例子踏上征程吧!