树莓派配置opencv环境(包含c++和python)
文章目录
基本设置
1、把根目录扩展到整个SD卡
命令行输入:
sudo raspi-config
 

 选择Advanced Options(光标移动,Tab键选择,空格键确认)
 
 选择Expand Filesystem
 
 设置完成后退出重启树莓派。
 如果没有出现重启选项,在命令行输入:
sudo reboot
 
2、配置摄像头设备
在OpenCV中,读取摄像头数据,需要开启v4l2(video for linux 2),开启方法如下:
 命令行输入:
sudo vim /etc/modules
 
打开后在文件最后添加一行:
bcm2835-v4l2
 
配置环境
3、安装opencv所需库
3.1 安装numpy
sudo pip3 install numpy
 
3.2 安装opencv依赖
sudo apt-get install build-essential git cmake pkg-config -y
sudo apt-get install libjpeg8-dev -y
sudo apt-get install libtiff5-dev -y
sudo apt-get install libjasper-dev -y
sudo apt-get install libpng12-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
sudo apt-get install libgtk2.0-dev -y
sudo apt-get install libatlas-base-dev gfortran -y
 
注:这里遇到的依赖问题有可能是源的问题。看看自己换的国内源和自己的树莓派系统版本是否一致。如果国内源没问题的话可以使用aptitude来进行安装解决软件包以来问题,过程如下:
 首先安装aptitude软件包:
sudo apt-get install aptitude
 
使用方法为:
sudo aptitude install 文件名
 
即将上面安装依赖的命令中的apt-get换成aptitude
 对于aptitude推荐的解决方案可以进行yes和no的选择。
4、安装opencv
注:查看自己树莓派系统版本方法
lsb_release -a
 
如下图,系统版本为11
 
4.1 python环境
直接命令行安装:(11版本的树莓派是可以直接安装的,之前版本的往下看)
sudo pip3 install opencv-python
 
4.2 c++环境及python环境(11以及11之前的系统版本)均可
需要下载Opencv和OpenCV_Contrib两个仓库。
 OpenCV仓库:Github
 OpenCV_Contrib仓库:Github
 注意:下载时OpenCV和OpenCV_Contrib要选择同一版本
下载后,可以使用VNC Viewer的File Transfer功能或者U盘等方法把文件传输到树莓派的/home/pi/Downloads目录中。
 解压这两个压缩包
cd /home/pi/Downloads
unzip opencv-版本.zip
unzip opencv_contrib-版本.zip
 
5、设置Cmake参数
进入解压的opencv的包,创建一个build文件夹,进入build文件夹进行配置。
cd /home/pi/Downloads/opencv-版本
mkdir build
cd build
 
设置cmake参数,执行以下命令:
cmake -D CMAKE_BUILD_TYPE=BULLSEYE -D CMAKE_INSTALL_PREFIX=/usr/local -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-4.5.5/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/lib/python3.9 PYTHON_INCLUDE_DIR=/usr/include/python3.9 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.9.so PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include ..
 
注意:以上命令需要根据你具体的软件环境进行修改,否则可能报错。
 其中:
- CMAKE_BUILD_TYPE=RELEASE \ 代表编译类型为发行版本
 - CMAKE_INSTALL_PREFIX=/usr/local \ 安装路径
 - INSTALL_C_EXAMPLES=ON \ C demo
 - INSTALL_PYTHON_EXAMPLES=ON \ Python demo
 - OPENCV_EXTRA_MODULES_PATH=/home/pi/Downloads/opencv_contrib-4.5.5/modules \ OpenCV Contrib路径
 - BUILD_EXAMPLES=ON \ 编译demo
 - WITH_LIBV4L=ON \ 开启Video for Linux
 - PYTHON3_EXECUTABLE=/usr/lib/python3.9 \ Python3路径
 - PYTHON_INCLUDE_DIR=/usr/include/python3.9 \ Python3 include文件夹
 - PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.9.so \ Python3库
 - PYTHON3_NUMPY_INCLUDE_DIRS=/usr/lib/python3/dist-packages/numpy/core/include \ Python3 Numpy安装路径
 - …
最后的两个点也是命令的一部分,不要去掉。
cmake执行时间比较长,要稍微等一段时间。 
6、编译
继续在build目录下执行命令:
make
 
nake结束以后,可以开始安装,执行命令:
sudo make insall
 
7、测试
7.1 python环境测试
在命令行输入python,回车,进入python编程,输入:
import cv2
 
回车
cv2.__version__
 
回车
 输出结果为安装opencv版本,说明python环境下的opencv安装成功。
7.2 c++环境测试
新建一个文件夹
mkdir test
cd test
 
创建编写一小段demo test_opencv.cpp 读取摄像头视频
#include <iostream>
#include <opencv2/opencv.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
 
int main(int argc, const char * argv[]) {
    Mat image;
    VideoCapture capture(0);//打开摄像头
    while(1){
    	capture>>image;
	    imshow("test",image);
	    waitKey(20);
    }
}
 
创建编写CMakeLists.txt
cmake_minimum_required(VERSION 2.6)
project(test_opencv)
find_package(OpenCV REQUIRED)
add_executable(test_opencv test_opencv.cpp)
target_link_libraries(test_opencv ${OpenCV_LIBS})
 
编译运行,获取摄像头拍摄画面。
cmake .
 
make 
 
./test_opencv
 
说明c++环境下opencv安装成功。
参考文章:
 树莓派OpenCV系列教程1:开发环境搭建
 子豪兄教你在树莓派上安装OpenCV
 树莓派安装使用 opencv c++版本