物联网设计竞赛_5_Jetson Nano连接摄像头解决运行卡顿问题

我在命令行用camorama命令打开摄像头的时候发现摄像头非常流畅

当我用python的cv2库打开摄像头的时候发现摄像头显示图片异常卡顿,在网上多方寻觅无果后,经过偶然尝试,我发现了卡顿原来是视频帧率问题

淘宝官方资料看我的摄像头只有30fps, 但我不知道为什么cv2打开我的摄像头默认是3.0帧

以下为将摄像头修改为30帧并打开摄像头显示的代码:

import cv2
import time
def main():# 尝试打开摄像头cap = cv2.VideoCapture(0)if not cap.isOpened():print("打开摄像头失败")returnfss = cap.get(cv2.CAP_PROP_FPS)print(f"默认帧率为 {fss}")# 设置帧率fps = 30  # 我的摄像头只有3.0帧率和30帧率 final = cap.set(cv2.CAP_PROP_FPS, fps)print(f"{final}")fds = cap.get(cv2.CAP_PROP_FPS)print(f"设置帧率为 {fds}")# 创建窗口window_handle = cv2.namedWindow("D435", cv2.WINDOW_AUTOSIZE)# 计算一下实际帧率 start_time = time.time()frame_count = 0# 逐帧显示while cv2.getWindowProperty("D435", 0) >= 0:ret_val, img = cap.read()if ret_val:cv2.imshow("D435", img)frame_count += 1else:print("捕获帧失败")break# 5s一计算if time.time() - start_time >= 5:elapsed_time = time.time() - start_timeactual_fps = frame_count / elapsed_timeprint(f"实际帧率为: {actual_fps:.2f}")start_time = time.time()  # 重置计时器frame_count = 0  # 重置帧计数keyCode = cv2.waitKey(30) & 0xFFif keyCode == 27:  # ESC键退出break# 释放摄像头和销毁所有窗口cap.release()cv2.destroyAllWindows()if __name__ == "__main__":main()

用上述代码30帧显示的效果就非常流畅了

说实话函数返回给我的结果也挺离奇的

# 设置帧率fps = 30  # 我的摄像头只有3.0帧率和30帧率 final = cap.set(cv2.CAP_PROP_FPS, fps)print(f"{final}")fds = cap.get(cv2.CAP_PROP_FPS)print(f"设置帧率为 {fds}")

这一块理应返回的是3.0 true 30但是却返还
在这里插入图片描述
下方实际帧率是我通过5s内传递图片的数量 / 5得出来的实际帧率

也就是说吧我的摄像头其实设置帧率为30fps成功了,但是代码返还的结果是设置失败我真是服了,这可能是jetson和摄像头之间产生了奇妙BUG吧

默认情况下cv2打开我的摄像头确实是3.0帧, 但产品上都没有显示能3.0帧…
在这里插入图片描述

但确实默认帧率是3.0在这里插入图片描述
怎么说呢啥稀奇古怪的情况,都少不了我踩雷😭

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/328315.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

##21 深入理解文本处理:使用PyTorch进行NLP基础操作

文章目录 前言简介文本预处理实现分词构建词汇表 文本向量化构建简单的文本分类模型结论 前言 在现代深度学习应用中,文本处理是不可或缺的一部分,尤其在自然语言处理(NLP)领域。借助强大的框架如PyTorch,我们可以更加…

超实用的excel进销存管理系统(75份),自带库存预警,直接用!

进销存(Inventory Management)是企业管理中的一个核心组成部分,它涉及到商品的采购(进货)、销售和存储(库存)等环节。有效的进销存管理可以帮助企业降低成本、提高效率和客户满意度。 1. 采购管…

LeetCode 题目 119:杨辉三角 II

❤️❤️❤️ 欢迎来到我的博客。希望您能在这里找到既有价值又有趣的内容,和我一起探索、学习和成长。欢迎评论区畅所欲言、享受知识的乐趣! 推荐:数据分析螺丝钉的首页 格物致知 终身学习 期待您的关注 导航: LeetCode解锁100…

Transformer - Self-Attention层的复杂度的计算

Transformer - Self-Attention层的复杂度的计算 flyfish 矩阵的维度 下面矩阵的维度是32即 3行,2列 6,10等都是矩阵里的元素 如果矩阵A的列数与矩阵B的行数相同,那么这两个矩阵可以相乘。即,若A是一个mn矩阵,B是一个np矩阵&am…

c++多态机制

多态 在 C 中,多态(Polymorphism)是一种面向对象编程的重要概念,它允许不同类的对象对同一消息做出不同的响应。具体来说,多态性允许基类的指针或引用在运行时指向派生类的对象,并且根据对象的实际类型来调…

ASP.NET在线二手交易系统的设计与实现

摘 要 随着当今社会信息技术的进步,基于互联网的各种应用日益受到了人们的重视,二手商品的重新利用也逐渐被人们关注,二手交易系统就在这种形势下产生了,它利用网络,改变了人们的购物方式。 本文是基于现代二手交易…

Java入门基础学习笔记22——程序流程控制

程序流程控制:控制程序的执行顺序。 程序有哪些执行顺序? 顺序、分支和循环。 分支结构: if、switch 循环: for、while、do-while 顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码…

SpringBoot上传文件到服务器(跨服务器上传)

目录 (一)上传文件到本地(windows) (二)上传文件到linux服务器 (三)跨服务器上传文件 (一)上传文件到本地(windows) 1.新建一个文件…

【OpenHarmony IDL工具规格及使用说明书】

OpenHarmony IDL工具规格及使用说明书 IDL接口描述语言简介 当客户端和服务器进行IPC通信时,需要定义双方都认可的接口,以保障双方可以成功通信,OpenHarmony IDL(OpenHarmony Interface Definition Language)则是一种…

Python代码:二、多行输出

1、题目 将字符串 Hello World! 存储到变量str1中,再将字符串 Hello Nowcoder! 存储到变量str2中,再使用print语句将其打印出来(一行一个变量)。 2、代码 import sys str1 Hello World! str2 Hello Nowcoder! print (str1,st…

Python 开发 框架安全:Django SQL注入漏洞测试.(CVE-2021-35042)

什么是 Django 框架 Django 是一个用 Python 编写的 Web 应用程序框架。它提供了许多工具和库,使得开发 Web 应用程序变得更加容易和高效。Django 遵循了“MTV”(模型-模板-视图)的设计模式,将应用程序的不同组件分离开来&#x…

解决kali Linux2024无法获取动态IPv4地址(DHCP)解决方案

用root用户启动终端 进入根目录,选择配置文件 cd到根目录下/../etc/network找到interfaces文件 编辑interfaces文件 vi interfaces,编辑interfaces文件 输入如下命令 打开虚拟网络编辑器 选择虚拟机选项卡,编辑,打开虚拟网络编…

AIGC行业现在适合进入吗

AIGC行业目前正处于快速发展阶段,市场需求正处于爆发期,上大学网(www.sdaxue.com)认为,对于有兴趣的个人或企业而言,现在可能是一个适合进入的时机,以下是具体的分析,供大家参考! 一、AIGC行业前…

【电路笔记】-有源低通滤波器

有源低通滤波器 文章目录 有源低通滤波器1、概述2、有源低通滤波器2.1 一阶低通滤波器2.2 带放大功能的有源低通滤波器3、有源低通滤波器示例4、二阶低通有源滤波器通过将基本的 RC 低通滤波器电路与运算放大器相结合,我们可以创建一个具有放大功能的有源低通滤波器电路。 1、…

TikTok Shop认知课 打通TK小店全流程

资料 001-先导课.mp4 002-如何用思维导图工具做课程笔记.mp4 003-TTS入驻模式.mp4 004-如何获取店铺.mp4 005-TTS店铺注册全流程,mp4 006-店铺整体运营思路.mp4 007-运营的几个误区.mp4 008-新店起店准备工作,mp4 009-规店铺风控注意事项,mp4 010-店铺基础设置之店铺…

【数据结构】堆(超详细)

文章目录 前言堆的概念及结构堆的实现堆的向下调整算法(建小堆为例)堆的向上调整算法(建小堆为例)堆的初始化销毁堆堆的插入堆的删除(规定删堆顶的数据)取堆顶元素判断堆是否为空获取堆的个数 完整代码(包括测试代码&a…

BUU-[极客大挑战 2019]Http

考察点 信息收集 http构造请求数据包 题目 解题步骤 参考文章:https://zhuanlan.zhihu.com/p/367051798 查看源代码 发现有一个a标签,但是οnclick"return false"就是点击后不会去跳转到Secret.php的页面 所以我就自己拼接url http://no…

JavaScript基础知识强化:变量提升、作用域逻辑及TDZ的全面解析

🔥 个人主页:空白诗 文章目录 ⭐️ 引言🎯 变量提升(Hoisting)👻 暂时性死区(Temporal Dead Zone, TDZ)解释📦 var声明🔒 let与const声明📖 函数声明 与 函数表达式函数声…

SprintBoot案例-增删改查

黑马程序员JavaWeb开发教程 文章目录 一、准备工作1. 准备数据库表1.1 新建数据库mytlias1.2 新建部门表dept1.3 新建员工表emp 2. 准备一个Springboot工程2.1 新建一个项目 3. 配置文件application.properties中引入mybatis的配置信息,准备对应的实体类3.1 引入myb…

Java类和对象(二)—— 封装,static 关键字与代码块

前言 在面向对象的编程语言中,有三大特性:封装、继承和多态~~ 今天我们就来学习封装的知识 封装 什么是封装 在现实生活中,我们经常使用手机来进行沟通与交流,实际上我们拿到的手机是被封装好的,精美的屏幕&a…