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

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

如何解决线上平台抽佣高 线下门店客流少的痛点!

目前,许多传统零售店铺正遭遇客源下降的难题。尽管广告推广能带来一定的客流,但其费用昂贵。鉴于此,众多零售商纷纷选择加入像美团、饿了么和抖音这样的大型在线平台,但这些平台的高佣金率导致了利润的大幅缩水。在这样的市场环境下,商家之间的合作网络逐渐成为一种有效的解决方案,通过资源和客户基础的共享,实现共同的利益增长。 以最近在上海兴起的一个跨行业合作平台为例,该平台融合了环保消费积分系统,在短

4B参数秒杀GPT-3.5:MiniCPM 3.0惊艳登场!

​ 面壁智能 在 AI 的世界里,总有那么几个时刻让人惊叹不已。面壁智能推出的 MiniCPM 3.0,这个仅有4B参数的"小钢炮",正在以惊人的实力挑战着 GPT-3.5 这个曾经的AI巨人。 MiniCPM 3.0 MiniCPM 3.0 MiniCPM 3.0 目前的主要功能有: 长上下文功能:原生支持 32k 上下文长度,性能完美。我们引入了

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能