树莓派4B安装opencv以及错误解决

2024-05-16 16:38

本文主要是介绍树莓派4B安装opencv以及错误解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

欢迎访问我的博客:konosuba.xyz

更新于2020/4/27 更新:换了个树莓派4B,安装opencv的时候遇到了一些之前没碰到的问题,在这里记录一下

主要参考opencv官网文档和博客树莓派+Opencv(一)图像处理

树莓派4B上安装参考:树莓派4B 安装opencv完整教程基于python3(各种错误解决)

下载安装依赖项

sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

在4B上安装时遇到libgtk2.0-dev安装失败的问题:

这是因为依赖项版本太高了,需要降级安装。所以可以使用命令sudo aptitude install libgtk2.0-dev来进行安装

在安装过程中,首先会给出一个方案提示是否接受,第一个给出的方案是保留原依赖项,我们要输入n否定它,之后给出第二个方案是降级安装,输入Y使用该方案

其中aptitude是一个类似apt-get的包管理工具,但是它能更好处理依赖问题,支持降级安装

下载源码

从GitHub下载:

opencv

opencv_contrib

两个都下载.zip压缩包即可

解压源码并进入文件夹

unzip opencv-4.3.0.zip
unzip opencv_contrib-4.3.0.zip
cd opencv-4.3.0

创建一个build文件夹用于编译

mkdir build
cd build

运行cmake-gui

这一步其实也可以直接使用cmake配合各类参数,不过我觉得图形化界面方便一点

cmake-gui

选择源码路径和编译路径后点击Configure

cmake-gui

之后在中间的选择框中找到项目BUILD_TESTS,把它的复选框取消

这一步是因为后面编译过程中,总是由于opencv_test_xxx这类项目导致编译失败,因此我在这里将它取消

之后点击Generate生成,最后输出如图所示则可以进行下一步

generate

编译

build目录执行make开始编译,-j表示使用多少线程进行编译,不加数字代表不限制(很容易出问题,不推荐)

之前使用树莓派3B我选择的-j1,用时约3小时;现在4B我选的是-j4,用时约半个小时

sudo make -j4

make

问题

我的4B在这一步就遇到了一个问题,如图

(这个图我是找的其他人的,不过错误都是一样的)

这是一个包丢失的问题,解决方案:

可以在一个大佬的百度云盘里下载

将所有带i结尾的文件全部都拷贝到opencv_contrib/modules/xfeatures2d/src/ 路径下即可
树莓派安装opencv时丢失的文件:
链接:https://pan.baidu.com/s/1xi6_5NuTFiP4SD649FgIJw
提取码:mbsj
原文链接:https://blog.csdn.net/weixin_43308627/article/details/97814927

之后重新make就可以再次开始

安装库

build目录执行

sudo make install

完成后opencv就已经配好了

测试

Python运行

使用这里提供的测试程序测试opencv是否正常

# -*- coding:utf-8 -*-
import cv2
import numpy as np
cv2.namedWindow("gray")
img = np.zeros((512,512),np.uint8)#生成一张空的灰度图像
cv2.line(img,(0,0),(511,511),255,5)#绘制一条白色直线
cv2.imshow("gray",img)#显示图像
#循环等待,按q键退出
while True:key=cv2.waitKey(1)if key==ord("q"):break
cv2.destoryWindow("gray")

最后运行正常,如图

python-opencv

C++运行

先使用cmake编译,再使用make编译

编写cpp代码

#include <iostream>
#include <opencv2/opencv.hpp>
using namespace std; 
using namespace cv; int main(int argc, char const *argv[])
{Mat img = imread("image.jpg"); if (img.empty()){cout << "error!" << endl; exit(0)}namedWindow("image1", WINDOW_NORMAL); namedWindow("image2", WINDOW_NORMAL); imshow("image1", img); cvtColor(img, img, COLOR_BGR2GRAY); blur(img, img, Size(7, 7)); Mat edges; Canny(img, edges, 3, 9, 3); imshow("image2", edges); waitKey(0); return 0; 
}

在同目录创建CMakeLists.txt文件

内容:

cmake_minimum_required(VERSION 2.6)
project(test_opencv) #项目名 可改
find_package(OpenCV REQUIRED)
add_executable(test_opencv test_opencv.cpp) #项目名和cpp文件名
target_link_libraries(test_opencv ${OpenCV_LIBS}) #项目名

之后就能用cmake编译啦

cmake .
make

运行

编译完成后,使ls查看目录下文件

ls-opencv_test

绿色的就是编译生成的文件

运行试试

./opencvtest

1

于是树莓派的opencv终于安装完成啦,接下来就要调用树莓派摄像头啦

这篇关于树莓派4B安装opencv以及错误解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995402

相关文章

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

IDEA编译报错“java: 常量字符串过长”的原因及解决方法

《IDEA编译报错“java:常量字符串过长”的原因及解决方法》今天在开发过程中,由于尝试将一个文件的Base64字符串设置为常量,结果导致IDEA编译的时候出现了如下报错java:常量字符串过长,... 目录一、问题描述二、问题原因2.1 理论角度2.2 源码角度三、解决方案解决方案①:StringBui

部署Vue项目到服务器后404错误的原因及解决方案

《部署Vue项目到服务器后404错误的原因及解决方案》文章介绍了Vue项目部署步骤以及404错误的解决方案,部署步骤包括构建项目、上传文件、配置Web服务器、重启Nginx和访问域名,404错误通常是... 目录一、vue项目部署步骤二、404错误原因及解决方案错误场景原因分析解决方案一、Vue项目部署步骤

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

Python Jupyter Notebook导包报错问题及解决

《PythonJupyterNotebook导包报错问题及解决》在conda环境中安装包后,JupyterNotebook导入时出现ImportError,可能是由于包版本不对应或版本太高,解决方... 目录问题解决方法重新安装Jupyter NoteBook 更改Kernel总结问题在conda上安装了

Goland debug失效详细解决步骤(合集)

《Golanddebug失效详细解决步骤(合集)》今天用Goland开发时,打断点,以debug方式运行,发现程序并没有断住,程序跳过了断点,直接运行结束,网上搜寻了大量文章,最后得以解决,特此在这... 目录Bug:Goland debug失效详细解决步骤【合集】情况一:Go或Goland架构不对情况二:

解决jupyterLab打开后出现Config option `template_path`not recognized by `ExporterCollapsibleHeadings`问题

《解决jupyterLab打开后出现Configoption`template_path`notrecognizedby`ExporterCollapsibleHeadings`问题》在Ju... 目录jupyterLab打开后出现“templandroidate_path”相关问题这是 tensorflo

如何解决Pycharm编辑内容时有光标的问题

《如何解决Pycharm编辑内容时有光标的问题》文章介绍了如何在PyCharm中配置VimEmulator插件,包括检查插件是否已安装、下载插件以及安装IdeaVim插件的步骤... 目录Pycharm编辑内容时有光标1.如果Vim Emulator前面有对勾2.www.chinasem.cn如果tools工

在MySQL执行UPDATE语句时遇到的错误1175的解决方案

《在MySQL执行UPDATE语句时遇到的错误1175的解决方案》MySQL安全更新模式(SafeUpdateMode)限制了UPDATE和DELETE操作,要求使用WHERE子句时必须基于主键或索引... mysql 中遇到的 Error Code: 1175 是由于启用了 安全更新模式(Safe Upd

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及