前言:最近因为毕设在树莓派上使用Opencv,因此花了两天时间分别装了opencv-3.4.0版本、opencv-4.0.0版本,期间遇到了各种坑(我感觉遇到了安装过程几乎所有的坑了T T),但最后在网上查找相关问题都一步步解决了,写下这篇博客就是总结一下自己的安装经历以及遇到的坑,以后再次安装就可以直接看自己的博客了哈哈!同时也是希望能够系统的总结一下遇到的坑,可以不用遇到一个问题就去查一次百度。最后希望能够帮助到想用树莓派安装opencv的你!
我在安装过程中记录了出现的错误,本文较长,可针对目录进行选择性查阅,不过安装的话还是建议耐心的看一下。
注:文章已经总结了较多易出现的报错问题,也可以参考评论区方法,如需要帮助评论区留言,祝成功!
目录
-
- 卸载opencv
- 安装opencv
- 配置Opencv
- 实例测试
- 问题汇总
-
- 树莓派安装软件,有时候会出现 “下列软件包有未满足的依赖关系:… 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系”
- 遇到想用 aptitude 解决依赖包问题,但是使用 apt-get 安装 aptitude 时出现依赖包错误
- fatal error: /opencv2/xfeatures2d/cuda.hpp: No such file or directory 类问题
- 提示缺少boostdesc_bgm.i 等文件的问题解决方案
- 解决 sudo ldconfig /sbin/ldconfig.real: xxx 不是符号连接 问题
- **fatal error: features2d/test/test_detectors_regression.impl.hpp: No such file or directory**
- Package opencv was not found in the pkg-config search path.问题
- 树莓派编译过程死机/卡死 如99%在cv2.cpp.0处
- fatal error: stdlib.h: 没有那个文件或目录 #include_next
卸载opencv
为什么先说卸载opencv呢?因为大家都说 opencv 从入门到卸载嘻嘻,开个玩笑,因为很有可能安装的版本错误啊等等各种问题导致你要重新安装!
-
查看已安装的opencv版本
pkg-config --modversion opencv
-
卸载
-
方法1:找到安装opencv的build目录,进入该目录进行卸载。比如我安装在/home/pi/Downloads/opencv-4.0.0/build
cd /home/pi/Downloads/opencv-4.0.0/build sudo make uninstall cd .. rm -r build
-
方法2:不知道安装目录在哪,则可以重新建立build目录安装对应版本,然后再执行上边卸载步骤。然后清理/usr中所有opencv相关项
rm -r /usr/local/include/opencv2 /usr/local/include/opencv /usr/include/opencv /usr/include/opencv2 /usr/local/share/opencv /usr/local/share/OpenCV /usr/share/opencv /usr/share/OpenCV /usr/local/bin/opencv* /usr/local/lib/libopencv* cd /usr find . -name "*opencv*" | xargs sudo rm -rf
-
-
移除python相关
-
apt-get remove-doc opencv-data python-opencv
安装opencv
安装前环境准备
安装树莓派系统
-
去官网下载系统镜像,链接贴上:Raspberry Pi OS Downloads
下载如下带桌面的Raspberry Pi OS就可以。
下载完成之后解压,注意路径中不能有中文字符,避免在使用镜像写入工具时出错。 -
格式化内存卡
准备一个16GB或者以上的内存卡,在我的电脑右键–管理–磁盘管理,查看是否只有一个分区,应该是只有一个分区,且为FAT32. -
写入镜像文件
将 .img 镜像文件写入 SD卡,可以使用 Win32 Disk Imager,下载链接:Win32 Disk Imager下载
运行Win32 Disk Imager之后,选择我们下载解压后的img镜像,设备选择TF卡,点击写入,确定,等待写入完成即可。
4.将SD插入树莓派(最好配个显示屏)上电后系统即会开始安装系统,进行简单设置后即可开始使用。
拓展树莓派的文件系统
-
在树莓派终端(或者SSH)上输入:
$ sudo raspi-config
-
然后选择“高级选项”菜单项,选择第7个
-
然后选择“扩展文件系统”
选择第一个回车,会让你重启树莓派,选择立即重启注:如果不能重启,则输入
sudo reboot
重启 -
重新启动后,文件系统已经扩展为包括micro-SD卡上的所有空间。可以通过执行
df -h
检查输出来验证磁盘是否已扩展。
已经释放掉所有内存 容量变成15G!Over!
更换树莓派源为国内镜像源
更换镜像源主要就是为了解决树莓派每次下载都要“远隔重洋”去获取资源时的“龟速”问题
-
在树莓派的命令行界面输入
sudo nano /etc/apt/sources.list
使用nano编辑器编辑source.list -
使用键盘方向键控制,在第一行开头加一个
#
,把下面的内容拷贝到最后一行之后注:网址末尾的
raspbian
重复两次是必须的。因为 Raspbian 的仓库中除了APT软件源还包含其他代码。APT软件源不在仓库的根目录,而在raspbian/
子目录下。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
中科大镜像源
deb http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi deb-src http://mirrors.ustc.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
-
先按键盘上的
ctrl
+o
,再按回车保存,再按ctrl
+x
退出 nano 编辑器回到命令行界面。再输入sudo apt-get update
命令更新到清华大学/中国科技大学镜像源最新的软件列表。 -
今后在树莓派命令行中执行
sudo apt-get install 软件名
时便会自动从清华/中科大开源软件镜像站高速下载 -
最好再重启一下树莓派
sudo reboot
也可以参考该博文:树莓派换镜像源 清华大学镜像源教程
给树莓派增加交换空间SWAP
在开始编译前,建议你增加交换空间。这将使你使用树莓派的所有四个内核来编译OpenCV,而不会由于内存耗尽导致编译挂起。
-
输入
sudo nano /etc/dphys-swapfile
打开 / etc / dphys – swapfile文件 -
然后编辑 CONF_SWAPSIZE 变量为2048或1024:
-
重新启动交换服务
sudo /etc/init.d/dphys-swapfile stop sudo /etc/init.d/dphys-swapfile start
注意:增加交换空间的大小可能烧坏树莓派 microSD卡,因此在我们后续编译完成之后就再改回CONF_SWAPSIZE
正式安装
更新系统
输入sudo apt-get update && sudo apt-get upgrade
更新系统
安装OpenCV所需要依赖的工具和一些图像视频库
-
安装CMake开发人员工具
输入如下命令安装build-essential、cmake、git和pkg-config
sudo apt-get install build-essential cmake git pkg-config
-
安装常用图像工具包:使我们可以从磁盘加载各种图像文件格式
-
输入如下命令安装jpeg格式图像工具包
sudo apt-get install libjpeg8-dev
-
输入如下命令安装tif格式图像工具包
sudo apt-get install libtiff5-dev
-
安装JPEG-2000图像包
sudo apt-get install libjasper-dev
-
安装png图像工具包
sudo apt-get install libpng12-dev
-
-
安装常用视频库:使我们从磁盘读取各种视频文件格式,以及直接使用视频流
-
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt-get install libxvidcore-dev libx264-dev
-
-
安装GTK2.0
-
sudo apt-get install libgtk2.0-dev
-
-
安装数值函数优化包
-
sudo apt-get install libatlas-base-dev gfortran
-
-
装Python 2.7和Python 3头文件,这样我们就可以使用Python绑定编译OpenCV
-
sudo apt-get install python2.7-dev python3-dev
-
下载opencv源码
我下载的是opencv4.0.0版本,选择其他版本也可以,直接按照网站去下载源代码
-
下载Opencv-4.0.0
方法1:树莓派终端输入命令
-
wget -O opencv-4.0.0.zip https://github.com/Itseez/opencv/archive/4.0.0.zip
方法2:电脑上进入该网页
https://github.com/Itseez/opencv/archive/4.0.0.zip
下载后通过U盘拷贝到树莓派 -
-
下载OpenCV_contrib-4.0.0
方法1:树莓派终端输入命令
wget -O opencv_contrib-4.0.0.zip https://github.com/Itseez/opencv_contrib/archive/4.0.0.zip
方法2:电脑上进入该网页
https://github.com/Itseez/opencv_contrib/archive/4.0.0.zip
下载后通过U盘拷贝到树莓派 -
解压Opencv-4.0.0和OpenCV_contrib-4.0.0
unzip opencv-4.0.0.zip unzip opencv_contrib-4.0.0.zip
配置CMake编译OPencv环境
使用CMake设置编译,然后运行 make 来编译OpenCV。这是整个过程中耗时最长的步骤,大约4个小时。回到OpenCV存储库并创建 build 文件夹,用来存放 CMake 编译时产生的临时文件。
-
进入opencv安装目录 注:我这里将解压Opencv-4.0.0和OpenCV_contrib-4.0.0在了/home/pi/opencv目录下
-
cd /home/pi/opencv/opencv-4.0.0
-
-
新建 build 文件夹,存放 CMake 编译时产生的临时文件
-
mkdir build
-
-
进入 build 文件夹
-
cd ./build
-
设置CMake编译参数,安装目录默认为 /usr/local
首先进入build 文件夹cd /home/pi/opencv/opencv-4.0.0/build
注意参数名、等号和参数值之间不能有空格,每行末尾“\”之前有空格,这里使用换行符“\”是为了看起来工整,参数值最后是两个英文的点
注:如果在root用户下执行cmake命令,请将OPENCV_EXTRA_MODULES_PATH的值改为绝对路径,如:/home/pi/opencv_contrib-3.4.3/modules
- CMAKE_BUILD_TYPE 是编译方式
- CMAKE_INSTALL_PREFIX 是安装目录
- OPENCV_EXTRA_MODULES_PATH 是加载额外模块
- INSTALL_PYTHON_EXAMPLES 是安装官方python例程
- BUILD_EXAMPLES 是编译例程
- OPENCV_GENERATE_PKGCONFIG : 自动配置pkg-config , 因为OpenCV 4 配置默认不产生
opencv4.pc
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=/home/pi/opencv/opencv_contrib-4.0.0/modules \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D INSTALL_CXX_EXAMPLES=ON \
-D OPENCV_GENERATE_PKGCONFIG=ON \
-D BUILD_EXAMPLES=ON ..
注:想要C语言的例程的话,在最后一行前加参数INSTALL_C_EXAMPLES=ON
注:OPENCV_GENERATE_PKGCONFIG=ON建议一定要加上,博主因为当时没加这个在opencv.pc这块绕了半天,官方解释如下:
Add this flag when running CMake: -DOPENCV_GENERATE_PKGCONFIG=ON Will generate the .pc file for pkg-config and install it. Useful if not using CMake in projects that use OpenCV Installed as opencv4, usage: pkg-config --cflags --libs opencv4
帮大家翻译下 ^ ^:
当运行CMake: -DOPENCV_GENERATE_PKGCONFIG=ON时添加这个标志将生成pkg-config的.pc文件并安装它。如果在使用OpenCV作为opencv4安装的项目中没有使用CMake,则使用"pkg-config——cflags——libs opencv4"
配置完成后如下:
完成后我们备份一下build文件夹:
cd ..
cp -r build ./build1
编译OpenCV
-
编译
输入命令
sudo make -j4 2>&1 | tee make.log
开始编译注意:
以管理员身份,否则容易出错
make命令参数-j4指允许make使用最多4个线程进行编译,这样编译速度会更快!但是如果没有增加交换空间的话就老老实实只用make
使用tee命令可以将编译过程中终端显示的信息保存到make.log文件中,便于查看,这样即使VNC断线,终端的* 信息太多看不到,也 可以通过make.log文件查看编译过程。
如果有幸一次就看到进度编译到100%,那么恭喜你是天选之子,说明编译安装成功。如果没有的话,那也很正常,文章末尾总结了许多可能出现的问题。
-
安装
输入
sudo make install
开始安装
-
更新动态链接库
输入
sudo ldconfig
注意:是 L 的小写 l 而不是 i 的大写哦
!!!!这个时候你是不是忘记了什么事情?
对! 不要忘记回到 /etc/dphys-swapfile 文件并将 CONF_SWAPSIZE 重置为 100,然后重新启动交换服务
sudo nano /etc/dphys-swapfile
修改CONF_SWAPSIZE=100
重启交换服务
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
安装就结束了,可以删除之前的源代码包,释放空间
rm -rf opencv-4.1.0 opencv_contrib-4.1.0
配置Opencv
配置opencv.conf
输入命令打开opencv.conf配置文件
sudo nano /etc/ld.so.conf.d/opencv.conf
在文件末尾加入如下内容,并保存推出
/usr/local/lib
?
如图所示:
输入如下命令,更新下ldconfig
sudo ldconfig
bash.bashrc 配置文件
输入命令sudo nano /etc/bash.bashrc
打开bash.bashrc配置文件
在最后添加如下内容:(后面会讲pkgconfig和PKG_CONFIG_PATH是什么)
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出后输入命令sudo reboot
重启树莓派
我们可以通过下面命令来查看已添加的PKG_CONFIG_PATH环境变量:
echo $PKG_CONFIG_PATH
实例测试
我们安装 cmake gui,使用图形界面会比较方便些
sudo apt-get install cmake-gui
创建文件名为 Thresholds.cpp 并编写 opencv 的代码,代码如下:
#include<opencv2/opencv.hpp>
#include<opencv2/highgui.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int Threshold_size = 127;
int Threshold_max = 255;
int Thres_type = 0;
int Type_max = 4;
Mat src,dst,gray;
void Threshold_Demo(int , void *);
int main(int argc,char** argv)
{
src = imread("/home/pi/opencv/projectTest/abc.jpg",IMREAD_COLOR);
if(!src.data)
{
cout<<"img load error..."<<endl;
return -1;
}
namedWindow("src1",WINDOW_NORMAL);
resizeWindow("src1",400,500);
imshow("src1",src);
namedWindow("out",WINDOW_NORMAL);
resizeWindow("out",400,500);
cvtColor(src,gray,COLOR_BGR2GRAY);
/* threshold(gray,dst,0,255,THRESH_OTSU);//THRESH_OTSU: 自动设定合适阈值 imshow("out",dst); */
createTrackbar("thresh_size","out",&Threshold_size,Threshold_max,Threshold_Demo);
createTrackbar("threshold_type","out",&Thres_type,Type_max,Threshold_Demo);
Threshold_Demo(0,0);
waitKey(0);
return 0;
}
/* THRESH_BINARY : 0 THRESH_BINARY_INV : 1 THRESH_TRUNC : 2 THRESH_TOZERO : 3 THRESH_TOZERO_INV : 4 */
void Threshold_Demo(int , void *)
{
threshold(gray,dst,Threshold_size,Threshold_max,Thres_type);
imshow("out",dst);
}
图片 abc.jpg
将 .cpp 文件以及图片 abc.jpg 一并放在/home/pi/opencv/projectTest/abc.jpg 目录下.
在刚刚的projectTest文件夹里新建一个.txt文件,取名为CMakeLists.txt。CMakeLists的内容可以到Opencv的安装目录中找到Opencv官方的例子中直接复制过来就可以,不过需要改几个地方。(注意:CMakeLists.txt不是CmakeLists.txt,否则报错,之前看一个博主可能写错了写的CmakeLists.txt)
# cmake needs this line
cmake_minimum_required(VERSION 2.8)
# Define project name
project(opencv_example_project)
# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED)
# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
# Print some message showing some of them
message(STATUS "OpenCV library status:")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
if(CMAKE_VERSION VERSION_LESS "2.8.11")
# Add OpenCV headers location to your include paths
include_directories(${
OpenCV_INCLUDE_DIRS})
endif()
# Declare the executable target built from your sources
add_executable(opencv_example opencvtest.cpp)
# Link your application with OpenCV libraries
target_link_libraries(opencv_example ${
OpenCV_LIBS})
将add_executable中的opencvtest.cpp文件改成自己写的代码的文件名,这样才可以知道编译的是哪个文件。
使用cmake-gui编译
cmake-gui
打开cmake-gui后看到界面,源代码处我们选择刚刚创建的文件夹,二进制文件一样也选择刚刚创建的文件夹,点击Add Entry,输入Opencv的安装位置,选择build文件夹。如图所示:
接着分别点击Configure和Generate,显示Configure Done和Generate Done就说明成功。
回到终端,cd进入刚刚的文件夹,输入ls
查看生成了可执行文件 opencv_example
输入./opencv_example
后程序运行效果如图所示:
程序效果为拖动 TrackBar 来改变设定阈值Thresh_size以及黑白二值化类型threshold_type,从而改变图像处理结果。
问题汇总
树莓派安装软件,有时候会出现 “下列软件包有未满足的依赖关系:… 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系”
解决方法:
安装aptitude,它能智能添加依赖文件
sudo apt-get install aptitude
然后使用aptitude安装相关软件
sudo aptitude install 软件名
注意:在使用该命令sudo aptitude install 软件名
时需要注意,在最开始出现选择Y/n/q/?时要选择‘n’。这样才是降级安装。不然还是会安装失败。之后就可以一路选‘Y’了。
遇到想用 aptitude 解决依赖包问题,但是使用 apt-get 安装 aptitude 时出现依赖包错误
针对上述问题,你想用aptitude 解决依赖关系,但是偏偏执行sudo apt-get install aptitude
命令时又出现依赖包错误
问题原因:
树莓派版本和镜像源不对应!相关信息如下:
解决方法:
使用命令lsb_release -a
查看当前树莓派系统版本,具体信息如下,此版本的代号为 “buster”
pi@raspberrypi:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 10 (buster)
Release: 10
Codename: buster
然后去看了一下使用镜像源的地址,使用的版本代号为 “stretch”
deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
那么把对应的 “stretch” 改为“buster”就行了
fatal error: /opencv2/xfeatures2d/cuda.hpp: No such file or directory 类问题
这个是我在装opencv-3.4.0版本的时候遇到的问题,解决方法也是参考了一位博主的分享,在此感谢!
问题如下:
/usr/local/arm/opencv-3.4.0/opencv_contrib-3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp:42:10:
fatal error: /opencv2/xfeatures2d.hpp: No such file or directory
#include "/opencv2/xfeatures2d.hpp"
^~~~~~~~~~~~~~~~~~~~~~~~~~
根据给的路径找到xfeature2d.hpp的文件并打开,找到” #include”/opencv2/xfeatures2d.hpp “如下:
40 #ifndef __OPENCV_XFEATURES2D_HPP__
41 #define __OPENCV_XFEATURES2D_HPP__
42 #include"/opencv2/xfeatures2d.hpp"
将其改为绝对路径
40 #ifndef __OPENCV_XFEATURES2D_HPP__
41 #define __OPENCV_XFEATURES2D_HPP__
42#include"home/pi/opencv/opencv_contrib3.4.0/modules/xfeatures2d/include/opencv2/xfeatures2d.hpp"
提示缺少boostdesc_bgm.i 等文件的问题解决方案
报错如下:
/home/pi/opencv/opencv_contrib-4.0.0/modules/xfeatures2d/src/boostdesc.cpp fatal error: 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
...
通过U盘拷贝到***opencv_contrib/modules/xfeatures2d/src/***目录下
附上百度云链接:https://pan.baidu.com/s/1BeYF8kqEZLAJYQj-MvxpmA
提取码:e1wc
解决 sudo ldconfig /sbin/ldconfig.real: xxx 不是符号连接 问题
有可能是在同一个目录下有两个重名(.so前面部分相同)的 .so 动态链接库,例如:
/usr/lib/libtest.so
/usr/lib/libtest.so.xxx
解决方法:
找个这两个库文件,删掉其中一个即可
fatal error: features2d/test/test_detectors_regression.impl.hpp: No such file or directory
原因是没找到这个文件
解决方法如下:
将/home/pi/opencv/opencv-4.0.0/ modules / features2d复制,然后粘贴到/home/pi/opencv/opencv-4.0.0/build目录中来解决该问题
Package opencv was not found in the pkg-config search path.问题
执行 pkg-config 时报错,如下:
ackage opencv was not found in the pkg-config search path.
Perhaps you should add the directory containing `opencv.pc' to the PKG_CONFIG_PATH environment variable
意思是在 PKG_CONFIG_PATH
环境变量中没有找到 opencv
的配置文件 ‘opencv.pc’
,即 opencv
不在 pkg-config
的搜索路径,那什么是 pkg-config
?什么是 PKG_CONFIG_PATH
?
pkg-config:
pkg-config
就是通过库提供的一个 .pc
文件获得库的各种必要信息的,包括版本信息、编译和连接需要的参数等。通过 pkg-config
提供的参数–cflags, –libs
,将所需信息提取出来供编译和连接使用。这样,不管库文件安装在哪,通过库对应的 .pc
文件就可以准确定位。
PKG_CONFIG_PATH:
pkg-config
默认会搜索 /usr/lib/pkgconfig
和/usr/share/pkgconfig
下的 .pc
配置文件,若我们源码编译的库的路径不在 pkg-config
的默认搜索路径下,则可以通过环境变量 PKG_CONFIG_PATH
将自定义的路径添加到 pkg-config
的搜索路径。
export PKG_CONFIG_PATH = /your/path:$PKG_CONFIG_PATH
通过下面命令来查看已添加的环境变量:
echo $PKG_CONFIG_PATH
配置opencv.pc文件
如果在 /usr/local/lib/pkgconfig 路径下没有opencv.pc文件,那我们就创建一个,有的话就进行修改。
没有opencv.pc文件就执行以下命令:
cd /usr/local/lib
sudo mkdir pkgconfig && cd pkgconfig
sudo nano opencv.pc
# 在 opencv.pc 文件里添加如下内容
prefix=/usr/local
exec_prefix=${prefix}
includedir=~/local/include
libdir=~/local/lib
Name: OpenCV
Description: Open Source Computer Vision Library
Version: 4.0.0
Libs: -L${exec_prefix}/lib -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_dnn_objdetect -lopencv_dpm -lopencv_face -lopencv_photo -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_hfs -lopencv_img_hash -lopencv_line_descriptor -lopencv_optflow -lopencv_reg -lopencv_rgbd -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_surface_matching -lopencv_tracking -lopencv_datasets -lopencv_text -lopencv_dnn -lopencv_plot -lopencv_xfeatures2d -lopencv_shape -lopencv_video -lopencv_ml -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_highgui -lopencv_videoio -lopencv_flann -lopencv_xobjdetect -lopencv_imgcodecs -lopencv_objdetect -lopencv_xphoto -lopencv_imgproc -lopencv_core
Libs.private: -ldl -lm -lpthread -lrt
Cflags: -I${includedir}
树莓派编译过程死机/卡死 如99%在cv2.cpp.0处
树莓派编译过程死机问题:
一种可能是没有在编译前增加交换空间CONF_SWAPSIZE=2048
另外一种就是很玄学,在编译的时候使用sudo make -j4
命令会卡在99%,改为sudo make
单线程编译解决了问题,不过时间会长一些。特别是在编译 cv2.cpp.0 和cv3时,我一度以为又卡死了,差一点终止了,所以在单线程 make 时要有耐心!
可以参考这篇博文:https://blog.csdn.net/lionwerson/article/details/105893952
fatal error: stdlib.h: 没有那个文件或目录 #include_next <stdlib.h>
cmake时加上参数-D ENABLE_PRECOMPILED_HEADERS=OFF
[ 76%] Linking CXX shared library …/…/lib/libopencv_ximgproc.so [ 76%] Built target opencv_ximgproc make: *** [Makefile:163:all] 错误 2
import cv2 报错 no modul name cv2 可参考
http://www.manongjc.com/article/26926.html
其他技术博文
修改树莓派交换分区 SWAP 的正确方法:https://shumeipai.nxez.com/2017/12/18/how-to-modify-raspberry-pi-swap-partition.html
Ubuntu 16.04 OpenCV 源码安装、自定义环境变量 PKG_CONFIG_PATH:https://zhuanlan.zhihu.com/p/85959787?from_voters_page=true
今天的文章树莓派安装Opencv方法总结,包括各种报错解决方法分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/27112.html