赞
踩
期末项目需要在树莓上进行图像识别
需要使用opencv因此就开始各种采坑之路
整整一个下午的时间,各种报错!!!!!
安装完成后简直热泪盈眶!!!
但愿后面再安装opencv的人能快点解决这个鬼东西。
1.安装numpy
打开终端 使用pip3(pip默认指的是python2.7的pip)进行安装numpy依赖库
sudo pip3 install numpy
2.扩大根目录到整个SD卡(占用内存较大,不进行扩展会卡住)
(1) 打开终端 输入以下命令 进入树莓派配置界面
sudo raspi-config
(2)进入一下界面,选择7 Advanced Options (上下方向键选择,回车键确定)
(3)接着进入一下界面,选择A1 Expand Filesystem,回车
(4)回车后进入如下界面,按回车确定
(5)接着回到原来界面,按两次右方向键后选择Finish回车,然后回车选择重启reboot
1.换源
重启完成后第一件事就是换源(如果已经换过国内源这步跳过)
这里使用的是清华镜像源(感觉清华的比中科大的源快多了)
在终端输入如下指令
sudo nano /etc/apt/sources.list
将所有内容先打上注释(开头加个#)然后输入如下内容
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
图示
接着按Ctrl+O,回车保存,按Ctrl+ X关闭
修改完成并保存后关闭,输入如下指令
sudo nano /etc/apt/sources.list.d/raspi.list
同样的先将所有内容注释,输入如下内容
deb http://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main ui
接着同步更新源,终端输入如下命令:
sudo apt-get update
接着升级及安装软件包,这个过程耗时较长(时长约为一集英剧:是,首相!)
sudo apt-get upgrade
到这里源就更换好了!!!
(1)安装build-essential、cmake、git和pkg-config
sudo apt-get install build-essential cmake git pkg-config
(2)安装jpeg格式图像工具包
sudo apt-get install libjpeg8-dev
(3)安装tif格式图像工具包
sudo apt-get install libtiff5-dev
(4)安装JPEG-2000图像工具包
sudo apt-get install libjasper-dev
(5)安装png图像工具包
sudo apt-get install libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
以上没出错就说明成功
(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
sudo unzip opencv_contrib-3.4.0.zip
sudo unzip opencv3_cmake_files.zip
(1)终端进入进入 /home/pi/Downloads/opencv-3.4.0 文件夹下
cd /home/pi/Downloads/opencv-3.4.0
(2)创建文件夹build并进入
sudo mkdir build
cd build/
(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)进入build目录下
cd /home/pi/Downloads/opencv-3.4.0/build
(2)使用命令编译
sudo make
开始编译等待错误的出现,大概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. ....
解决办法
将之前下载的opencv3_cmake_files里面的所有后缀为i的文件放入到
/home/pi/Downloads/opencv_contrib-3.4.1/modules/xfeatures2d/src/
(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
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.
解决办法:
打开目标文件,把相对路径改成绝对路径(应该在文件的第52行左右,没有修改权限则先开放权限)
vim /home/pi/Folder/opencv-3.4.3/modules/stitching/include/opencv2/stitching/detail/matchers.hpp
更换后的绝对路径
#include "/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d/cuda.hpp"
同理出现如下错误
/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.
则按照上面同样放法修改
如果修改好了则重新编译,再次使用下面命令编译:
cd /home/pi/Downloads/opencv-3.4.0/build
sudo make
第二种: #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.
同样的打开对于文件:
vim /home/pi/Downloads/opencv-3.4.0/modules/stitching/src/matchers.cpp
将52行左右的
`#include "opencv2/xfeatures2d.hpp"`
修改为:
`#include "/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp"`
修改好以后重新编译,再次使用下面命令编译:
cd /home/pi/Downloads/opencv-3.4.0/build
sudo make
第三种:#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.
解决办法:
打开文件:
vim /home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp
修改在43行左右的内容:
将
#include "opencv2/xfeatures2d.hpp"
换为
#include "/home/pi/Downloads/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp"
修改好以后重新编译,再次使用下面命令编译:
cd /home/pi/Downloads/opencv-3.4.0/build
sudo make
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
解决办法:
进入对应文件:
cd /home/pi/Downloads/opencv-3.4.0/modules/python/src2
进入cv2.cpp文件
vim cv2.cpp
找到885行左右
如图,需要在这前面加上(char *)
然后返回目录,继续编译,停留很久以后便可以通过了。
以上就是会出现的一些问题了,如果还有其他问题实在无法解决的,可以将文件删了重新解压编译会有奇效
编译到100%成功后(愿每一位安装者都能看见100%)
(1)安装:
sudo make install
(2)更新链接库
sudo ldconfig
(3)验证opencv
进入终端输入
python3
然后输入
import cv2
如果没报错就基本没问题啦
节省安装时间,我辈义不容辞!!!!!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。