因为想做图像处理和目标检测相关所以先安装 opencv 了
目录
一、 准备工作
1.1 更换 pip 国内镜像源
1.1.1 更换源
输入命令
sudo mkdir ~/.pip
cd .pip
sudo nano pip.conf
将下面内容复制,保存,退出
[global]
timeout = 10
index-url = http://mirrors.aliyun.com/pypi/simple/
extra-index-url= http://pypi.douban.com/simple/
[install]
trusted-host=
mirrors.aliyun.com
pypi.douban.com
这里换成了阿里和豆瓣的,之前用清华的但是有一些包没有
之后会在 .pip/ 文件夹下生成这个文件
要进入 .pip 文件夹要先打开显示隐藏文件!
1.1.2 更新 pip
输入命令
pip3 install -U pip
1.2 安装依赖
输入命令
sudo apt-get -y install build-essential cmake unzip pkg-config
sudo apt-get -y install libjpeg-dev libpng-dev libtiff-dev
sudo apt-get -y install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get -y install libxvidcore-dev libx264-dev
sudo apt-get -y install libgtk-3-dev
sudo apt-get -y install libcanberra-gtk*
sudo apt-get -y install libatlas-base-dev gfortran
1.3 创建虚拟环境
为了保证环境的干净,再虚拟环境里操作,以后可能要建立多个环境!
输入命令
sudo pip3 install -U virtualenv
virtualenv -p python3 ~/my_envs/opencv
source ~/my_envs/opencv/bin/activate
# 安装 numpy
pip3 install numpy
安装 numpy 时,会出现 Building wheel for numpy (PEP 517) 卡住,多等等就好了!
注意: 之后的操作都要在虚拟环境下,即命令行最前面是(opencv)
1.4 编译安装 FFmpeg
FFmpeg 是一个音视频处理最常用的开源开发包,它功能强大,用途广泛,大量用于视频网站和商业软件,也是许多音频和视频格式的标准编码/解码实现。
输入命令
sudo apt-get install yasm
sudo apt-get install libsdl2-dev -y
下载安装包,官网,最新的 4.3.1.tar.gz 就行,也可以用下面的命令行,但是很慢
wget http://ffmpeg.org/releases/ffmpeg-4.3.1.tar.gz
解压编译安装
tar -xvf ffmpeg-4.3.1.tar.gz
cd ffmpeg-4.3.1
./configure --arch=armel --target-os=linux --enable-gpl --enable-libx264 --enable-nonfree
make
sudo make install
配置
sudo su
echo "/usr/local/lib" >> /etc/ld.so.conf
ldconfig
exit
测试
ffmpeg -version
如果有下面输出说明安装成功了
二、安装 opencv
2.1 下载解压
从 GitHub 上下载 opencv 和 opencv_contrib 的源码包,并解压提取。
也可以用命令行提取
cd ~/Downloads/
unzip opencv-4.5.0.zip
unzip opencv_contrib-4.5.0.zip
再将两个提取的文件夹改名,去掉后面的版本号
mv opencv-4.4.0 opencv
mv opencv_contrib-4.4.0 opencv_contrib
2.2 配置编译
在 opencv 文件夹下建立 build 文件夹,并进入。
cd opencv
mkdir build && cd build
配置参数:
OPENCV_EXTRA_MODULES_PATH 指向 contrib 源码处,WITH_FFMPEG=ON 开启 FFmpeg 的支持。
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/Downloads/opencv_contrib/modules \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D CMAKE_SHARED_LINKER_FLAGS='-latomic' \
-D WITH_FFMPEG=ON \
-D BUILD_EXAMPLES=OFF ..
编译前要将下面的文件拷贝到 opencv_contrib/modules/xfeatures2d/src/ 目录下,不然编译到 80% 左右会报错,缺少文件。
boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i
文件压缩包,提取码:z5gh
编译,时间很长(>_< )
make -j4
编译完成
2.3 安装
输入命令
sudo make install
sudo ldconfig
安装完成后,会在 /usr/local/lib/python3.7/site-packages/cv2/python-3.7 目录下生成 cv2.cpython-37m-arm-linux-gnueabihf.so 文件。
在虚拟环境 my_envs/opencv/lib/python3.7/site-packages 链接上这个文件:
cd my_envs/opencv/lib/python3.7/site-packages
ls
ln -s /usr/local/lib/python3.7/site-packages/cv2/ cv2
ls
可以用 ls 查看一下是否建立了链接。
2.4 测试
输入命令
$ python
>>> import cv2
>>> cv2.__version__
'4.5.0'
安装成功!
配置 opencv.pc
cd /usr/local/lib
sudo mkdir pkgconfig
cd pkgconfig
sudo nano opencv.pc
输入下面内容
prefix=/usr/local
exec_prefix=${prefix}
includedir=${prefix}/include
libdir=${exec_prefix}/lib
Name: opencv
Description: The opencv library
Version:4.5.0
Cflags: -I${includedir}/opencv4
Libs: -L${libdir} -lopencv_shape -lopencv_stitching -lopencv_objdetect -lopencv_superres -lopencv_videostab -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_video -lopencv_photo -lopencv_ml -lopencv_imgproc -lopencv_flann -lopencv_core
~
保存后,导入环境变量。
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
测试
pkg-config --cflags --libs opencv
有下面输出说明配置成功!