写在前面
如果想保证生产效率,可以直接看这里,
或者直接
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
文件修改为:
"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》