写在前面

如果想保证生产效率,可以直接看这里,

或者直接

sudo pip3 install opencv_python -i https://pypi.tuna.tsinghua.edu.cn/simple

如果你跟我一样是小白,想学学Linux,那么我们就开始吧(囧)

目录

2. 添加Ubuntu的官方源(某些库需要,如libjasper-dev)

3. 安装依赖

4. 编译(相当烦)

5. 配置

6.验证(两个方法)

7. 参考


1. 下载opencv源码

2. 添加Ubuntu的官方源(某些库需要,如libjasper-dev)

sudo add-apt-repository "deb http://security.ubuntu.com/ubuntu xenial-security main"
sudo apt update

3. 安装依赖

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 python3-dev python2-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev 
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev
sudo apt-get install libxvidcore-dev libx264-dev  
sudo apt-get install libatlas-base-dev gfortran  
sudo apt-get install ffmpeg
sudo apt install libjasper1 libjasper-dev

4. 编译(相当烦)

4.1 准备部分墙外的包

4.1.1 ippicv

如果你在墙内,安装中可能会出现ippicv包的下载错误(动态下载的地址被墙了),可以去github中opencv的3rdParty目录里下载,打开后自行决定要下哪个(我下的是ippicv_2020_lnx_intel64_20191018_general.tgz)

分多的同学也可以去这里下载

-- IPPICV: Download: ippicv_2020_lnx_intel64_20191018_general.tgz
-- Try 1 failed
CMake Warning at cmake/OpenCVDownload.cmake:202 (message):
  IPPICV: Download failed: 28;"Timeout was reached"

把tgz文件下载到本地目录(“源码目录/3rdparty/ippicv/”),然后用nano(或者vim、gedit,随便)把该路径(“源码目录/3rdparty/ippicv/”)下的ippicv.cmake中的下载地址修改。

$ sudo nano ippicv.cmake

opencv linux arm 安装_ubuntu

文件修改为:

"file:/mnt/think/ssd1/opencv/3rdparty/ippicv"

file:/ 后面的路径选择你opencv源码所在目录

4.1.2 protobuf

参考这篇《Protobuf安装步骤》,不过不用make test了,太慢。

make install后不要忘记配置环境变量和动态链接库,结束后用这个命令检查安装是否正确(版本号可不同)

$protoc --version
libprotoc 3.6.1

4.2 cmake、make、make install

$ cd opencv(进入git下来的目录)
$ sudo mkdir -p build && cd ./build (建一个build目录并进入)

$ sudo su(进 root 模式,省得每次都sudo了)
(每个cmake都操作一次,也可以把-D的参数合并在一行,太长了)
# cmake -D WITH_TBB=ON -D WITH_EIGEN=ON -D OPENCV_GENERATE_PKGCONFIG=ON ..
# cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF ..
# cmake -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=O
# cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/mnt/think/ssd1/openCV4.5_bin(=后面是安装目录,可自行修改)
# make -j8 && make install (参与make的cpu核数视机器而定,我设置的8核)

要注意-D OPENCV_GENERATE_PKGCONFIG=ON这个配置一定要加上,Linux下我们使用opencv,需要使用pkg-config来进行环境变量的管理,这个软件需要.pc类型的文件作为软件配置信息,如果我们不配置,会出现opencv安装成功但是c编程无法使用的情况

5. 配置

5.1 配置opencv的.pc文件至PKG_CONFIG_PATH

1. 找到opencv的.pc文件的安装位置
$sudo find / -name *opencv*.pc  --返回/mnt/think/ssd1/openCV4.5_bin/lib/pkgconfig/opencv4.pc

$sudo nano /etc/profile
最后一行添加:
export PKG_CONFIG_PATH=/mnt/think/ssd1/openCV4.5_bin/lib/pkgconfig/:$PKG_CONFIG_PATH
保存退出
$source /etc/profile

5.2 设置opencv动态库链接时的搜索路径(opencv的安装路径在cmake的prefix中已指定,自行修改为你自己的路径)

$sudo nano /etc/profile
最后一行添加:
添加:export PYTHONPATH=/mnt/think/ssd1/openCV4.5_bin/lib/python3.8/dist-packages:$PYTHONPATH
保存退出
$source /etc/profile

6.验证(两个方法)

think@think-ubuntu:/$ python3
Python 3.8.5 (default, Jul 28 2020, 12:59:40) 
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>
$ pkg-config opencv4 --modversion 
4.5.1

7. 参考

网友“浓茶淡酒”的经验分享:《linux下编译安装opencv生成opencv.pc》