第一步:依赖检测
sudo apt install build-essential
sudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
安装opencv之前,直接执行上面的这三条命令,就可以完成依赖检测,相当于傻瓜式一键安装。仔细看这三条命令,它把opencv所有需要依赖的库都给安装了一遍。若出现错误,请到最后查看解决方案。
第二步:下载源代码
当我们执行完上面的三条命令后,代表安装opencv的所有依赖条件都满足了。我们先把源代码下载下来再说。
下载源代码
git clone https://github.com/opencv/opencv.git
git clone https://github.com/opencv/opencv_contrib.git
把源代码下载到你希望的文件夹中,并将opencv_contrib库移到opencv文件夹下
注意,opencv有两个,一个是核心库,一个是贡献库,贡献库中有一些最新的功能。最好在第一次安装时就把两个都装上,别到时候又回来重新装。opencv_contrib库用处也很多。
第三步:编译
为什么还要编译?不能直接用吗?当然不行,我们下载下来的只是源代码,也就是一堆.h .cpp文件,你必须编译成.a文件(静态库)或者.so文件(动态库)别人才能用啊。所以开始编译吧。
先创建一个build文件夹用来存放.so文件
cd ~/opencv
mkdir build
cd build
开始编译吧
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules -D DOPENCV_GENERATE_PKGCONFIG=ON ..
这个命令是最最重要的了,花10分钟仔细看看都值得。-CMAKE_BUILD_TYPE=Release代表你想编release版本还是debug版本。CMAKE_INSTALL_PREFIX是你的.so文件最终放在哪(安装完后查看/usr/local/lib文件下一定有opencv的库文件在)。还有其他选项,如OPENCV_EXTRA_MODULES_PATH = …/opencv_contrib/modules,代表同时编译贡献库。-DOPENCV_GENERATE_PKGCONFIG=ON用来生成.pc文件,这个选项一定要加。
安装编译库,可能是为了把库安装到系统目录下
sudo make install
sudo ldconfig
第四步:验证
pkg-config --modversion opencv
以上一系列命令可以闭着眼睛执行,都是线性的,注意一下粗体字就行。如果中间哪一步出错,百度一下就可以,一般问题不大。把安装步骤详细记录下来,这样以后换环境可以快速部署。
解决方案:
sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update
sudo apt install libjasper1 libjasper-dev
成功的解决了问题,其中libjasper1是libjasper-dev的依赖包