树莓派学习笔记(二)安装 opencv

因为想做图像处理和目标检测相关所以先安装 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 上下载 opencvopencv_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 查看一下是否建立了链接。

链接cv2

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

有下面输出说明配置成功!

测试

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值