You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win10环境下OpenCV打开ELP摄像头成功但读取帧失败求助

解决方法

根因说明

Windows平台下OpenCV默认调用摄像头时未主动指定MJPEG解码模式,ELP高帧率摄像头默认输出MJPEG格式流,未配置对应参数时无法正常解码读取帧。

修复后的测试代码

import cv2

print(cv2.__version__)
# ELP摄像头对应端口为0
dev_port = 0
# 指定DirectShow后端,兼容USB摄像头的自定义参数配置
camera = cv2.VideoCapture(dev_port, cv2.CAP_DSHOW)
# 强制设置视频流编码格式为MJPEG
camera.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*'MJPG'))
# 按需配置分辨率和帧率,当前参数对应摄像头支持的最高帧率260fps
camera.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
camera.set(cv2.CAP_PROP_FRAME_HEIGHT, 360)
camera.set(cv2.CAP_PROP_FPS, 260)

if not camera.isOpened():
    print("端口%s摄像头未成功打开" % dev_port)
else:
    is_reading, img = camera.read()
    w = camera.get(cv2.CAP_PROP_FRAME_WIDTH)
    h = camera.get(cv2.CAP_PROP_FRAME_HEIGHT)
    fps = camera.get(cv2.CAP_PROP_FPS)
    if is_reading:
        print("端口%s摄像头正常工作,读取到图像:%s x %s,实际帧率:%s" % (dev_port, h, w, fps))
    else:
        print("摄像头已识别但无法读取帧,可尝试调整分辨率、帧率参数")

camera.release()

补充注意事项

  • 如需使用其他分辨率帧率组合,可替换为摄像头支持的参数:1280720@120fps、19201080@60fps
  • 若配置后仍无法正常读取,可升级OpenCV版本到4.5.4及以上,旧版本对高帧率USB摄像头的MJPEG适配存在已知兼容问题

内容的提问来源于stack exchange,提问作者Kneidl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 07:36:03