树莓派学习笔记4-opencv网络图传-1

2023-05-16

前记

为了实现QT编写的上位机显示下位机树莓派的opencv实时画面,因此需要进行opencv的网络图传,包括以下内容
1、QT编写TCP服务端并配置opencv显示摄像头画面
2、python网络编程客户端发送opencv画面到服务端
因此首先进行QT的opencv环境部署

前期准备

本人尝试了多个版本的opencv,最后得出经验为:请使用合适的版本,这个问题很关键!
opencv:3.4.3
QT:5.14.2
cMake:3.8(这个比较随意)
下载链接不再给出,到官网下载即可
将opencv源码准备到一个文件夹
新建一个文件夹用于存放编译后的代码
编译cMake
首先需要配置如下环境变量
在这里插入图片描述
下面开始对opencv源码进行更正(鬼知道特么为什么有错)
1、打开3rdparty\protobuf\src\google\protobuf\stubs\io_win32.cc文件将“nullptr”改为“NULL”**

2、打开modules\photo\test\test_hdr.cpp文件
增加头文件 “#include ”和“#include ”
至此搞定一部分
下面开始痛苦之旅
其后,打开cMake,选择opencv源码路径,选择先前用于存放作用的文件夹
在这里插入图片描述
点击Configure
选择MinGw Makefile
选择Speciy native。。。。
在这里插入图片描述
下一步选择gcc和g++的路径,位于QT安装目录下的Toos中的mingw32_64的bin文件中
在这里插入图片描述
再次点击Configure
正常情况开始报红
找到CMAKE_MAKE_PROGRAM,选择路径为QT的编译器,位于gcc相同路径
在这里插入图片描述
随后再次点击Configure
等待一段时间后更红了
草!
在这里插入图片描述

确保勾选:WITH_OPENGL、WITH_QT、ENABLE_CXX11
取消勾选:WITH_MSMF、WITH_IPP、ENABLE_PRECOMPILED_HEADERS
重点
由于cMake编译需要下载一些dll等文件,网络问题影响较大,本人尝试WIFI并不友好(路由器的WIFI进外网老是不得劲),因此推荐使用手机热点
再度点击Configure,正常来说没有红色报错了
在这里插入图片描述
碰到以上问题(服务器连接不上或者什么下载失败之类的),多半是网络问题,换网多来几次估计就好了
Configure正常以后一般Gnerate也没问题,出现如下画面及成功
在这里插入图片描述

难的在这里

下面使用管理员权限打开CMD,cd到刚刚配置的路径下,使用如下命令开始编译

mingw32-make
mingw32-make -j8	//嫌上面慢的可以用这个,就是笔记本风扇转的有点吓人

随后开始一大串吓人的进程
在这里插入图片描述
但凡不是欧皇,第一次基本不可能成功,大家不要气馁,失败就是用来给我们增长经验的,下面是修改技巧
查看出错前控制台正在执行的步骤,赋值度娘寻找前辈们的方案(但是别轻易修改源码),一般通过修改cMake的配置进行更正,由于本人经历太多错误,无法一一记录,所以不做列举。
随后,碰到突然报错,然后调几百行出来的别急,首先查看错误信息(主要看文件路径),寻找无关的文件(比如python的可执行文件路径啥的),在cMake中进行去除,随后如果碰到某条文件卡死,尝试对cMake进行去除勾选,因为不是每个板块都是有用必须的,大胆尝试即可。

随后,看到如下画面恭喜你
在这里插入图片描述
make成功后继续执行以下指令,一般make没问题那么这一步也不会有问题

mingw32-make install

QT的部署

添加下面代码到QT的pro文件中,注意修改路径

INCLUDEPATH += C:\Users\Lenovo\Desktop\ce\install\include
LIBS += C:\Users\Lenovo\Desktop\ce\lib\libopencv_*.a

先添加头文件#include <opencv2/opencv.hpp>
再在cpp文件中添加如下代码,注意修改图片路径(图片不要有中文!!!)

    cv::Mat image=cv::imread("C:/Users/Lenovo/Desktop/pc/ce.jpg",1);
    cv::namedWindow( "Display window", CV_WINDOW_AUTOSIZE );
    cv::imshow( "Display window", image );

最后成功运行。
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派学习笔记4-opencv网络图传-1 的相关文章

  • git 本地分支与远程分支关联

    github上已经有master分支 和dev分支 在本地 git checkout b dev 新建并切换到本地dev分支 git pull origin dev 本地分支与远程分支相关联 github上没有dev分支 git check
  • 做设计师还是程序员?一张图你就明白!

    平时大家相安无事 xff0c 可一旦项目滑了水 栽了坑 二重奏就开始没完没了的唱起来了 请看下图 xff1a 你的桌子是有什么 小编反手一摸 xff0c 还好小编的头发还再 你头发呢 xff1f 相信这里有很多学习java的朋友 xff0c
  • 【ROS】动态链接库(.so文件)的生成和调用

    ROS 动态链接库 xff08 so文件 xff09 的生成和使用 引言 xff11 生成so文件 xff12 调用so文件 xff13 运行结果结语 引言 由于项目有涉及到源代码是否交付的选项 xff0c 想着如果不交付源代码 xff0c
  • 用TortoiseGit删除git仓库中的文件/文件夹

    用TortoiseGit删除git仓库中的文件 文件夹 点击删除后出现弹框 xff0c 点击删除 删除后会显示移除一个文件 xff1b 想要还原可以在当前文件夹中右键选择TortoiseGit gt 还原 xff08 revert xff0
  • 02-Jetson Xavier NX 训练自己的yolov4-tiny模型并利用TensorRT完成部署(Python API)

    记录原因 xff1a 因前面完成了yolov4 tiny源码的部署 xff0c 可以跑到50FPS 但那个跑的是别人的模型 xff0c 可以识别80类 xff0c 但是在特定的情况下比如识别螺丝螺帽 xff0c 只需要两种 xff0c 在训
  • RPLIDAR在ROS下快速上手教程

    本教程由 臭皮匠机器人 原创 转载请注明出处 收到一个RPLidar后 xff0c 干的第一件事应该是先让雷达跑起来 xff0c 边做边学是最高效的 之前写了一篇在windows底下的 RPLIDAR十分钟极速入门教程 xff0c 今天将教
  • RPLIDAR的坐标系问题

    本教程由 臭皮匠机器人 原创 转载请注明出处 RPLIDAR自身的坐标系 RPLIDAR给出来的数据是角度和距离 xff0c 也就是极坐标系 转换成直角坐标系的话应该照转换公式计算 xff0c 假设r是距离 xff0c theta是角度 x
  • Makefile模板(取自vscode)

    文章目录 Makefile模板vscode插件 xff1a 单一目标编译多个目标 Makefile模板 vscode插件 xff1a 单一目标 最近在学习Makefile写法 xff0c 但是总觉得自己写的太烂了 xff0c 找到了vsco
  • 使用docker-compose配置mysql数据库并且配置用户密码

    下面要求环境 xff1a 一定要安装docker ce和docker compose才能进行下面步骤 linux找到你要放mysql的目录 创建一个docker compose yml 以下配置了外部数据卷 外部配置文件 外部初始化文件 x
  • 使用ONOS的REST API来下发流表

    1 启动ONOS后 xff0c 浏览器进入doc http 10 109 247 211 8181 onos v1 docs 2 找到Flow xff0c 并打开POST 3 可以直接在这个上面编辑flow stream里面模拟GET获得的
  • 形态学处理

    原文链接 xff1a https blog csdn net qq 40732350 article details 116718329 spm 61 1001 2014 3001 5506 形态学处理 0 前言1 腐蚀与膨胀1 1 结构元
  • leetcode用到的函数汇总

    reverse isalnum tolower
  • Keil MDK-ARM软件官网最新版本的下载方法

    我之前的几篇博客讲的都是关于Keil MDK5 ARM软件的一些配置方法 xff0c 但是我居然忘了说一下如何去下载这个软件了 xffe3 xffe3 xff5c xff5c xff0c 今天这篇博客就把这个小知识点补上 第一步 xff0c
  • 给Word文档中的公式自动编号的方法

    最近在做毕业设计 xff0c 然后需要翻译一篇英文文献 xff0c 我在翻译英文文献的时候 xff0c 需要对公式进行编号 xff0c 而且需要使编号显示在最右侧 xff0c 而公式居中 xff0c 像下图这样 xff1a 如果一个个手动添
  • PHP如何使用strrev()函数反转字符串?(代码示例)

    反转字符串是最基本的字符串操作之一 xff0c 在PHP中可以使用内置函数strrev 来实现字符串的反转 下面本篇文章就来带大家了解一下PHP strrev 函数怎么用 xff0c 希望对大家有所帮助 PHP strrev 函数 strr
  • 离线安装Linux包的方法--以imblearn为例

    包的 whl文件直接在https pypi org 上搜索下载就好 xff0c 注意要搜索全名scikit learn xff01 你搜sklearn是找不到合适的包的 如图 xff0c 选择第一个就好 xff1a 接着要匹配你的系统架构和
  • px4 EKF中Q、R阵设置的思考

    关于Q R的讨论 Q阵 xff0c 状态转移误差矩阵 xff0c 代表从Xt 1到Xt过程中 xff0c 状态转移和真实过程之间的误差 xff0c 具体其中变量可能是对状态转移有影响的变量 xff0c 比如在有一些场景下 xff0c 可能为
  • Ubuntu查看硬盘信息

    lsscsi包默认是不安装的 xff0c 可以使用以下命令安装lsscsi span class token function sudo span span class token function apt get span span cl
  • 在Python3环境中使用ROS的cv_bridge

    之前使用ROS的时候只用了C 43 43 xff0c 没有发现cv bridge这个坑 xff0c 最近增加了一个使用tensorflow2的节点 xff0c 为此使用Anaconda配置了一个只有Python3 7的环境 xff0c 运行
  • 解决mac安装完torch_geometric,import的时候报错的问题。

    问题描述 使用torch geometric官方的命令安装好了torch geometric xff0c 安装的过程非常丝滑流畅 xff0c 但是安装好了import的时候就报错OSerror 注意事项 不要用他生成的命令安装 xff1a

随机推荐

  • CXF内容总结

    CXF 61 XFire webservice框架 43 Celtrix ESB框架 http cxf apache org 内置jettyweb服务器 服务器端 xff1a 1 开发webservice接口 xff0c 要用 64 web
  • Could NOT find UV (missing: UV_LIBRARY UV_INCLUDE_DIR)

    cd var tmp git clone https github com libuv libuv git cd libuv autogen sh configure make make install 注 xff1a 下不来直接去网页下载
  • 【STM32】HAL库开发教程(四)—串口FIFO使用

    前言 不必害怕未知 xff0c 无需恐惧犯错 xff0c 做一个Creator xff01 本文主要介绍STM32 HAL库开发中串口 FIFO的使用 一 开发步骤 1 Cubemx配置 在左侧引脚配置栏选择目标串口号在串口模式处配置串口模
  • 【STM32】串口数据帧接收与分析处理算法

    基于对串口FIFO的通信数据帧进行接收和分析处理 xff08 关于串口FIFO使用可以参见作者另一篇博文 xff09 算法流程 xff1a 串口中断函数接收数据到FIFO 根据通信协议GetInterUARTMessage 函数对数据帧进行
  • 【STM32】HAL库开发教程(三)—定时器使用

    前言 不必害怕未知 xff0c 无需恐惧犯错 xff0c 做一个Creator xff01 本文主要介绍STM32 HAL库开发中定时器的使用 一 开发步骤 1 STM32CubeMX配置 在左侧引脚配置处勾选TIM2进行配置在TIM2模式
  • 直立车想节能——2020全国大学生智能车车竞赛经验记录之我想要直立(平衡小车串级pid调参经验)

    平衡车我相信很多电赛测控的入门的玩家都也玩过 xff0c 很多朋友们也都听说过平衡小车之家这家淘宝店铺 而串级PID也是一个经典且牛批的方案而广为人知 xff0c 所以在这样的比赛结束之后作为俩套方案都试过的我 xff0c 谈一谈平衡小车之
  • 慎用apt autoremove

    1 remove 卸载软件包 2 autoremove 卸载所有自动安装且不再使用的软件包 3 purge 卸载并清除软件包的配置 平时经常会卸载或删除一些东西 xff0c 系统也会友好提示你进行自动删除一些相关的文件 xff0c 但是有可
  • 推送镜像到DockerHub报无访问权限

    推送镜像到DockerHub 我们推送镜像到DockerHub时会遇到没有访问资源权限的问题 requested access to the resource is deni ed 这是因为dockerhub不知道是谁推送的镜像 xff0c
  • mysql5主从配置教程

    mysql5主从配置 同学们会有mysql主从配置的需求吗 xff1f 这里我给大家讲一下mysql5 7的主从配置教程 我们通过docker来安装mysql 这样会方便很多 拉取镜像 docker pull docker pull mys
  • 解决ubuntu下kazam录制视频无法在windows播放问题

    记录贴 Kazam是ubuntu下一个功能性截屏软件 xff0c 但是在使用的过程中 xff0c 发现Kazam录屏的视频能够在QQ发送 xff0c 但是只能播放 xff0c 不能下载 xff0c window下也不能播放 查找了一些资料发
  • 深入理解以太网PHY自协商及调试心得

    最近调某个phy芯片 xff0c 心态爆炸 xff0c 不过好歹最后有个好结果 自协商基本原理 自动协商模式是端口根据另一端设备的连接速度和双工模式 xff0c 自动把它的速度调节到最高的公共水平 xff0c 即线路两端能具有的最快速度和双
  • 平衡小车的资料

    根据网上平衡小车之家的资料引脚需要用 xff1a LED PA12 Key PA15 OLED RST Clr PC13 RS Clr PB4 SCLK Clr PC15 SDIN Clr PC14 ADC PA4 TIM3 PB0 PB1
  • 注解

    好处 把问题暴露在编译时期 xff1b 增强程序健壮性 xff1b 可以让JVM检查除了语法错误以外的其他的自定义检查 xff1b 位置 可以加到包 xff0c 类 xff0c 方法 xff0c 字段 xff0c 局部变量等位置 xff1b
  • 【知识图谱】课程笔记1---知识图谱简介

    1 知识图谱 知识图谱是一种基于图的数据结构 由节点 point 和边 Edge 组成 每个节点表示一个 实体 每条边为实体与实体之间的 关系 知识图谱本质上是语义网络 通过这种先验的知识网络 xff0c 让机器像人类一样可以联想 推理 它
  • 特征检测+SIFT点匹配+PNP位姿确定

    SIFT特征检测 43 FLANN点匹配 43 PNP位姿确定 软件环境 windows 10 vs2013 opencv3 1 0 43 opencv3 1 0 contrib 基本原理 1 SIFT 特征点检测 43 匹配 2 PNP位
  • STM32CUBEIDE(MX续)学习笔记(七)——FREERTOS+DMA+队列+循环数组方式进行串口收发

    一 收发主要逻辑 1 接收 xff1a 利用DMA和空闲中断一次接收一帧的不定长数据 xff0c 接收到数据后 暂停 xff08 之后分析为何要暂停而不是停止 xff09 DMA xff0c 快速利用结构体存储接收到数据的地址和长度 xff
  • C语言 malloc() + 结构体指针定义结构体变量

    之前在学习链表的过程中 xff0c 笔者认为新节点必须如下定义 xff1a struct Node p struct Node int val p pNext int main Node Node1 Node Node2 Node Node
  • Windows JDK8 安装

    Windows JDK8 安装 准备步骤安装完成 准备 准备jdk8 官网下载 xff1a https www oracle com java technologies javase javase jdk8 downloads html 根
  • openmv与其他单片双向串口通信

    Openmv与其他单片双向串口通信 目的 为了让openmv进行阈值切换或者只运行某一部分代码 xff0c 因此需要openmv与其他单片建立双向通信进行更改内部参数 起因 openmv自带接收函数uart read 进行接收 xff0c
  • 树莓派学习笔记4-opencv网络图传-1

    前记 为了实现QT编写的上位机显示下位机树莓派的opencv实时画面 xff0c 因此需要进行opencv的网络图传 xff0c 包括以下内容 1 QT编写TCP服务端并配置opencv显示摄像头画面 2 python网络编程客户端发送op