当前位置:   article > 正文

树莓系统配置安装Opencv3.4及其各种坑的解决_树莓派系统配置安装opencv3.4

树莓派系统配置安装opencv3.4

树莓安装opencv以及各种出错问题解决

期末项目需要在树莓上进行图像识别
需要使用opencv因此就开始各种采坑之路
整整一个下午的时间,各种报错!!!!!

安装完成后简直热泪盈眶!!!
但愿后面再安装opencv的人能快点解决这个鬼东西。

前期准备工作

1.安装numpy
打开终端 使用pip3(pip默认指的是python2.7的pip)进行安装numpy依赖库

sudo pip3 install numpy
  • 1

2.扩大根目录到整个SD卡(占用内存较大,不进行扩展会卡住)
(1) 打开终端 输入以下命令 进入树莓派配置界面

sudo raspi-config
  • 1

(2)进入一下界面,选择7 Advanced Options (上下方向键选择,回车键确定)
在这里插入图片描述
(3)接着进入一下界面,选择A1 Expand Filesystem,回车
在这里插入图片描述
(4)回车后进入如下界面,按回车确定在这里插入图片描述
(5)接着回到原来界面,按两次右方向键后选择Finish回车,然后回车选择重启reboot在这里插入图片描述
在这里插入图片描述

安装opencv

1.换源
重启完成后第一件事就是换源(如果已经换过国内源这步跳过)
这里使用的是清华镜像源(感觉清华的比中科大的源快多了)
在终端输入如下指令

sudo nano /etc/apt/sources.list
  • 1

将所有内容先打上注释(开头加个#)然后输入如下内容

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib
  • 1
  • 2

图示在这里插入图片描述
接着按Ctrl+O,回车保存,按Ctrl+ X关闭

修改完成并保存后关闭,输入如下指令

sudo nano /etc/apt/sources.list.d/raspi.list
  • 1

同样的先将所有内容注释,输入如下内容

deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
  • 1

在这里插入图片描述
接着同步更新源,终端输入如下命令:

sudo apt-get update
  • 1

在这里插入图片描述
接着升级及安装软件包,这个过程耗时较长(时长约为一集英剧:是,首相!)

sudo apt-get upgrade
  • 1

在这里插入图片描述
到这里源就更换好了!!!

安装一些依赖库

(1)安装build-essential、cmake、git和pkg-config

sudo apt-get install build-essential cmake git pkg-config
  • 1

(2)安装jpeg格式图像工具包

sudo apt-get install libjpeg8-dev
  • 1

(3)安装tif格式图像工具包

sudo apt-get install libtiff5-dev
  • 1

(4)安装JPEG-2000图像工具包

sudo apt-get install libjasper-dev
  • 1

(5)安装png图像工具包

sudo apt-get install libpng12-dev 
  • 1
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
  • 1

以上没出错就说明成功

下载 解压opencv

(1)建议用树莓派浏览器打开此页面,点击下面超链下载,放在/home/pi/Downloads目录中
下载内容:
opencv-3.4.0.zip
opencv_contrib-3.4.0.zip
opencv3_cmake_files.zip
(2)解压文件,在逐个输入一下命令:

 sudo unzip opencv-3.4.0.zip
  • 1
sudo unzip opencv_contrib-3.4.0.zip
  • 1
sudo unzip opencv3_cmake_files.zip
  • 1

设置编译参数

(1)终端进入进入 /home/pi/Downloads/opencv-3.4.0 文件夹下

cd /home/pi/Downloads/opencv-3.4.0
  • 1

(2)创建文件夹build并进入

sudo mkdir build
cd build/
  • 1
  • 2

(3)输入编译参数

sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -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-3.4.1/modules -D BUILD_EXAMPLES=ON -D WITH_LIBV4L=ON PYTHON3_EXECUTABLE=/usr/bin/python3.5 PYTHON_INCLUDE_DIR=/usr/include/python3.5 PYTHON_LIBRARY=/usr/lib/arm-linux-gnueabihf/libpython3.5m.so PYTHON3_NUMPY_INCLUDE_DIRS=/home/pi/.local/lib/python3.5/site-packages/numpy/core/include ..
  • 1

在这里插入图片描述
这一步设置参数完成

开始编译

(痛苦的编译过程,费时间,建议看一部韩国电影《熔炉》,然后第一个问题应该出现了)
(1)进入build目录下

cd /home/pi/Downloads/opencv-3.4.0/build
  • 1

(2)使用命令编译

sudo make
  • 1

在这里插入图片描述
开始编译等待错误的出现,大概70%-80%出现第一个错误!!!

编译过程中出现的错误

1.缺少文件的错误:
缺失文件 #include”boostdesc_bgm.i

/home/pi/Downloads/opencv_contrib-3.4.1/modules/xfeatures2d/src/boostdesc.cpp:653:37: fatal error: boostdesc_bgm.i: 没有那个文件或目录
           #include "boostdesc_bgm.i"
                                     ^
compilation terminated. ....
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
解决办法
将之前下载的opencv3_cmake_files里面的所有后缀为i的文件放入到

/home/pi/Downloads/opencv_contrib-3.4.1/modules/xfeatures2d/src/
  • 1

(1)需要修改/home/pi/Downloads/opencv_contrib-3.4.1/modules/xfeatures2d/src/中src的目录的权限,使用如下命令

先进入目录文件:cd /home/pi/Downloads/opencv_contrib-3.4.1/modules/xfeatures2d,

接着修改sec目录权限命令:sudo chmod 777 src

(2)使用命令将所有带i的文件复制进去:sudo cp -i /home/pi/Downloads/opencv3_cmake_files/*.i /home/pi/Downloads/opencv_contrib-3.4.1/modules/xfeatures2d/src/

(3)重新编译,再次使用下面命令编译:

cd /home/pi/Downloads/opencv-3.4.0/build
sudo make
  • 1
  • 2

2.路径出错
第一种:include “opencv2/xfeatures2d/cuda.hpp”
fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录
完整的内容:

/home/pi/Downloads/opencv-3.4.0/modules/stitching/include/opencv2/stitching/detail/matchers.hpp:52:12: fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录
 #  include "opencv2/xfeatures2d/cuda.hpp"
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
  • 1
  • 2
  • 3
  • 4

解决办法:
打开目标文件,把相对路径改成绝对路径(应该在文件的第52行左右,没有修改权限则先开放权限)

vim /home/pi/Folder/opencv-3.4.3/modules/stitching/include/opencv2/stitching/detail/matchers.hpp
  • 1

更换后的绝对路径

#include "/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
  • 1

同理出现如下错误

/home/pi/Folder/opencv-3.4.3/modules/stitching/src/precomp.hpp:52:12: fatal error: opencv2/xfeatures2d/cuda.hpp: 没有那个文件或目录
 #  include "opencv2/xfeatures2d/cuda.hpp"
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
  • 1
  • 2
  • 3
  • 4

则按照上面同样放法修改

如果修改好了则重新编译,再次使用下面命令编译:

cd /home/pi/Downloads/opencv-3.4.0/build
sudo make
  • 1
  • 2

第二种: #include "opencv2/xfeatures2d.hpp"
fatal error: opencv2/xfeatures2d.hpp: 没有那个文件或目录
完整的错误:

/home/pi/Downloads/opencv-3.4.0/modules/stitching/src/matchers.cpp:52:10: fatal error: opencv2/xfeatures2d.hpp: 没有那个文件或目录
 #include "opencv2/xfeatures2d.hpp"
          ^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
  • 1
  • 2
  • 3
  • 4

同样的打开对于文件:

vim /home/pi/Downloads/opencv-3.4.0/modules/stitching/src/matchers.cpp
  • 1

将52行左右的

`#include "opencv2/xfeatures2d.hpp"`
  • 1

修改为:

`#include "/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp"`
  • 1

修改好以后重新编译,再次使用下面命令编译:

cd /home/pi/Downloads/opencv-3.4.0/build
sudo make
  • 1
  • 2

第三种:#include “opencv2/xfeatures2d/nonfree.hpp”
fatal error: opencv2/xfeatures2d/nonfree.hpp: 没有那个文件或目录

完整的报错:

/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp:43:10: fatal error: opencv2/xfeatures2d/nonfree.hpp: 没有那个文件或目录
 #include "opencv2/xfeatures2d/nonfree.hpp"
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
  • 1
  • 2
  • 3
  • 4

解决办法:
打开文件:

vim /home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp
  • 1

修改在43行左右的内容:

#include "opencv2/xfeatures2d.hpp"
  • 1

换为

#include "/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp"
  • 1

修改好以后重新编译,再次使用下面命令编译:

cd /home/pi/Downloads/opencv-3.4.0/build
sudo make
  • 1
  • 2

3.文件内容出错

错误:make[2]: *** [modules/python3/CMakeFiles/opencv_python3.dir/build.make:56: modules/python3/CMakeFiles/opencv_python3.dir/__/src2/cv2.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:21149: modules/python3/CMakeFiles/opencv_python3.dir/all] Error 2
make: *** [Makefile:138: all] Error 2
  • 1
  • 2
  • 3

解决办法:
进入对应文件:

cd /home/pi/Downloads/opencv-3.4.0/modules/python/src2
  • 1

进入cv2.cpp文件

vim cv2.cpp
  • 1

找到885行左右
在这里插入图片描述
如图,需要在这前面加上(char *)

然后返回目录,继续编译,停留很久以后便可以通过了。

以上就是会出现的一些问题了,如果还有其他问题实在无法解决的,可以将文件删了重新解压编译会有奇效

编译完成后

编译到100%成功后(愿每一位安装者都能看见100%)
在这里插入图片描述

(1)安装:

sudo make install
  • 1

(2)更新链接库

sudo ldconfig
  • 1

(3)验证opencv
进入终端输入

python3
  • 1

然后输入

import cv2
  • 1

在这里插入图片描述
如果没报错就基本没问题啦

至此opencv就安装好了!!!!!!

节省安装时间,我辈义不容辞!!!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/744097
推荐阅读
相关标签
  

闽ICP备14008679号