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

相关推荐
TF男孩7 小时前
ARQ:一款低成本的消息队列,实现每秒万级吞吐
后端·python·消息队列
该用户已不存在12 小时前
Mojo vs Python vs Rust: 2025年搞AI,该学哪个?
后端·python·rust
站大爷IP14 小时前
Java调用Python的5种实用方案:从简单到进阶的全场景解析
python
xiaohouzi11223319 小时前
OpenCV的cv2.VideoCapture如何加GStreamer后端
人工智能·opencv·计算机视觉
用户83562907805119 小时前
从手动编辑到代码生成:Python 助你高效创建 Word 文档
后端·python
c8i19 小时前
python中类的基本结构、特殊属性于MRO理解
python
麦兜*20 小时前
MongoDB 在物联网(IoT)中的应用:海量时序数据处理方案
java·数据库·spring boot·物联网·mongodb·spring
liwulin050620 小时前
【ESP32-CAM】HELLO WORLD
python
荼蘼20 小时前
答题卡识别改分项目
人工智能·opencv·计算机视觉
Doris_202320 小时前
Python条件判断语句 if、elif 、else
前端·后端·python