物联网设计竞赛_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
怎么说呢啥稀奇古怪的情况,都少不了我踩雷😭

相关推荐
程序员爱钓鱼21 分钟前
Python编程实战——Python实用工具与库:Pandas数据处理
后端·python·ipython
程序员爱钓鱼25 分钟前
Python编程实战——Python实用工具与库:Numpy基础
后端·python·面试
程序员霸哥哥27 分钟前
从零搭建PyTorch计算机视觉模型
人工智能·pytorch·python·计算机视觉
【赫兹威客】浩哥1 小时前
基于 YOLO11+PyQt6+OpenCV 的智能水果检测系统设计与实现
人工智能·opencv·计算机视觉
晚秋大魔王1 小时前
基于python的jlink单片机自动化批量烧录工具
前端·python·单片机
胖哥真不错1 小时前
Python基于PyTorch实现多输入多输出进行CNN卷积神经网络回归预测项目实战
pytorch·python·毕业设计·课程设计·毕设·多输入多输出·cnn卷积神经网络回归预测
程序员-小李1 小时前
基于PyTorch的动物识别模型训练与应用实战
人工智能·pytorch·python
闲人编程4 小时前
Python在网络安全中的应用:编写一个简单的端口扫描器
网络·python·web安全·硬件·端口·codecapsule·扫描器
Mr_Xuhhh7 小时前
GUI自动化测试--自动化测试的意义和应用场景
python·集成测试
2301_764441337 小时前
水星热演化核幔耦合数值模拟
python·算法·数学建模