树莓派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

相关文章

Java 中的跨域问题解决方法

《Java中的跨域问题解决方法》跨域问题本质上是浏览器的一种安全机制,与Java本身无关,但Java后端开发者需要理解其来源以便正确解决,下面给大家介绍Java中的跨域问题解决方法,感兴趣的朋友一起... 目录1、Java 中跨域问题的来源1.1. 浏览器同源策略(Same-Origin Policy)1.

qtcreater配置opencv遇到的坑及实践记录

《qtcreater配置opencv遇到的坑及实践记录》我配置opencv不管是按照网上的教程还是deepseek发现都有些问题,下面是我的配置方法以及实践成功的心得,感兴趣的朋友跟随小编一起看看吧... 目录电脑环境下载环境变量配置qmake加入外部库测试配置我配置opencv不管是按照网上的教程还是de

如何解决yum无法安装epel-release的问题

《如何解决yum无法安装epel-release的问题》:本文主要介绍如何解决yum无法安装epel-release的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录yum无法安装epel-release尝试了第一种方法第二种方法(我就是用这种方法解决的)总结yum

python3 pip终端出现错误解决的方法详解

《python3pip终端出现错误解决的方法详解》这篇文章主要为大家详细介绍了python3pip如果在终端出现错误该如何解决,文中的示例方法讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下... 目录前言一、查看是否已安装pip二、查看是否添加至环境变量1.查看环境变量是http://www.cppcns

python进行while遍历的常见错误解析

《python进行while遍历的常见错误解析》在Python中选择合适的遍历方式需要综合考虑可读性、性能和具体需求,本文就来和大家讲解一下python中while遍历常见错误以及所有遍历方法的优缺点... 目录一、超出数组范围问题分析错误复现解决方法关键区别二、continue使用问题分析正确写法关键点三

idea中project的显示问题及解决

《idea中project的显示问题及解决》:本文主要介绍idea中project的显示问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录idea中project的显示问题清除配置重China编程新生成配置总结idea中project的显示问题新建空的pr

宝塔安装的MySQL无法连接的情况及解决方案

《宝塔安装的MySQL无法连接的情况及解决方案》宝塔面板是一款流行的服务器管理工具,其中集成的MySQL数据库有时会出现连接问题,本文详细介绍两种最常见的MySQL连接错误:“1130-Hostisn... 目录一、错误 1130:Host ‘xxx.xxx.xxx.xxx’ is not allowed

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设

Jupyter notebook安装步骤解读

《Jupyternotebook安装步骤解读》:本文主要介绍Jupyternotebook安装步骤,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、开始安装二、更改打开文件位置和快捷启动方式总结在安装Jupyter notebook 之前,确认您已安装pytho

Kali Linux安装实现教程(亲测有效)

《KaliLinux安装实现教程(亲测有效)》:本文主要介绍KaliLinux安装实现教程(亲测有效),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、下载二、安装总结一、下载1、点http://www.chinasem.cn击链接 Get Kali | Kal