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

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

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

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

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

python 复制代码
import cv2
import time
def main():
    # 尝试打开摄像头
    cap = cv2.VideoCapture(0)
    if not cap.isOpened():
        print("打开摄像头失败")
        return
    
    fss = 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 += 1
        else:
            print("捕获帧失败")
            break

        # 5s一计算
        if time.time() - start_time >= 5:
            elapsed_time = time.time() - start_time
            actual_fps = frame_count / elapsed_time
            print(f"实际帧率为: {actual_fps:.2f}")
            start_time = time.time()  # 重置计时器
            frame_count = 0  # 重置帧计数


        keyCode = cv2.waitKey(30) & 0xFF
        if keyCode == 27:  # ESC键退出
            break

    # 释放摄像头和销毁所有窗口
    cap.release()
    cv2.destroyAllWindows()

if __name__ == "__main__":
    main()

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

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

python 复制代码
# 设置帧率
    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
怎么说呢啥稀奇古怪的情况,都少不了我踩雷😭

相关推荐
VidDown2 小时前
24fps 转 25fps 不只是改个数字:帧率转换、PAL/NTSC 与音频补偿
python·网络协议·音视频·视频编解码·视频
死磕音视频3 小时前
让小模型做选择题:限定候选项并读取 logits 概率的入门实践(附 Python 代码)
开发语言·python·大模型·文本分类·transformers
凤山老林4 小时前
Spring Boot 接入国密 SM2/SM3/SM4 的一些实践记录
spring boot·后端·python
再__努力1点5 小时前
OpenCV 5 vs OpenCV 4:一次讲清所有差异
人工智能·opencv·计算机视觉
pride.li5 小时前
第03章 Python 教程-基础语法:注释与变量
服务器·前端·后端·python·算法·计算机视觉
databook6 小时前
用 Pydantic AI 从零搭建一个能干活的 AI Agent
人工智能·python
康小旺6 小时前
把 markitdown 做成 Windows 桌面版:拖进文档就出 Markdown,附 233MB→64MB 打包裁剪全过程
python
启观川7 小时前
数据结构与算法-第 3 章 常用算法-贪心算法
数据结构·笔记·python·算法·贪心算法
南笙北梦7 小时前
本地开源大模型多轮对话显存泄漏排查与修复实录
python
小羊没烦恼!7 小时前
如何在IIS6,7中部署ASP.NET网站?
数据库·后端·python·web安全·asp.net