小白一枚,刚买的树莓派3b+,大概断续花了4天时间从上手到搞定opencv,记录一下,以后少踩坑
本文主要参考以下文章:
原文链接: [https://www.cnblogs.com/gghy/p/11916830.html]
原文链接:[https://www.jianshu.com/p/56929416b4a1]
用文本编辑器打开wpa_supplicant.conf,输入以下配置,可以用多个network{}来配置多个wifi:
配置wifi文件
country=GB
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="microsoft"
psk="12345678"
priority=1
}
network={
ssid="将我替换成WiFi名字,不删除引号,不能有中文"
psk="将我替换成WiFi密码,不删除引号"
priority=将我替换成数字,数字越大代表优先级越高
}
将ssh空白文件和wpa_supplicant.conf文件放入boot目录盘中
ssh空白文件是为了开启raspberry系统默认关闭ssh权限,这个方式可以开启之
1、打开sources.list和raspi.list文件进行修改
sudo nano /etc/apt/sources.list
sudo nano /etc/apt/sources.list.d/raspi.list
2、用 # 注释掉或删掉原文件内容,用以下内容取代(Ctrl + O 保存再 Ctrl + X 退出)
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/buster main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
3、用 # 注释掉或删掉原文件内容,用以下内容取代(Ctrl + O 保存再 Ctrl + X 退出)
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
如果是远程登陆方式使用putty命令行方式更方便
将 /etc/apt/sources.list 文件中默认的源地址 http://raspbian.raspberrypi.org/ 替换为 http://mirrors.ustc.edu.cn/raspbian/ 即可。
raspbian 2018-04-19 之后的镜像默认源已经更改,用如下命令替换:
树莓派的 raspberrypi.org 软件源,也即 /etc/apt/sources.list
sudo sed -i 's|raspbian.raspberrypi.org|mirrors.ustc.edu.cn/raspbian|g' /etc/apt/sources.list
树莓派的 archive.raspberrypi.org 软件源,也即 /etc/apt/sources.list.d/raspi.list
sudo sed -i 's|//archive.raspberrypi.org|//mirrors.ustc.edu.cn/archive.raspberrypi.org|g' /etc/apt/sources.list.d/raspi.list
当然也可以直接编辑 /etc/apt/sources.list 文件(需要使用 sudo)。删除原文件所有内容,用以下内容取代(以 Buster 示例):
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ buster main contrib non-free rpi
编辑此文件后,请使用 sudo apt-get update
命令,更新软件索引。
1、执行下面指令打开配置选项,选择 7 Advanced Options
sudo raspi-config
2、再选择第一项 A1 Expand Filesysem
3、选择确定,之后选择 finish,再重启
打开 / etc / dphys - swapfile 文件:
sudo nano /etc/dphys-swapfile
然后编辑 CONF_SWAPSIZE 变量:
注意:此处我将交换空间从100MB增加到2048MB;如果你不执行此步骤,你的树莓派编译时很可能挂起。
重新启动交换服务:
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
#安装OpenCV相关工具,build-essential、cmake、git和pkg-config
sudo apt-get install build-essential git cmake pkg-config -y
#安装jpeg格式图像工具包
sudo apt-get install libjpeg8-dev -y
#安装tif格式图像工具包
sudo apt-get install libtiff5-dev -y
#安装JPEG-2000图像工具包
sudo apt-get install libjasper-dev -y
#安装png图像工具包
sudo apt-get install libpng12-dev -y
#安装视频I/O包
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev -y
#安装gtk2.0
sudo apt-get install libgtk2.0-dev -y
#安装OpenCV数值优化函数包
sudo apt-get install libatlas-base-dev gfortran -y
// 下载OpenCV
wget -O opencv-3.4.3.zip https://github.com/Itseez/opencv/archive/3.4.3.zip
// 下载OpenCV_contrib库:
wget -O opencv_contrib-3.4.3.zip https://github.com/Itseez/opencv_contrib/archive/3.4.3.zip
// 解压OpenCV
unzip opencv-3.4.3.zip
// 解压OpenCV_contrib库:
unzip opencv_contrib-3.4.3.zip
ps:如果在线方式无法下载,可以电脑下载完成后用filezella上传到树莓派相应目录
参考文章:
回到OpenCV存储库并创建 build 文件夹,用来存放 CMake 编译时产生的临时文件。
复制代码
1 //具体路径请以实际为准
2 cd ~/opencv-3.4.3
3
4 // 新建build文件夹
5 mkdir build
6
7 // 进入build文件夹
8 cd build
设置CMake编译参数,安装目录默认为/usr/local
方式一. 使用cmake 工具命令行配置编译参数
注意参数名、等号和参数值之间不能有空格,每行末尾“\”之前有空格,这里使用换行符“\”是为了看起来工整,参数值最后是两个英文的点,意思是上级
目录(【注意】如果在root用户下执行cmake命令,请将OPENCV_EXTRA_MODULES_PATH的值改为绝对路径,如:/home/pi/opencv_contrib-3.4.3/modules):
/** CMAKE_BUILD_TYPE是编译方式
1. CMAKE_INSTALL_PREFIX是安装目录
2. OPENCV_EXTRA_MODULES_PATH是加载额外模块
3. INSTALL_PYTHON_EXAMPLES是安装官方python例程
4. BUILD_EXAMPLES是编译例程(这两个可以不加,不加编译稍微快一点点,想要C语言的例程的话,在最后一行前加参数INSTALL_C_EXAMPLES=ON,要C++例程的话在最后一行前加参数INSTALL_C_EXAMPLES=ONINSTALL_CXX_EXAMPLES=ON)
**/
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.3/modules \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_CXX_EXAMPLES=ON \
-D BUILD_EXAMPLES=ON ..
方式二. 使用cmake-gui可视化工具
为了安装方便不容易出错,建议使用cmake-gui安装,安装命令如下:
sudo apt-get install cmake-gui
安装完毕打开cmake-gui
cmake-gui
在Where is the source code:选择opencv-4.1.0目录位置(我的位置为/home/pi/install_bag/opencv-4.1.0),在Where to build the binaries:选择build位置(我的位置为/home/pi/install_bag/opencv-4.1.0/build)。如下图所示:
找到BUILD_opencv_world,后面的方框点上勾; (这个选不选问题不大)
找到在CMAKE_BUILD_TYPE
值处输入RELEASE
,其他保持不变;
找到OPENCV_ENABLE_NONFREE
,在后面的方框点上勾(有的算法有专利,不点这个不能用,比如sift);
找到OPENCV_EXTRA_MODULES_PATH
,选择opencv_contrib文件夹中的modules文件夹,注意是modules文件夹(我的路径是/home/pi/opencv/opencv_contrib/modules)。
完成以上工作再点击Configure,耐心等一等,如果上面还有红色的再点击Configure,之到没有红色为止。Configure完成之后点击Generate,等一等即可
此处最好出去,然后在点击Configure,会自动下载一些文件,没有梯子很可能下载不下来,会导致后面编译过程报错
我的第一次编译就有如下报错,虽然第二遍Configure已经全白,但是第一遍报红的文件并没有下载下来
/home/opencv/opencv_contrib-3.4.3/modules/xfeatures2d/src/boostdesc.cpp:653:20: fatal error: boostdesc_bgm.i: 没有那个文件或目录
#include "boostdesc_bgm.i"
^~~~~~~~~~~~~~~~~
建议大家编译之前到目录下/home/opencv/opencv_contrib-3.4.3/modules/xfeatures2d/src 文件夹里查看是否有如下11个文件。
如果没有务必拷贝到/home/opencv/opencv_contrib-3.4.3/modules/xfeatures2d/src 文件夹里。我在安装时还有一个文件face_landmark_model.dat没有下载成功,将该文件放到build目录下的/share/opencv4/testdata/cv/face目录下,如果没有目录可自行建立。
检查拷贝完毕,最好再次Configure一下,直到没有上面没有红色为止,然后再点击Generate。如果不放心可以再次检查日志。
1 /**
2 * 以管理员身份,否则容易出错
3 * make命令参数-j4指允许make使用最多4个线程进行编译,这样编译速度会更快
4 * 可以根据自己机器的情况进行更改
5 * 使用tee命令可以将编译过程中终端显示的信息保存到make.log文件中,便于查看,这样即使VNC断线,终端的* 信息太多看不到,也可以通过make.log文件查看编译过程。
6 **/
7 sudo make
8 sudo make -j4 2>&1 | tee make.log #多线程如果死机请用上面指令
大概需要4h,编译到100%则成功
1 // 安装
2 sudo make install
3
4 // 更新动态链接库
5 sudo ldconfig
python
import cv2
cv2.__version__
注意:
不要忘记回到 /etc/dphys-swapfile 文件:
1.将 CONF_SWAPSIZE 重置为 100MB
2.重新启动交换服务
——————————————
参考文章
原文链接:https://blog.csdn.net/qq_22863619/article/details/92568423
原文链接:https://blog.csdn.net/one_l_star/article/details/96561292
原文链接:https://www.jianshu.com/p/56929416b4a1